mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-10 13:41:35 +00:00
remove redundant pidfile path constructions
Signed-off-by: Martin Kletzander <mkletzan@redhat.com> (cherry picked from commit 8035f2e6f2db7fc0b74b639deb7eff64957692bc) Conflicts: src/util/virpidfile.c - fix compilation error to avoid broken bisect
This commit is contained in:
parent
aef963f1ac
commit
5ddbe2511a
@ -250,41 +250,6 @@ static int daemonForkIntoBackground(const char *argv0)
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
daemonPidFilePath(bool privileged,
|
||||
char **pidfile)
|
||||
{
|
||||
if (privileged) {
|
||||
if (VIR_STRDUP(*pidfile, LOCALSTATEDIR "/run/libvirtd.pid") < 0)
|
||||
goto error;
|
||||
} else {
|
||||
char *rundir = NULL;
|
||||
mode_t old_umask;
|
||||
|
||||
if (!(rundir = virGetUserRuntimeDirectory()))
|
||||
goto error;
|
||||
|
||||
old_umask = umask(077);
|
||||
if (virFileMakePath(rundir) < 0) {
|
||||
umask(old_umask);
|
||||
goto error;
|
||||
}
|
||||
umask(old_umask);
|
||||
|
||||
if (virAsprintf(pidfile, "%s/libvirtd.pid", rundir) < 0) {
|
||||
VIR_FREE(rundir);
|
||||
goto error;
|
||||
}
|
||||
|
||||
VIR_FREE(rundir);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int
|
||||
daemonUnixSocketPaths(struct daemonConfig *config,
|
||||
bool privileged,
|
||||
@ -1313,7 +1278,9 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
if (!pid_file &&
|
||||
daemonPidFilePath(privileged,
|
||||
virPidFileConstructPath(privileged,
|
||||
LOCALSTATEDIR,
|
||||
"libvirtd",
|
||||
&pid_file) < 0) {
|
||||
VIR_ERROR(_("Can't determine pid file path."));
|
||||
exit(EXIT_FAILURE);
|
||||
|
@ -1773,6 +1773,7 @@ virPCIIsVirtualFunction;
|
||||
virPidFileAcquire;
|
||||
virPidFileAcquirePath;
|
||||
virPidFileBuildPath;
|
||||
virPidFileConstructPath;
|
||||
virPidFileDelete;
|
||||
virPidFileDeletePath;
|
||||
virPidFileRead;
|
||||
|
@ -365,42 +365,6 @@ virLockDaemonForkIntoBackground(const char *argv0)
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
virLockDaemonPidFilePath(bool privileged,
|
||||
char **pidfile)
|
||||
{
|
||||
if (privileged) {
|
||||
if (VIR_STRDUP(*pidfile, LOCALSTATEDIR "/run/virtlockd.pid") < 0)
|
||||
goto error;
|
||||
} else {
|
||||
char *rundir = NULL;
|
||||
mode_t old_umask;
|
||||
|
||||
if (!(rundir = virGetUserRuntimeDirectory()))
|
||||
goto error;
|
||||
|
||||
old_umask = umask(077);
|
||||
if (virFileMakePath(rundir) < 0) {
|
||||
umask(old_umask);
|
||||
goto error;
|
||||
}
|
||||
umask(old_umask);
|
||||
|
||||
if (virAsprintf(pidfile, "%s/virtlockd.pid", rundir) < 0) {
|
||||
VIR_FREE(rundir);
|
||||
goto error;
|
||||
}
|
||||
|
||||
VIR_FREE(rundir);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
virLockDaemonUnixSocketPaths(bool privileged,
|
||||
char **sockfile)
|
||||
@ -1283,7 +1247,9 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
if (!pid_file &&
|
||||
virLockDaemonPidFilePath(privileged,
|
||||
virPidFileConstructPath(privileged,
|
||||
LOCALSTATEDIR,
|
||||
"virtlockd",
|
||||
&pid_file) < 0) {
|
||||
VIR_ERROR(_("Can't determine pid file path."));
|
||||
exit(EXIT_FAILURE);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* virpidfile.c: manipulation of pidfiles
|
||||
*
|
||||
* Copyright (C) 2010-2012 Red Hat, Inc.
|
||||
* Copyright (C) 2010-2012, 2014 Red Hat, Inc.
|
||||
* Copyright (C) 2006, 2007 Binary Karma
|
||||
* Copyright (C) 2006 Shuveb Hussain
|
||||
*
|
||||
@ -521,3 +521,50 @@ int virPidFileRelease(const char *dir,
|
||||
VIR_FREE(pidfile);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
virPidFileConstructPath(bool privileged,
|
||||
const char *statedir,
|
||||
const char *progname,
|
||||
char **pidfile)
|
||||
{
|
||||
if (privileged) {
|
||||
/*
|
||||
* This is here just to allow calling this function with
|
||||
* statedir == NULL; of course only when !privileged.
|
||||
*/
|
||||
if (!statedir) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
"%s", _("No statedir specified"));
|
||||
goto error;
|
||||
}
|
||||
if (virAsprintf(pidfile, "%s/run/%s.pid", statedir, progname) < 0)
|
||||
goto error;
|
||||
} else {
|
||||
char *rundir = NULL;
|
||||
mode_t old_umask;
|
||||
|
||||
if (!(rundir = virGetUserRuntimeDirectory()))
|
||||
goto error;
|
||||
|
||||
old_umask = umask(077);
|
||||
if (virFileMakePath(rundir) < 0) {
|
||||
umask(old_umask);
|
||||
goto error;
|
||||
}
|
||||
umask(old_umask);
|
||||
|
||||
if (virAsprintf(pidfile, "%s/%s.pid", rundir, progname) < 0) {
|
||||
VIR_FREE(rundir);
|
||||
goto error;
|
||||
}
|
||||
|
||||
VIR_FREE(rundir);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
return -1;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* virpidfile.h: manipulation of pidfiles
|
||||
*
|
||||
* Copyright (C) 2010-2011 Red Hat, Inc.
|
||||
* Copyright (C) 2010-2011, 2014 Red Hat, Inc.
|
||||
* Copyright (C) 2006, 2007 Binary Karma
|
||||
* Copyright (C) 2006 Shuveb Hussain
|
||||
*
|
||||
@ -69,4 +69,9 @@ int virPidFileRelease(const char *dir,
|
||||
const char *name,
|
||||
int fd);
|
||||
|
||||
int virPidFileConstructPath(bool privileged,
|
||||
const char *statedir,
|
||||
const char *progname,
|
||||
char **pidfile);
|
||||
|
||||
#endif /* __VIR_PIDFILE_H__ */
|
||||
|
Loading…
x
Reference in New Issue
Block a user