xref: /OK3568_Linux_fs/buildroot/package/irda-utils/0001-daemon.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunwritten by Mike Frysinger
2*4882a593Smuzhiyun
3*4882a593Smuzhiyunhttps://sourceforge.net/tracker/?func=detail&aid=3132053&group_id=5616&atid=305616
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunRather than using the fork function (which doesnt work on nommu
6*4882a593Smuzhiyunsystems), simply use the daemon() function instead (which does
7*4882a593Smuzhiyunwork). this should work the same before and after for all systems.
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun--- a/irattach/util.c
10*4882a593Smuzhiyun+++ b/irattach/util.c
11*4882a593Smuzhiyun@@ -156,21 +156,10 @@
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun void fork_now(int ttyfd)
14*4882a593Smuzhiyun {
15*4882a593Smuzhiyun-	int ret;
16*4882a593Smuzhiyun 	int i;
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun-	if ((ret = fork()) > 0)
19*4882a593Smuzhiyun-		exit(0);
20*4882a593Smuzhiyun-
21*4882a593Smuzhiyun-	if (ret == -1)
22*4882a593Smuzhiyun-		syslog(LOG_INFO, "forking: %m");
23*4882a593Smuzhiyun-	if (setsid() < 0)
24*4882a593Smuzhiyun-		syslog(LOG_INFO, "detaching from tty: %m");
25*4882a593Smuzhiyun-
26*4882a593Smuzhiyun-	if ((ret = fork()) > 0) {
27*4882a593Smuzhiyun-		/* cleanup_files = 0; */
28*4882a593Smuzhiyun-		exit(0);
29*4882a593Smuzhiyun-	}
30*4882a593Smuzhiyun+	if (daemon(1, 1))
31*4882a593Smuzhiyun+		syslog(LOG_INFO, "daemon: %m");
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun 	/* Close all open inherited files! Except for ttyfd! */
34*4882a593Smuzhiyun 	for (i = 0; i < 64; i++)
35