[Date Prev] [Date Next] | [Thread Prev] [Thread Next] | [Date Index] [Thread Index] |
[nocol-users] Sighup Handler for Portmon
|
This is for 4.2.1. Let me know how it works for you if you do use it. --Nathan ____________________________________________________________________ Nathan Clemons, Systems Engineer WinStar Internet and Hosting Services 800 South Main St. Mansfield, MA 02048 ____________________________________________________________________ nclemons@winstar.com www.winstar.com (v) 800-234-0002 ext.1109 nathan@ici.net (f) 508-261-0430 *** nocol-4.2.1/portmon/portmon.c Wed Jan 12 11:11:28 2000 --- tmp/portmon.c Thu Aug 13 07:32:45 1998 *************** *** 22,31 **** /* * $Log: portmon.c,v $ - * - * Revision 1.9 2000/01/11 12:00:00 nathan - * Added signal handling to reread config files on a HUP signal - * * Revision 1.8 1998/08/13 11:31:48 vikas * Changed goto into a while() loop. Was core dumping on Solaris with * gcc v2.8.1. Patch sent in by durrell@innocence.com. --- 22,27 ---- *************** *** 75,82 **** extern char *skip_spaces() ; /* in libnocol */ - void sighuphandler(); /* for SIGHUP config rereading */ - main(ac, av) int ac; char **av; --- 71,76 ---- *************** *** 127,135 **** if (readconfig(fdout) == -1) nocol_done(); - /* Set up the signal handler */ - (void) signal(SIGHUP, sighuphandler); - lseek(fdout, (off_t)0, SEEK_SET); /* rewind file */ while (1) /* forever */ { --- 121,126 ---- *************** *** 714,756 **** } - /* - * reread config files when you get this... - */ - void sighuphandler () { - struct _harray tmp[MAXHOSTS]; - int count_new, count_old; - int found, match; - - bzero ((char *)tmp, sizeof(tmp)); - for (count_new = 0; hostarray[count_new].hname; ++count_new) { - /* have to be careful of NULL values, particularly on the send... - --nathan */ - tmp[count_new].hname = strdup(hostarray[count_new].hname); - tmp[count_new].ipaddr = strdup(hostarray[count_new].ipaddr); - tmp[count_new].port = hostarray[count_new].port; - tmp[count_new].maxseverity = hostarray[count_new].maxseverity; - tmp[count_new].timeouts[0] = hostarray[count_new].timeouts[0]; - tmp[count_new].timeouts[1] = hostarray[count_new].timeouts[1]; - tmp[count_new].timeouts[2] = hostarray[count_new].timeouts[2]; - } - - fprintf(stderr, "Rereading the config file..."); - readconfig(fdout); - for (count_new = 0; hostarray[count_new].hname; ++count_new) { - found = 0; - for (count_old = 0; (tmp[count_old].hname && !found); ++count_old) { - if (hostarray[count_new].hname && - !strcmp(hostarray[count_new].hname, tmp[count_old].hname) && - !strcmp(hostarray[count_new].ipaddr, tmp[count_old].ipaddr) && - (hostarray[count_new].port == tmp[count_old].port)) { - hostarray[count_new].maxseverity = tmp[count_old].maxseverity; - hostarray[count_new].timeouts[0] = tmp[count_old].timeouts[0]; - hostarray[count_new].timeouts[1] = tmp[count_old].timeouts[1]; - hostarray[count_new].timeouts[2] = tmp[count_old].timeouts[2]; - found = 1; - } - } - } - fprintf(stderr, " done saving state information.\n"); - } --- 705,707 ---- |