… | |
… | |
186 | */ |
186 | */ |
187 | void |
187 | void |
188 | init_globals (void) |
188 | init_globals (void) |
189 | { |
189 | { |
190 | if (settings.logfilename[0] == 0) |
190 | if (settings.logfilename[0] == 0) |
191 | logfile = stderr; |
191 | set_logfd (-1); |
192 | else if ((logfile = fopen (settings.logfilename, "a")) == NULL) |
192 | else |
193 | { |
193 | { |
|
|
194 | int logfd = open (settings.logfilename, O_CREAT|O_WRONLY|O_APPEND, 0666); |
|
|
195 | |
|
|
196 | if (logfd >= 0) |
|
|
197 | set_logfd (logfd); |
|
|
198 | else |
|
|
199 | { |
|
|
200 | set_logfd (-1); |
194 | fprintf (stderr, "Unable to open %s as the logfile - will use stderr instead\n", settings.logfilename); |
201 | LOG (llevError, "Unable to open %s as the logfile - will use stderr instead", settings.logfilename); |
195 | logfile = stderr; |
202 | } |
196 | } |
203 | } |
197 | else |
|
|
198 | setvbuf (logfile, NULL, _IOLBF, 0); |
|
|
199 | } |
204 | } |
200 | |
205 | |
201 | void |
206 | void |
202 | init_dynamic (void) |
207 | init_dynamic (void) |
203 | { |
208 | { |
… | |
… | |
239 | level = 0; |
244 | level = 0; |
240 | while (fgets (buf, MAX_BUF, fp) != NULL) |
245 | while (fgets (buf, MAX_BUF, fp) != NULL) |
241 | { |
246 | { |
242 | if (*buf == '#') |
247 | if (*buf == '#') |
243 | continue; |
248 | continue; |
|
|
249 | |
244 | if ((cp = strchr (buf, '\n')) != NULL) |
250 | if ((cp = strchr (buf, '\n')) != NULL) |
245 | *cp = '\0'; |
251 | *cp = '\0'; |
|
|
252 | |
246 | cp = buf; |
253 | cp = buf; |
247 | while (*cp == ' ') /* Skip blanks */ |
254 | while (*cp == ' ') /* Skip blanks */ |
248 | cp++; |
255 | cp++; |
249 | |
256 | |
250 | if (strncmp (cp, "TYPE:", 5) == 0) |
257 | if (strncmp (cp, "TYPE:", 5) == 0) |
… | |
… | |
256 | attack_mess[mess][level].level = -1; |
263 | attack_mess[mess][level].level = -1; |
257 | attack_mess[mess][level].buf1 = NULL; |
264 | attack_mess[mess][level].buf1 = NULL; |
258 | attack_mess[mess][level].buf2 = NULL; |
265 | attack_mess[mess][level].buf2 = NULL; |
259 | attack_mess[mess][level].buf3 = NULL; |
266 | attack_mess[mess][level].buf3 = NULL; |
260 | } |
267 | } |
|
|
268 | |
261 | level = 0; |
269 | level = 0; |
262 | mess = atoi (p); |
270 | mess = atoi (p); |
263 | mode = 1; |
271 | mode = 1; |
264 | continue; |
272 | continue; |
265 | } |
273 | } |
|
|
274 | |
266 | if (mode == 1) |
275 | if (mode == 1) |
267 | { |
276 | { |
268 | p = strtok (buf, "="); |
277 | p = strtok (buf, "="); |
269 | attack_mess[mess][level].level = atoi (buf); |
278 | attack_mess[mess][level].level = atoi (buf); |
270 | p = strtok (NULL, "="); |
279 | p = strtok (NULL, "="); |
… | |
… | |
300 | level++; |
309 | level++; |
301 | total++; |
310 | total++; |
302 | continue; |
311 | continue; |
303 | } |
312 | } |
304 | } |
313 | } |
|
|
314 | |
305 | LOG (llevDebug, "got %d messages in %d categories.\n", total, mess + 1); |
315 | LOG (llevDebug, "got %d messages in %d categories.\n", total, mess + 1); |
306 | close_and_delete (fp, comp); |
316 | close_and_delete (fp, comp); |
307 | } |
317 | } |
|
|
318 | |