diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-03-11 16:49:16 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:18:33 -0500 |
commit | 0d91334fe799f6b50a8265f9dc097411c3a29e18 (patch) | |
tree | c86395688b41edd01055a2a75ac0ba7f6113ad18 /source3/lib/module.c | |
parent | 5214cb6782b1ac01b4b23d53478fa11ad00915fe (diff) | |
download | samba-0d91334fe799f6b50a8265f9dc097411c3a29e18.tar.gz samba-0d91334fe799f6b50a8265f9dc097411c3a29e18.tar.bz2 samba-0d91334fe799f6b50a8265f9dc097411c3a29e18.zip |
r21784: Replace smb_register_idle_event() with event_add_timed(). This fixes winbind
who did not run the idle events to drop ldap connections.
Volker
(This used to be commit af3308ce5a21220ff4c510de356dbaa6cf9ff997)
Diffstat (limited to 'source3/lib/module.c')
-rw-r--r-- | source3/lib/module.c | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/source3/lib/module.c b/source3/lib/module.c index 092a68cd68..96a37ae6b5 100644 --- a/source3/lib/module.c +++ b/source3/lib/module.c @@ -150,88 +150,3 @@ void init_modules(void) if(lp_preload_modules()) smb_load_modules(lp_preload_modules()); } - - -/*************************************************************************** - * This Function registers a idle event - * - * the registered funtions are run periodically - * and maybe shutdown idle connections (e.g. to an LDAP server) - ***************************************************************************/ -static smb_event_id_t smb_idle_event_id = 1; - -struct smb_idle_list_ent { - struct smb_idle_list_ent *prev,*next; - smb_event_id_t id; - smb_idle_event_fn *fn; - void *data; - time_t interval; - time_t lastrun; -}; - -static struct smb_idle_list_ent *smb_idle_event_list = NULL; - -smb_event_id_t smb_register_idle_event(smb_idle_event_fn *fn, void *data, time_t interval) -{ - struct smb_idle_list_ent *event; - - if (!fn) { - return SMB_EVENT_ID_INVALID; - } - - event = SMB_MALLOC_P(struct smb_idle_list_ent); - if (!event) { - DEBUG(0,("malloc() failed!\n")); - return SMB_EVENT_ID_INVALID; - } - event->fn = fn; - event->data = data; - event->interval = interval; - event->lastrun = 0; - event->id = smb_idle_event_id++; - - DLIST_ADD(smb_idle_event_list,event); - - return event->id; -} - -BOOL smb_unregister_idle_event(smb_event_id_t id) -{ - struct smb_idle_list_ent *event = smb_idle_event_list; - - while(event) { - if (event->id == id) { - DLIST_REMOVE(smb_idle_event_list,event); - SAFE_FREE(event); - return True; - } - event = event->next; - } - - return False; -} - -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 <= 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->lastrun = now; - event->fn(&event->data,&event->interval,now); - } - event = next; - } - - return; -} |