Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libutil Fix pidfile location path rules to match prior v...



details:   https://anonhg.NetBSD.org/src/rev/d83866134f14
branches:  trunk
changeset: 814860:d83866134f14
user:      roy <roy%NetBSD.org@localhost>
date:      Tue Apr 12 20:36:35 2016 +0000

description:
Fix pidfile location path rules to match prior version.

diffstat:

 lib/libutil/pidfile.c |  21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)

diffs (55 lines):

diff -r fe7f4eafcb9a -r d83866134f14 lib/libutil/pidfile.c
--- a/lib/libutil/pidfile.c     Tue Apr 12 19:38:41 2016 +0000
+++ b/lib/libutil/pidfile.c     Tue Apr 12 20:36:35 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pidfile.c,v 1.12 2016/04/10 19:05:50 roy Exp $ */
+/*     $NetBSD: pidfile.c,v 1.13 2016/04/12 20:36:35 roy Exp $ */
 
 /*-
  * Copyright (c) 1999, 2016 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: pidfile.c,v 1.12 2016/04/10 19:05:50 roy Exp $");
+__RCSID("$NetBSD: pidfile.c,v 1.13 2016/04/12 20:36:35 roy Exp $");
 #endif
 
 #include <sys/param.h>
@@ -139,13 +139,12 @@
        ssize_t n;
        pid_t pid;
 
-       if (path == NULL) {
-               if (pidfile_path[0] != '\0')
-                       path = pidfile_path;
-               else if (pidfile_varrun_path(dpath, sizeof(dpath), NULL) == -1)
+       if (path == NULL && pidfile_path[0] != '\0')
+               path = pidfile_path;
+       if (path == NULL || strchr(path, '/') == NULL) {
+               if (pidfile_varrun_path(dpath, sizeof(dpath), path) == -1)
                        return -1;
-               else
-                       path = dpath;
+               path = dpath;
        }
 
        if ((fd = open(path, O_RDONLY | O_CLOEXEC | O_NONBLOCK)) == -1)
@@ -187,14 +186,14 @@
        }
 
        if (path == NULL || strchr(path, '/') == NULL) {
-               if (pidfile_varrun_path(dpath, sizeof(dpath), NULL) == -1)
+               if (pidfile_varrun_path(dpath, sizeof(dpath), path) == -1)
                        return -1;
                path = dpath;
        }
 
        /* If path has changed (no good reason), clean up the old pidfile. */
-       if (strcmp(pidfile_path, path) != 0)
-               pidfile_cleanup();
+       if (pidfile_fd != -1 && strcmp(pidfile_path, path) != 0)
+               r = pidfile_clean();
 
        if (pidfile_fd == -1) {
                pidfile_fd = open(path,



Home | Main Index | Thread Index | Old Index