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
|
static int
|
||||||
daemonUnixSocketPaths(struct daemonConfig *config,
|
daemonUnixSocketPaths(struct daemonConfig *config,
|
||||||
bool privileged,
|
bool privileged,
|
||||||
@ -1313,8 +1278,10 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!pid_file &&
|
if (!pid_file &&
|
||||||
daemonPidFilePath(privileged,
|
virPidFileConstructPath(privileged,
|
||||||
&pid_file) < 0) {
|
LOCALSTATEDIR,
|
||||||
|
"libvirtd",
|
||||||
|
&pid_file) < 0) {
|
||||||
VIR_ERROR(_("Can't determine pid file path."));
|
VIR_ERROR(_("Can't determine pid file path."));
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
@ -1773,6 +1773,7 @@ virPCIIsVirtualFunction;
|
|||||||
virPidFileAcquire;
|
virPidFileAcquire;
|
||||||
virPidFileAcquirePath;
|
virPidFileAcquirePath;
|
||||||
virPidFileBuildPath;
|
virPidFileBuildPath;
|
||||||
|
virPidFileConstructPath;
|
||||||
virPidFileDelete;
|
virPidFileDelete;
|
||||||
virPidFileDeletePath;
|
virPidFileDeletePath;
|
||||||
virPidFileRead;
|
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
|
static int
|
||||||
virLockDaemonUnixSocketPaths(bool privileged,
|
virLockDaemonUnixSocketPaths(bool privileged,
|
||||||
char **sockfile)
|
char **sockfile)
|
||||||
@ -1283,8 +1247,10 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!pid_file &&
|
if (!pid_file &&
|
||||||
virLockDaemonPidFilePath(privileged,
|
virPidFileConstructPath(privileged,
|
||||||
&pid_file) < 0) {
|
LOCALSTATEDIR,
|
||||||
|
"virtlockd",
|
||||||
|
&pid_file) < 0) {
|
||||||
VIR_ERROR(_("Can't determine pid file path."));
|
VIR_ERROR(_("Can't determine pid file path."));
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* virpidfile.c: manipulation of pidfiles
|
* 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, 2007 Binary Karma
|
||||||
* Copyright (C) 2006 Shuveb Hussain
|
* Copyright (C) 2006 Shuveb Hussain
|
||||||
*
|
*
|
||||||
@ -521,3 +521,50 @@ int virPidFileRelease(const char *dir,
|
|||||||
VIR_FREE(pidfile);
|
VIR_FREE(pidfile);
|
||||||
return rc;
|
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
|
* 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, 2007 Binary Karma
|
||||||
* Copyright (C) 2006 Shuveb Hussain
|
* Copyright (C) 2006 Shuveb Hussain
|
||||||
*
|
*
|
||||||
@ -69,4 +69,9 @@ int virPidFileRelease(const char *dir,
|
|||||||
const char *name,
|
const char *name,
|
||||||
int fd);
|
int fd);
|
||||||
|
|
||||||
|
int virPidFileConstructPath(bool privileged,
|
||||||
|
const char *statedir,
|
||||||
|
const char *progname,
|
||||||
|
char **pidfile);
|
||||||
|
|
||||||
#endif /* __VIR_PIDFILE_H__ */
|
#endif /* __VIR_PIDFILE_H__ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user