]> git.proxmox.com Git - qemu-server.git/blobdiff - qmeventd/qmeventd.c
suspend: continue cleanup even if savevm-end QMP command fails
[qemu-server.git] / qmeventd / qmeventd.c
index 76a894cb56d1bc2ba01da9cea605cf20935bf015..d8f3ee72ca2a22058b705fdb9c14131eb9ddaa6c 100644 (file)
@@ -134,20 +134,18 @@ get_vmid_from_pid(pid_t pid)
            continue;
        }
        if (errno != 0) {
-           fprintf(stderr, "error parsing vmid for %d: %s\n", pid, strerror(errno));
            vmid = 0;
        }
 
-       goto ret;
+       break;
     }
 
     if (errno) {
        fprintf(stderr, "error parsing vmid for %d: %s\n", pid, strerror(errno));
-    } else {
+    } else if (!vmid) {
        fprintf(stderr, "error parsing vmid for %d: no matching qemu.slice cgroup entry\n", pid);
     }
 
-ret:
     free(buf);
     fclose(fp);
     return vmid;
@@ -274,8 +272,12 @@ handle_qmp_return(struct Client *client, struct json_object *data, bool error)
     bool active = false;
     if (has_status) {
        const char *status_str = json_object_get_string(status);
-       active = status_str &&
-           (!strcmp(status_str, "running") || !strcmp(status_str, "paused"));
+       active = status_str && (
+           !strcmp(status_str, "running")
+           || !strcmp(status_str, "paused")
+           || !strcmp(status_str, "suspended")
+           || !strcmp(status_str, "prelaunch")
+       );
     }
 
     switch (client->state) {