Update portability notes.
[darkstat] / pidfile.c
index 2134a92..92403cd 100644 (file)
--- a/pidfile.c
+++ b/pidfile.c
@@ -1,5 +1,5 @@
 /* darkstat 3
- * copyright (c) 2007 Emil Mikulic.
+ * copyright (c) 2007-2014 Emil Mikulic.
  *
  * pidfile.h: pidfile manglement
  *
@@ -16,7 +16,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include "darkstat.h"
 #include "err.h"
 #include "str.h"
 #include "pidfile.h"
 static int pidfd = -1;
 static const char *pidname = NULL;
 
-void
-pidfile_create(const char *chroot_dir, const char *filename,
-   const char *privdrop_user)
-{
+void pidfile_create(const char *chroot_dir,
+                    const char *filename,
+                    const char *privdrop_user) {
    struct passwd *pw;
 
    if (pidfd != -1)
@@ -49,8 +47,11 @@ pidfile_create(const char *chroot_dir, const char *filename,
          err(1, "getpwnam(\"%s\") failed", privdrop_user);
    }
 
-   if (chdir(chroot_dir) == -1)
-      err(1, "chdir(\"%s\") failed", chroot_dir);
+   if (chroot_dir != NULL) {
+      if (chdir(chroot_dir) == -1) {
+         err(1, "chdir(\"%s\") failed", chroot_dir);
+      }
+   }
    pidname = filename;
    pidfd = open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, 0600);
    if (pidfd == -1)