Changeset 270fd23 in code for icbd.c


Ignore:
Timestamp:
Mar 7, 2014, 3:20:42 PM (11 years ago)
Author:
Florian Obser <florian@…>
Branches:
master
Children:
a2fadb4
Parents:
a6b8c8d
Message:

Move modtab into the chroot and make it reloadable by SIGHUB
input mikeb, manpage bits benno

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icbd.c

    ra6b8c8d r270fd23  
    4444
    4545uint64_t sessionid;
     46char modtabpath[MAXPATHLEN];
    4647char modtab[ICB_MTABLEN][ICB_MAXNICKLEN];
    4748int  modtabcnt;
     
    6667void icbd_restrict(void);
    6768void icbd_write(struct icb_session *, char *, ssize_t);
     69void icbd_signal(int);
    6870
    6971static inline int icbd_session_cmp(struct icb_session *, struct icb_session *);
     
    8082main(int argc, char *argv[])
    8183{
     84        struct event ev_sig;
    8285        struct icbd_callbacks ic = { icbd_drop, icbd_log, icbd_write };
    8386        const char *cause = NULL;
     
    112115                        break;
    113116                case 'M':
    114                         icbd_modtab(optarg);
     117                        strlcpy(modtabpath, optarg, sizeof modtabpath);
    115118                        break;
    116119                case 'n':
     
    236239
    237240        (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        }
    238247
    239248        (void)event_dispatch();
     
    561570}
    562571
     572void
     573icbd_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
    563586time_t
    564587getmonotime(void)
Note: See TracChangeset for help on using the changeset viewer.