]>
Commit | Line | Data |
---|---|---|
1 | Index: configure.ac | |
2 | =================================================================== | |
3 | RCS file: /cvsroot/lirc/lirc/configure.ac,v | |
4 | retrieving revision 1.2 | |
5 | diff -u -p -r1.2 configure.ac | |
6 | --- configure.ac 22 Jul 2007 07:30:25 -0000 1.2 | |
7 | +++ configure.ac 24 Oct 2007 01:29:16 -0000 | |
8 | @@ -42,15 +42,6 @@ AC_FUNC_VPRINTF | |
9 | AC_CHECK_FUNCS(gethostname gettimeofday mkfifo select socket strdup \ | |
10 | strerror strtoul snprintf strsep vsyslog) | |
11 | ||
12 | -daemon="" | |
13 | -AC_CHECK_FUNCS(daemon) | |
14 | -if test "$ac_cv_func_daemon" != yes; then | |
15 | - AC_CHECK_LIB(bsd,daemon,daemon="-lbsd") | |
16 | - if test "$daemon" = ""; then | |
17 | - AC_MSG_ERROR([*** daemon() function not available on this system]) | |
18 | - fi | |
19 | -fi | |
20 | - | |
21 | forkpty="" | |
22 | AC_CHECK_FUNCS(forkpty) | |
23 | if test "$ac_cv_func_forkpty" != yes; then | |
24 | @@ -1468,7 +1459,17 @@ test x${enableval} = xyes && AC_DEFINE(D | |
25 | AC_ARG_ENABLE(daemonize, | |
26 | [ --disable-daemonize disable daemons from daemonizing], | |
27 | test x${enableval} = xyes && AC_DEFINE(DAEMONIZE), | |
28 | -AC_DEFINE(DAEMONIZE)) | |
29 | +[ | |
30 | +AC_CHECK_FUNCS(daemon) | |
31 | +if test "$ac_cv_func_daemon" != yes; then | |
32 | + daemon="" | |
33 | + AC_CHECK_LIB(bsd,daemon,daemon="-lbsd") | |
34 | + if test "$daemon" = ""; then | |
35 | + AC_MSG_ERROR([*** daemon() function not available on this system and --disable-daemonize not specified]) | |
36 | + fi | |
37 | +fi | |
38 | +AC_DEFINE(DAEMONIZE) | |
39 | +]) | |
40 | ||
41 | AC_ARG_WITH(syslog, | |
42 | [ --with-syslog=facility use syslog instead of logfile], | |
43 | Index: tools/irexec.c | |
44 | =================================================================== | |
45 | RCS file: /cvsroot/lirc/lirc/tools/irexec.c,v | |
46 | retrieving revision 5.6 | |
47 | diff -u -p -r5.6 irexec.c | |
48 | --- tools/irexec.c 7 Jun 2003 22:12:52 -0000 5.6 | |
49 | +++ tools/irexec.c 24 Oct 2007 01:29:16 -0000 | |
50 | @@ -25,11 +25,26 @@ | |
51 | #include "lirc_client.h" | |
52 | ||
53 | char *progname; | |
54 | +struct lirc_config *config; | |
55 | + | |
56 | +void daemonize(void) | |
57 | +{ | |
58 | +#ifdef DAEMONIZE | |
59 | + if(daemon(0,0)==-1) | |
60 | +#endif | |
61 | + { | |
62 | + fprintf(stderr,"%s: can't daemonize\n", | |
63 | + progname); | |
64 | + perror(progname); | |
65 | + lirc_freeconfig(config); | |
66 | + lirc_deinit(); | |
67 | + exit(EXIT_FAILURE); | |
68 | + } | |
69 | +} | |
70 | ||
71 | int main(int argc, char *argv[]) | |
72 | { | |
73 | - struct lirc_config *config; | |
74 | - int daemonize=0; | |
75 | + int do_daemon=0; | |
76 | char* program="irexec"; | |
77 | ||
78 | progname="irexec " VERSION; | |
79 | @@ -60,7 +75,7 @@ int main(int argc, char *argv[]) | |
80 | printf("%s\n",progname); | |
81 | return(EXIT_SUCCESS); | |
82 | case 'd': | |
83 | - daemonize=1; | |
84 | + do_daemon=1; | |
85 | break; | |
86 | case 'n': | |
87 | program=optarg; | |
88 | @@ -76,7 +91,7 @@ int main(int argc, char *argv[]) | |
89 | return(EXIT_FAILURE); | |
90 | } | |
91 | ||
92 | - if(lirc_init(program, daemonize ? 0:1)==-1) exit(EXIT_FAILURE); | |
93 | + if(lirc_init(program, do_daemon ? 0:1)==-1) exit(EXIT_FAILURE); | |
94 | ||
95 | if(lirc_readconfig(optind!=argc ? argv[optind]:NULL,&config,NULL)==0) | |
96 | { | |
97 | @@ -84,18 +99,7 @@ int main(int argc, char *argv[]) | |
98 | char *c; | |
99 | int ret; | |
100 | ||
101 | - if(daemonize) | |
102 | - { | |
103 | - if(daemon(0,0)==-1) | |
104 | - { | |
105 | - fprintf(stderr,"%s: can't daemonize\n", | |
106 | - progname); | |
107 | - perror(progname); | |
108 | - lirc_freeconfig(config); | |
109 | - lirc_deinit(); | |
110 | - exit(EXIT_FAILURE); | |
111 | - } | |
112 | - } | |
113 | + if(do_daemon) daemonize(); | |
114 | while(lirc_nextcode(&code)==0) | |
115 | { | |
116 | if(code==NULL) continue; | |
117 | @@ -103,7 +107,7 @@ int main(int argc, char *argv[]) | |
118 | c!=NULL) | |
119 | { | |
120 | #ifdef DEBUG | |
121 | - if(!daemonize) | |
122 | + if(!do_daemon) | |
123 | { | |
124 | printf("Execing command \"%s\"\n",c); | |
125 | } | |
126 | Index: tools/lircrcd.c | |
127 | =================================================================== | |
128 | RCS file: /cvsroot/lirc/lirc/tools/lircrcd.c,v | |
129 | retrieving revision 5.3 | |
130 | diff -u -p -r5.3 lircrcd.c | |
131 | --- tools/lircrcd.c 6 May 2006 09:40:07 -0000 5.3 | |
132 | +++ tools/lircrcd.c 24 Oct 2007 01:29:17 -0000 | |
133 | @@ -128,8 +128,6 @@ static int termsig; | |
134 | static int clin=0; | |
135 | static struct client_data clis[MAX_CLIENTS]; | |
136 | ||
137 | -static int daemonized=0; | |
138 | - | |
139 | static struct lirc_config *config; | |
140 | ||
141 | static int send_error(int fd,char *message,char *format_str, ...); | |
142 | @@ -313,7 +311,7 @@ static void remove_client(int i) | |
143 | void add_client(int sock) | |
144 | { | |
145 | int fd; | |
146 | - int clilen; | |
147 | + socklen_t clilen; | |
148 | struct sockaddr client_addr; | |
149 | int flags; | |
150 | ||
151 | @@ -989,6 +987,7 @@ int main(int argc, char **argv) | |
152 | ||
153 | /* fork */ | |
154 | getcwd(dir, sizeof(dir)); | |
155 | +#ifdef DAEMONIZE | |
156 | if(daemon(0,0)==-1) | |
157 | { | |
158 | fprintf(stderr, "%s: daemon() failed\n", progname); | |
159 | @@ -998,7 +997,7 @@ int main(int argc, char **argv) | |
160 | lirc_freeconfig(config); | |
161 | return -1; | |
162 | } | |
163 | - daemonized=1; | |
164 | +#endif | |
165 | ||
166 | openlog(progname, LOG_CONS|LOG_PID, LOG_USER); | |
167 | umask(0); |