[Date Prev] [Date Next] | [Thread Prev] [Thread Next] | [Date Index] [Thread Index] |
Re: [nocol-users] Sighup Handler for Portmon
|
*sigh* Fixed it. Sorry folks, I'm used to how I have my normal development cycle where I have two directories (orig_src and src) and I do "diff.sh patchname" and it generates "patchname.patch". Spoiled myself into carelessness, I guess. =) --Nathan On Wed, 12 Jan 2000, Michael Douglass wrote: > Date: Wed, 12 Jan 2000 11:09:01 -0600 > From: Michael Douglass <mikedoug@staff.texas.net> > To: "Nathan Clemons [Staff]" <nathan@ici.net> > Subject: Re: [nocol-users] Sighup Handler for Portmon > > > You did your diff backwards. :) > > On Wed, Jan 12, 2000 at 11:33:38AM -0500, Nathan Clemons [Staff] said: > > 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 ---- > > > -- > Michael Douglass > Texas Networking, Inc. > > Any sufficiently advanced bug is indistinguishable for a feature. > -- from some indian guy > ____________________________________________________________________ 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 *** tmp/portmon.c Thu Aug 13 07:32:45 1998 --- nocol-4.2.1/portmon/portmon.c Wed Jan 12 11:11:28 2000 *************** *** 22,27 **** --- 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. *************** *** 71,76 **** --- 75,82 ---- extern char *skip_spaces() ; /* in libnocol */ + void sighuphandler(); /* for SIGHUP config rereading */ + main(ac, av) int ac; char **av; *************** *** 121,126 **** --- 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 */ { *************** *** 705,707 **** --- 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"); + } |