From: Cole Robinson Date: Tue, 12 Jan 2016 01:01:24 +0000 (-0500) Subject: rpc: socket: Minor cleanups X-Git-Tag: v1.3.1-rc2~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f102c7146ed7f6e04af0ad3bce302476239f2502;p=thirdparty%2Flibvirt.git rpc: socket: Minor cleanups - 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 --- diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index 4f67c8f50c..876d1b44b0 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -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;