]> xenbits.xensource.com Git - libvirt.git/commitdiff
rpc: socket: Minor cleanups
authorCole Robinson <crobinso@redhat.com>
Tue, 12 Jan 2016 01:01:24 +0000 (20:01 -0500)
committerCole Robinson <crobinso@redhat.com>
Tue, 12 Jan 2016 15:45:45 +0000 (10:45 -0500)
- Add some debugging
- Make the loop dependent only on retries
- Make it explicit that connect(2) success exits the loop
- Invert the error checking logic

src/rpc/virnetsocket.c

index 4f67c8f50c0b5913540d5da05be53e29b0a7a49a..876d1b44b075214b7f42e6cec8185446262bccfc 100644 (file)
@@ -620,6 +620,9 @@ int virNetSocketNewConnectUNIX(const char *path,
     char *rundir = NULL;
     int ret = -1;
 
+    VIR_DEBUG("path=%s spawnDaemon=%d binary=%s", path, spawnDaemon,
+        NULLSTR(binary));
+
     memset(&localAddr, 0, sizeof(localAddr));
     memset(&remoteAddr, 0, sizeof(remoteAddr));
 
@@ -680,10 +683,15 @@ int virNetSocketNewConnectUNIX(const char *path,
     if (remoteAddr.data.un.sun_path[0] == '@')
         remoteAddr.data.un.sun_path[0] = '\0';
 
-    while (retries &&
-           connect(fd, &remoteAddr.data.sa, remoteAddr.len) < 0) {
-        if (!(spawnDaemon && (errno == ENOENT ||
-                              errno == ECONNREFUSED))) {
+    while (retries) {
+        if (connect(fd, &remoteAddr.data.sa, remoteAddr.len) == 0) {
+            VIR_DEBUG("connect() succeeded");
+            break;
+        }
+        VIR_DEBUG("connect() failed: retries=%d errno=%d", retries, errno);
+
+        if (!spawnDaemon ||
+            (errno != ENOENT && errno != ECONNREFUSED)) {
             virReportSystemError(errno, _("Failed to connect socket to '%s'"),
                                  path);
             goto cleanup;