]> git.wh0rd.org Git - patches.git/blob - lirc-cvs-control-daemonize.patch
scummvm random work
[patches.git] / lirc-cvs-control-daemonize.patch
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);