summaryrefslogtreecommitdiff
path: root/security/skip/files/patch-ck
blob: 711d80578b0d2acced103d6383596fffdad8c0fc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/keymgrd/skipd.C work.new/skip/keymgrd/skipd.C
--- skipsrc-1.0.orig/skip/keymgrd/skipd.C	Fri Oct 25 13:12:54 1996
+++ work.new/skip/keymgrd/skipd.C	Mon Jan 24 12:35:40 2000
@@ -48,6 +48,7 @@
  * System includes
  */
 #include <skip_os.h>
+#include <err.h>
 
 /*
  * SKIP includes
@@ -84,8 +85,9 @@
 {
 	int c;
 	int errflag = 0;
+	int noFork = 0;
 
-	while ((c = getopt(argc, argv, "vV?")) != EOF) {
+	while ((c = getopt(argc, argv, "nvV?")) != EOF) {
 		switch(c) {
 		case 'v':
 			verbose = 1;
@@ -95,6 +97,9 @@
 			verbose = 2;
 			break;
 
+		case 'n':
+			noFork = 1;
+			break;
 		case '?':
 		default:
 			errflag++;
@@ -106,34 +111,18 @@
 		exit(1);
 	}
 
+	if (!noFork)
 	{
-		extern FILE *skip_log_fp;
-
-		skip_log_fp = fopen("/var/log/skipd.log", "w+");
+		extern int skip_log_syslog;
 
-		// if open fails, skip_log will default to stdout/stderr
+		/* output to syslog */
+		openlog("skipd", 0, LOG_DAEMON);
+		skip_log_syslog = 1;
+
+		/* become a background daemon */
+		if (daemon(0, 0))
+			err(1, "daemon");
 	}
-
-
-//  put ourselves into the background
-
-	switch (fork()) {
-	case -1:
-		skip_log(SKIP_ERROR, "fork failed");
-		exit(1);
-
-	case 0:
-		break;
-
-	default:
-		exit(0);
-	}
-
-	setsid();
-
-	freopen("/dev/null", "r", stdin);
-	freopen("/dev/null", "w", stdout);
-	freopen("/dev/null", "w", stderr);
 
 	skip_init();
 	skipd_loop();