Unregister event fix from metze.
authorJeremy Allison <jra@samba.org>
Wed, 17 Sep 2003 23:36:55 +0000 (23:36 +0000)
committerJeremy Allison <jra@samba.org>
Wed, 17 Sep 2003 23:36:55 +0000 (23:36 +0000)
Jeremy.
(This used to be commit 0aee73d45733a8eca437954e0c9fd54884bbe770)

source3/lib/module.c

index 941a6cfbe3945ffbd3d5435084719e2235eaa8a5..38fcf0f3297599d55117d48bd011a6cb35880aa2 100644 (file)
@@ -210,18 +210,21 @@ void smb_run_idle_events(time_t now)
        struct smb_idle_list_ent *event = smb_idle_event_list;
 
        while (event) {
+               struct smb_idle_list_ent *next = event->next;
                time_t interval;
 
-               if (event->interval >= SMB_IDLE_EVENT_MIN_INTERVAL) {
+               if (event->interval <= 0) {
+                       interval = SMB_IDLE_EVENT_DEFAULT_INTERVAL;
+               } else if (event->interval >= SMB_IDLE_EVENT_MIN_INTERVAL) {
                        interval = event->interval;
                } else {
                        interval = SMB_IDLE_EVENT_MIN_INTERVAL;
                }
                if (now >(event->lastrun+interval)) {
-                       event->fn(&event->data,&event->interval,now);
                        event->lastrun = now;
+                       event->fn(&event->data,&event->interval,now);
                }
-               event = event->next;
+               event = next;
        }
 
        return;