]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Rename virCommandTranslateStatus to virProcessTranslateStatus
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 12 Sep 2013 16:00:02 +0000 (17:00 +0100)
committerEric Blake <eblake@redhat.com>
Thu, 19 Sep 2013 03:10:20 +0000 (21:10 -0600)
The virCommand prefix was inappropriate because the API
does not use any virCommandPtr object instance. This
API closely related to waitpid/exit, so use virProcess
as the prefix

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
(cherry picked from commit 49ecf8b41fd1c606703d01792701ce46352b7669)
Signed-off-by: Eric Blake <eblake@redhat.com>
Conflicts:
src/util/command.c

daemon/remote.c
src/libvirt_private.syms
src/util/command.c
src/util/command.h

index 4ece019be3433efbbbf8c9219a93c1c8bd5e8de4..24553f05278aa87523801dff98be1662254298db 100644 (file)
@@ -2600,7 +2600,7 @@ remoteDispatchAuthPolkit(virNetServerPtr server ATTRIBUTE_UNUSED,
 
     authdismissed = (pkout && strstr(pkout, "dismissed=true"));
     if (status != 0) {
-        char *tmp = virCommandTranslateStatus(status);
+        char *tmp = virProcessTranslateStatus(status);
         VIR_ERROR(_("Policy kit denied action %s from pid %lld, uid %d: %s"),
                   action, (long long) callerPid, callerUid, NULLSTR(tmp));
         VIR_FREE(tmp);
index 5d8ff7b1eebbfcc8a7ff3425e43a48eb74cd9e52..13a732be28eea299dd89300e3907b8e8cf895b90 100644 (file)
@@ -140,7 +140,7 @@ virCommandSetPreExecHook;
 virCommandSetWorkingDirectory;
 virCommandToString;
 virCommandTransferFD;
-virCommandTranslateStatus;
+virProcessTranslateStatus;
 virCommandWait;
 virCommandWriteArgLog;
 virFork;
index 434065959ce0bcbd426a689df6f0624f54fb780c..02432fad719def4f11446bf6a51d4c0eb58fe6ec 100644 (file)
@@ -1648,7 +1648,7 @@ virCommandToString(virCommandPtr cmd)
 
 
 /**
- * virCommandTranslateStatus:
+ * virProcessTranslateStatus:
  * @status: child exit status to translate
  *
  * Translate an exit status into a malloc'd string.  Generic helper
@@ -1656,7 +1656,7 @@ virCommandToString(virCommandPtr cmd)
  * status argument, as well as raw waitpid().
  */
 char *
-virCommandTranslateStatus(int status)
+virProcessTranslateStatus(int status)
 {
     char *buf;
     if (WIFEXITED(status)) {
@@ -1986,7 +1986,7 @@ virCommandRun(virCommandPtr cmd, int *exitstatus)
     if (virCommandWait(cmd, exitstatus) < 0)
         ret = -1;
 
-    str = (exitstatus ? virCommandTranslateStatus(*exitstatus)
+    str = (exitstatus ? virProcessTranslateStatus(*exitstatus)
            : (char *) "status 0");
     VIR_DEBUG("Result %s, stdout: '%s' stderr: '%s'",
               NULLSTR(str),
@@ -2241,7 +2241,7 @@ virProcessWait(pid_t pid, int *exitstatus)
 
     if (exitstatus == NULL) {
         if (status != 0) {
-            char *st = virCommandTranslateStatus(status);
+            char *st = virProcessTranslateStatus(status);
             virCommandError(VIR_ERR_INTERNAL_ERROR,
                             _("Child process (%lld) status unexpected: %s"),
                             (long long) pid, NULLSTR(st));
@@ -2300,10 +2300,14 @@ virCommandWait(virCommandPtr cmd, int *exitstatus)
         cmd->reap = false;
         if (status) {
             char *str = virCommandToString(cmd);
-            char *st = virCommandTranslateStatus(status);
+            char *st = virProcessTranslateStatus(status);
+            bool haveErrMsg = cmd->errbuf && *cmd->errbuf && (*cmd->errbuf)[0];
+
             virCommandError(VIR_ERR_INTERNAL_ERROR,
-                            _("Child process (%s) status unexpected: %s"),
-                            str ? str : cmd->args[0], NULLSTR(st));
+                           _("Child process (%s) unexpected %s%s%s"),
+                           str ? str : cmd->args[0], NULLSTR(st),
+                           haveErrMsg ? ": " : "",
+                           haveErrMsg ? *cmd->errbuf : "");
             VIR_FREE(str);
             VIR_FREE(st);
             return -1;
@@ -2344,7 +2348,7 @@ virProcessAbort(pid_t pid)
     while ((ret = waitpid(pid, &status, WNOHANG)) == -1 &&
            errno == EINTR);
     if (ret == pid) {
-        tmp = virCommandTranslateStatus(status);
+        tmp = virProcessTranslateStatus(status);
         VIR_DEBUG("process has ended: %s", tmp);
         goto cleanup;
     } else if (ret == 0) {
@@ -2354,7 +2358,7 @@ virProcessAbort(pid_t pid)
         while ((ret = waitpid(pid, &status, WNOHANG)) == -1 &&
                errno == EINTR);
         if (ret == pid) {
-            tmp = virCommandTranslateStatus(status);
+            tmp = virProcessTranslateStatus(status);
             VIR_DEBUG("process has ended: %s", tmp);
             goto cleanup;
         } else if (ret == 0) {
@@ -2363,7 +2367,7 @@ virProcessAbort(pid_t pid)
             while ((ret = waitpid(pid, &status, 0)) == -1 &&
                    errno == EINTR);
             if (ret == pid) {
-                tmp = virCommandTranslateStatus(status);
+                tmp = virProcessTranslateStatus(status);
                 VIR_DEBUG("process has ended: %s", tmp);
                 goto cleanup;
             }
index d8a8c83c8a849354ca58940d9cb57ad16834b327..5cd85e5fa22bb87fb900986ea29936525a740ca0 100644 (file)
@@ -138,7 +138,7 @@ void virCommandWriteArgLog(virCommandPtr cmd,
 char *virCommandToString(virCommandPtr cmd) ATTRIBUTE_RETURN_CHECK;
 
 
-char *virCommandTranslateStatus(int exitstatus) ATTRIBUTE_RETURN_CHECK;
+char *virProcessTranslateStatus(int exitstatus) ATTRIBUTE_RETURN_CHECK;
 
 int virCommandExec(virCommandPtr cmd) ATTRIBUTE_RETURN_CHECK;