[Date Prev] [Date Next] | [Thread Prev] [Thread Next] | [Date Index] [Thread Index] |
Re: [nocol-users] auto-updat
|
why not just use a "if defined" on the hash, and don't re-init it if it's already there. On Tue, 1 Dec 1998, steve rader wrote: > > From: Steve Mickeler > > Is there a way to get nocol to auto-detect any changed in the config files > > such as portmon-confg or ippingmon-confg so it can start/stop monitoring > > new stuff as needed ? > > I did some work on "reconfig ippingmon with kill -HUP" > fix recently. Patches for v4.2beta5 are enclosed fwiw. > > Note well: my #define __USE_BSD_SIGNAL is a bone-headed > linux specific hack that should be made portable! > > But even worse, these patches don't "intelligently" restart > ippingmon: doing a kill -HUP with variables at the critical > level causes the variables to go back to the warning level. > This, in turn, causes problems with my up/down reporting > with doing really frequent reconfigurations with large > polling intervals. > > So it would be wonderful if someone would solve this > problem by writing reinit_sites() or somesuch for pingmon. > I'll probably do it (some day this spring?) if no one > else does. > > steve > -- -- -- -- > Steve Rader > Systems and Network Manager > WiscNet--Internetworking for Wisconsin > rader@wiscnet.net > bash: syntax error near unexpected token `=:)' > > -- cut here -- > *** lib/misc.c.orig Thu Mar 20 23:04:02 1997 > --- lib/misc.c Tue Nov 10 14:49:55 1998 > *************** > *** 36,41 **** > --- 36,42 ---- > #include "nocol.h" > > #include <stdio.h> > + #define __USE_BSD_SIGNAL > #include <signal.h> /* signal numbers */ > #include <sys/file.h> > #include <errno.h> > *************** > *** 50,56 **** > nocol_startup(pconfigfile, pdatafile) > char **pconfigfile, **pdatafile; > { > ! void nocol_done(), usr1_handler(); > char *s ; > > if ((s = (char *)strrchr(prognm, '/')) != NULL) > --- 51,57 ---- > nocol_startup(pconfigfile, pdatafile) > char **pconfigfile, **pdatafile; > { > ! void nocol_done(), usr1_handler(), nocol_reload(); > char *s ; > > if ((s = (char *)strrchr(prognm, '/')) != NULL) > *************** > *** 101,113 **** > bsdsignal (SIGQUIT, nocol_done); > bsdsignal (SIGTERM, nocol_done); > bsdsignal (SIGINT, nocol_done); > ! bsdsignal (SIGHUP, nocol_done); > bsdsignal (SIGUSR1, usr1_handler); > #else > signal (SIGQUIT, nocol_done); /* Delete pid/data file while dying */ > signal (SIGTERM, nocol_done); > signal (SIGINT, nocol_done); > ! signal (SIGHUP, nocol_done); > signal (SIGUSR1, usr1_handler); /* toggles debug */ > #endif > > --- 102,114 ---- > bsdsignal (SIGQUIT, nocol_done); > bsdsignal (SIGTERM, nocol_done); > bsdsignal (SIGINT, nocol_done); > ! bsdsignal (SIGHUP, nocol_reload); > bsdsignal (SIGUSR1, usr1_handler); > #else > signal (SIGQUIT, nocol_done); /* Delete pid/data file while dying */ > signal (SIGTERM, nocol_done); > signal (SIGINT, nocol_done); > ! signal (SIGHUP, nocol_reload); > signal (SIGUSR1, usr1_handler); /* toggles debug */ > #endif > > -- cut here -- > > -- cut here -- > *** pingmon/pingmon.c.orig Mon Mar 31 00:25:22 1997 > --- pingmon/pingmon.c Tue Nov 10 15:01:13 1998 > *************** > *** 37,42 **** > --- 37,43 ---- > > #include <string.h> /* For strcat() definitions */ > #include <sys/file.h> > + #define __USE_BSD_SIGNAL > #include <signal.h> /* For signal numbers */ > > /*+ > *************** > *** 197,202 **** > --- 198,207 ---- > char record[MAXLINE]; > struct tm *loctime ; > time_t locclock ; /* Careful, don't use 'long' */ > + > + if (debug) { > + fprintf(stderr, "reading config file\n"); > + } > > if ((p_nodes = fopen(configfile, "r")) == NULL) > { > *************** > *** 278,284 **** > --- 283,300 ---- > > } /* end: while */ > fclose (p_nodes); /* Not needed any more */ > + if (debug) { > + fprintf(stderr, "done reading config file\n"); > + } > return(1); /* All OK */ > > } /* end: init_sites() */ > + > + nocol_reload ( ) { > + int fdout = 0; /* File desc for output data file */ > + if (debug) { fprintf(stderr,"cought HUP... reloading...\n"); } > + fdout = open(datafile, O_RDWR|O_CREAT|O_TRUNC, DATAFILE_MODE); > + init_sites(fdout, configfile); > + return(1); > + } > > -- cut here -- > Thank you, Jonathan A. Zdziarski Sr. Systems Administrator Netrail, inc. 888.NET.RAIL x240 |