- Timestamp:
- Mar 7, 2014, 3:20:42 PM (11 years ago)
- Branches:
- master
- Children:
- a2fadb4
- Parents:
- a6b8c8d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
icbd.c
ra6b8c8d r270fd23 44 44 45 45 uint64_t sessionid; 46 char modtabpath[MAXPATHLEN]; 46 47 char modtab[ICB_MTABLEN][ICB_MAXNICKLEN]; 47 48 int modtabcnt; … … 66 67 void icbd_restrict(void); 67 68 void icbd_write(struct icb_session *, char *, ssize_t); 69 void icbd_signal(int); 68 70 69 71 static inline int icbd_session_cmp(struct icb_session *, struct icb_session *); … … 80 82 main(int argc, char *argv[]) 81 83 { 84 struct event ev_sig; 82 85 struct icbd_callbacks ic = { icbd_drop, icbd_log, icbd_write }; 83 86 const char *cause = NULL; … … 112 115 break; 113 116 case 'M': 114 icbd_modtab(optarg);117 strlcpy(modtabpath, optarg, sizeof modtabpath); 115 118 break; 116 119 case 'n': … … 236 239 237 240 (void)signal(SIGPIPE, SIG_IGN); 241 if (strlen(modtabpath) > 0) { 242 icbd_modtab(modtabpath); 243 signal_set(&ev_sig, SIGHUP, 244 (void (*)(int, short, void *))icbd_signal, NULL); 245 signal_add(&ev_sig, NULL); 246 } 238 247 239 248 (void)event_dispatch(); … … 561 570 } 562 571 572 void 573 icbd_signal(int sig) 574 { 575 switch (sig) { 576 case SIGHUP: 577 if (strlen(modtabpath) > 0) 578 icbd_modtab(modtabpath); 579 break; 580 default: 581 syslog(LOG_WARNING, "unexpected signal %d", sig); 582 break; 583 } 584 } 585 563 586 time_t 564 587 getmonotime(void)
Note:
See TracChangeset
for help on using the changeset viewer.