static virNetClientPtr virLockManagerLockDaemonConnectionNew(bool privileged, virNetClientProgramPtr *prog) { virNetClientPtr client = NULL; char *lockdpath; char *daemonPath = NULL; *prog = NULL; if (!(lockdpath = virLockManagerLockDaemonPath(privileged))) goto error; if (!privileged && !(daemonPath = virFileFindResourceFull("virtlockd", NULL, NULL, abs_topbuilddir "/src", SBINDIR, "VIRTLOCKD_PATH"))) goto error; if (!(client = virNetClientNewUNIX(lockdpath, daemonPath != NULL, daemonPath))) goto error; if (!(*prog = virNetClientProgramNew(VIR_LOCK_SPACE_PROTOCOL_PROGRAM, VIR_LOCK_SPACE_PROTOCOL_PROGRAM_VERSION, NULL, 0, NULL))) goto error; if (virNetClientAddProgram(client, *prog) < 0) goto error; VIR_FREE(daemonPath); VIR_FREE(lockdpath); return client; error: VIR_FREE(daemonPath); VIR_FREE(lockdpath); virNetClientClose(client); virObjectUnref(client); virObjectUnref(*prog); return NULL; }
static virNetClientPtr virLockManagerLockDaemonConnectionNew(bool privileged, virNetClientProgramPtr *prog) { virNetClientPtr client = NULL; char *lockdpath; const char *daemonPath = NULL; *prog = NULL; if (!(lockdpath = virLockManagerLockDaemonPath(privileged))) goto error; if (!privileged) daemonPath = virLockManagerLockDaemonFindDaemon(); if (!(client = virNetClientNewUNIX(lockdpath, daemonPath != NULL, daemonPath))) goto error; if (!(*prog = virNetClientProgramNew(VIR_LOCK_SPACE_PROTOCOL_PROGRAM, VIR_LOCK_SPACE_PROTOCOL_PROGRAM_VERSION, NULL, 0, NULL))) goto error; if (virNetClientAddProgram(client, *prog) < 0) goto error; VIR_FREE(lockdpath); return client; error: VIR_FREE(lockdpath); virNetClientClose(client); virObjectUnref(client); virObjectUnref(*prog); return NULL; }