38 #include "../public/nsapi.h" |
38 #include "../public/nsapi.h" |
39 #include "../util/plist.h" |
39 #include "../util/plist.h" |
40 #include "../util/date.h" |
40 #include "../util/date.h" |
41 |
41 |
42 #include "webserver.h" |
42 #include "webserver.h" |
43 |
43 #include "log.h" |
44 #include "httprequest.h" |
44 #include "httprequest.h" |
45 |
45 |
46 #include "configmanager.h" |
46 #include "configmanager.h" |
47 |
47 |
48 int std_pipe_fds[2]; |
48 int std_pipe_fds[2]; |
56 |
56 |
57 /* |
57 /* |
58 * SIGUSR1: reload the configuration files |
58 * SIGUSR1: reload the configuration files |
59 */ |
59 */ |
60 void sig_usr1_reload(int sig) { |
60 void sig_usr1_reload(int sig) { |
61 printf("reload\n"); |
61 log_ereport(LOG_LEVEL_INFO, "sig reload"); |
62 |
62 |
63 if(cfgmgr_load_config() != 0) { |
63 if(cfgmgr_load_config() != 0) { |
64 fprintf(stderr, "Error: cannot reload configuration"); |
64 log_ereport(LOG_LEVEL_ERROR, "cannot reload config"); |
65 } |
65 } |
66 |
66 |
67 signal(SIGUSR1, sig_usr1_reload); |
67 signal(SIGUSR1, sig_usr1_reload); |
68 } |
68 } |
69 |
69 |
73 void sig_term(int sig) { |
73 void sig_term(int sig) { |
74 exit(EXIT_SUCCESS); |
74 exit(EXIT_SUCCESS); |
75 } |
75 } |
76 |
76 |
77 void* log_pipe_thread(void *data) { |
77 void* log_pipe_thread(void *data) { |
78 FILE *log_out = fopen("log.txt", "a"); |
78 //FILE *log_out = fopen("log.txt", "a"); |
79 |
79 |
80 char buf[1024]; |
80 char buf[1024]; |
81 ssize_t r; |
81 ssize_t r; |
82 while((r = read(std_pipe_fds[0], buf, 1024)) > 0) { |
82 while((r = read(std_pipe_fds[0], buf, 1024)) > 0) { |
83 fwrite(buf, 1, r, log_out); |
83 //fwrite(buf, 1, r, log_out); |
84 fflush(log_out); |
84 //fflush(log_out); |
85 } |
85 } |
86 |
86 |
87 fclose(log_out); |
87 //fclose(log_out); |
88 |
88 |
89 return NULL; |
89 return NULL; |
90 } |
90 } |
91 |
91 |
92 int main(int argc, char **argv) { |
92 int main(int argc, char **argv) { |
93 test(); |
93 //test(); |
94 |
94 |
95 /* if the -c parameter is specified, we don't create a daemon */ |
95 /* if the -c parameter is specified, we don't create a daemon */ |
96 int d = 0; |
96 int d = 1; |
97 for(int i=0;i<argc;i++) { |
97 for(int i=0;i<argc;i++) { |
98 char *p = argv[i]; |
98 char *p = argv[i]; |
99 if(p[0] == '-' && p[1] == 'c') { |
99 if(p[0] == '-' && p[1] == 'c') { |
100 d = 0; |
100 d = 0; |
101 break; |
101 break; |