about summary refs log tree commit diff homepage
path: root/server.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-10-20 15:45:58 -0400
committerJune McEnroe <june@causal.agency>2018-10-20 15:45:58 -0400
commitca58a350958105f5529fb14504f4e229b675e39f (patch)
treedc09e97b4aa4cb8c2eede715cf0b7f0c8f4e1c5d /server.c
parentAdd server daemonization (diff)
downloadtorus-ca58a350958105f5529fb14504f4e229b675e39f.tar.gz
torus-ca58a350958105f5529fb14504f4e229b675e39f.zip
Only use pidfile(3) on FreeBSD
Diffstat (limited to '')
-rw-r--r--server.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/server.c b/server.c
index a62b286..ade834d 100644
--- a/server.c
+++ b/server.c
@@ -19,7 +19,6 @@
 #include <err.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <libutil.h>
 #include <signal.h>
 #include <stdbool.h>
 #include <stdint.h>
@@ -34,6 +33,10 @@
 #include <time.h>
 #include <unistd.h>
 
+#ifdef __FreeBSD__
+#include <libutil.h>
+#endif
+
 #include "torus.h"
 
 static struct Tile *tiles;
@@ -371,11 +374,13 @@ int main(int argc, char *argv[]) {
 		}
 	}
 
+#ifdef __FreeBSD__
 	struct pidfh *pid = NULL;
 	if (pidPath) {
 		pid = pidfile_open(pidPath, 0600, NULL);
 		if (!pid) err(EX_CANTCREAT, "%s", pidPath);
 	}
+#endif
 
 	tilesMap(dataPath);
 
@@ -390,11 +395,13 @@ int main(int argc, char *argv[]) {
 	error = bind(server, (struct sockaddr *)&addr, SUN_LEN(&addr));
 	if (error) err(EX_CANTCREAT, "%s", sockPath);
 
+#ifdef __FreeBSD__
 	if (pid) {
 		error = daemon(0, 0);
 		if (error) err(EX_OSERR, "daemon");
 		pidfile_write(pid);
 	}
+#endif
 
 	error = listen(server, 0);
 	if (error) err(EX_OSERR, "listen");