| [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");
+ }
|