summaryrefslogtreecommitdiffstats
path: root/contrib/bsnmp
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2005-04-29 11:02:18 +0000
committerharti <harti@FreeBSD.org>2005-04-29 11:02:18 +0000
commit8bf5d359a297f85eced632d52abdb72d334412c5 (patch)
tree1fc08d5676bf753cb94100e74447700671b22830 /contrib/bsnmp
parentf3155bccfa09ac6972f928ee53020c5eb12fec99 (diff)
downloadFreeBSD-src-8bf5d359a297f85eced632d52abdb72d334412c5.zip
FreeBSD-src-8bf5d359a297f85eced632d52abdb72d334412c5.tar.gz
Vendor patch: fix a bug that was introduced when moving from libisc to
libbegemot: the rpoll_start_timer function needs the timeout value in milli-seconds, not the absolute time when the timer should tick.
Diffstat (limited to 'contrib/bsnmp')
-rw-r--r--contrib/bsnmp/snmpd/main.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/contrib/bsnmp/snmpd/main.c b/contrib/bsnmp/snmpd/main.c
index 7cb1aa3..9c73620 100644
--- a/contrib/bsnmp/snmpd/main.c
+++ b/contrib/bsnmp/snmpd/main.c
@@ -1634,9 +1634,7 @@ void *
timer_start(u_int ticks, void (*func)(void *), void *udata, struct lmodule *mod)
{
struct timer *tp;
-#ifdef USE_LIBBEGEMOT
- struct timeval due;
-#else
+#ifndef USE_LIBBEGEMOT
struct timespec due;
#endif
@@ -1644,15 +1642,8 @@ timer_start(u_int ticks, void (*func)(void *), void *udata, struct lmodule *mod)
syslog(LOG_CRIT, "out of memory for timer");
exit(1);
}
-#ifdef USE_LIBBEGEMOT
- (void)gettimeofday(&due, NULL);
- due.tv_sec += ticks / 100;
- due.tv_usec += (ticks % 100) * 10000;
- if (due.tv_usec >= 1000000) {
- due.tv_sec++;
- due.tv_usec -= 1000000;
- }
-#else
+
+#ifndef USE_LIBBEGEMOT
due = evAddTime(evNowTime(),
evConsTime(ticks / 100, (ticks % 100) * 10000));
#endif
@@ -1664,8 +1655,7 @@ timer_start(u_int ticks, void (*func)(void *), void *udata, struct lmodule *mod)
LIST_INSERT_HEAD(&timer_list, tp, link);
#ifdef USE_LIBBEGEMOT
- if ((tp->id = poll_start_timer(due.tv_sec * 1000 + due.tv_usec / 1000,
- 0, tfunc, tp)) < 0) {
+ if ((tp->id = poll_start_timer(ticks * 10, 0, tfunc, tp)) < 0) {
syslog(LOG_ERR, "cannot set timer: %m");
exit(1);
}
OpenPOWER on IntegriCloud