--- mibII.c Mon Aug 3 04:53:05 2009 +++ mibII-patched.c Mon Aug 3 04:54:54 2009 @@ -117,6 +117,14 @@ /* HC update timer handle */ static void *hc_update_timer; +/* Idle poll timer */ +static void *mibII_poll_timer; + +/* XXX - FIXME! */ +static int mibII_poll_ticks = 10 * 100; /* poll every 10s */ + +static void mibII_idle(void *arg __unused); + /*****************************/ static const struct asn_oid oid_ifMIB = OIDX_ifMIB; @@ -408,6 +416,10 @@ return; } mibif_hc_update_interval = ticks; + + if ((mibII_poll_timer = timer_start_repeat(mibII_poll_ticks, mibII_poll_ticks, + mibII_idle, NULL, module)) == NULL) + syslog(LOG_ERR, "timer_start(%u): %m", mibII_poll_ticks); } /* @@ -1553,7 +1565,7 @@ * Idle function */ static void -mibII_idle(void) +mibII_idle(void *arg __unused) { struct mibifa *ifa; @@ -1651,6 +1663,11 @@ static int mibII_fini(void) { + if (mibII_poll_timer != NULL ) { + timer_stop(mibII_poll_timer); + mibII_poll_timer = NULL; + } + if (route_fd != NULL) fd_deselect(route_fd); if (route != -1) @@ -1690,7 +1707,7 @@ "This module implements the interface and ip groups.", mibII_init, mibII_fini, - mibII_idle, /* idle */ + NULL, /* mibII_idle, *//* idle */ NULL, /* dump */ NULL, /* config */ mibII_start,