]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
ntp_timer.c:
authorBrian Utterback <utterback@ntp.org>
Tue, 30 Sep 2003 03:37:34 +0000 (23:37 -0400)
committerBrian Utterback <utterback@ntp.org>
Tue, 30 Sep 2003 03:37:34 +0000 (23:37 -0400)
  Double check that value isn't zero and thus disarm the timer.

bk: 3f78fa7eJgZ8PsCBWBGnDiRivgB9qQ

ntpd/ntp_timer.c

index e33b48bab32fbd6ff5090cb259a1cb3fe7f507a9..b673a99375ed093b3cd305f1f727cab4961ff256 100644 (file)
@@ -102,6 +102,13 @@ reinit_timer(void)
        if (itimer.it_value.tv_sec < 0 || itimer.it_value.tv_sec > (1<<EVENT_TIMEOUT)) {
                itimer.it_value.tv_sec = (1<<EVENT_TIMEOUT);
        }
+       if (itimer.it_value.tv_nsec < 0 ) {
+               itimer.it_value.tv_nsec = 0;
+       }
+       if (itimer.it_value.tv_sec == 0 && itimer.it_value.tv_nsec == 0) {
+               itimer.it_value.tv_sec = (1<<EVENT_TIMEOUT);
+               itimer.it_value.tv_nsec = 0;
+       }
        itimer.it_interval.tv_sec = (1<<EVENT_TIMEOUT);
        itimer.it_interval.tv_nsec = 0;
        timer_settime(ntpd_timerid, 0 /*!TIMER_ABSTIME*/, &itimer, NULL);
@@ -110,6 +117,13 @@ reinit_timer(void)
        if (itimer.it_value.tv_sec < 0 || itimer.it_value.tv_sec > (1<<EVENT_TIMEOUT)) {
                itimer.it_value.tv_sec = (1<<EVENT_TIMEOUT);
        }
+       if (itimer.it_value.tv_nsec < 0 ) {
+               itimer.it_value.tv_usec = 0;
+       }
+       if (itimer.it_value.tv_sec == 0 && itimer.it_value.tv_nsec == 0) {
+               itimer.it_value.tv_sec = (1<<EVENT_TIMEOUT);
+               itimer.it_value.tv_usec = 0;
+       }
        itimer.it_interval.tv_sec = (1<<EVENT_TIMEOUT);
        itimer.it_interval.tv_usec = 0;
        setitimer(ITIMER_REAL, &itimer, (struct itimerval *)0);