From 2e311cecaee4d686bb668fbc575adea72d3e6de5 Mon Sep 17 00:00:00 2001 From: rixx Date: Thu, 8 May 2003 21:13:41 +0000 Subject: [PATCH] signal handling git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/trunk/cacti@909 860744bd-22fc-0310-8c96-e9fe5004b5ca --- dev/poller/inc.h | 4 +++- dev/poller/main.c | 21 +++++++++++++++++++++ dev/poller/poller.c | 5 ++++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/dev/poller/inc.h b/dev/poller/inc.h index ac853eef8..65784fcb9 100644 --- a/dev/poller/inc.h +++ b/dev/poller/inc.h @@ -2,7 +2,9 @@ #include #include #include - +#include +#include +#include //For Net-SNMP (ver5) #ifdef NETSNMP diff --git a/dev/poller/main.c b/dev/poller/main.c index 01473f332..7a33743c0 100644 --- a/dev/poller/main.c +++ b/dev/poller/main.c @@ -4,8 +4,23 @@ target_t *targets = NULL; target_t *current = NULL; conf_t conf; int entries; +int conf_changed; + +void sighup(){ + extern int conf_changed; + signal(SIGHUP,sighup); /* reset signal */ + printf("SIGHUP\n"); + conf_changed=1; +} int main(void){ + FILE *fp; + fp=fopen("/tmp/cactid.pid", "w"); + fprintf(fp, "%i",getpid()); + fclose(fp); + + signal(SIGHUP,sighup); + printf("INIT: reading conf\n"); read_conf(); @@ -22,6 +37,12 @@ int main(void){ current=targets; poller(); sleep(conf.interval); + if(conf_changed==1){ + printf("conf changed\n"); + entries=get_targets(); + conf_changed=0; + } + } } diff --git a/dev/poller/poller.c b/dev/poller/poller.c index 006ceff80..4e1255100 100644 --- a/dev/poller/poller.c +++ b/dev/poller/poller.c @@ -28,8 +28,11 @@ void *poller(){ switch(entry->action) { case 0: + #ifdef TEST + entry->result=1; + #else entry->result=snmp_get(entry->management_ip, entry->snmp_community, entry->snmp_version, entry->arg1,0); - //entry->result=1; + #endif break; case 1: cmd_stdout=popen(entry->command, "r");