diff options
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/process.c | 7 | ||||
-rw-r--r-- | source3/smbd/server.c | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 54fd4a90d9..18acb35f7a 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -1114,6 +1114,9 @@ static BOOL timeout_processing(int deadtime, int *select_timeout, time_t *last_t /* become root again if waiting */ change_to_root_user(); + /* run all registered idle events */ + smb_run_idle_events(t); + /* check if we need to reload services */ check_reload(t); @@ -1277,6 +1280,10 @@ void smbd_process(void) lp_talloc_free(); main_loop_talloc_free(); + /* run all registered idle events */ + smb_run_idle_events(time(NULL)); + + /* Did someone ask for immediate checks on things like blocking locks ? */ if (select_timeout == 0) { if(!timeout_processing( deadtime, &select_timeout, &last_timeout_processing_time)) diff --git a/source3/smbd/server.c b/source3/smbd/server.c index ef27f0b7a4..c24fc5134d 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -567,6 +567,9 @@ void exit_server(const char *reason) print_notify_send_messages(3); /* 3 second timeout. */ + /* run all registered exit events */ + smb_run_exit_events(); + /* delete our entry in the connections database. */ yield_connection(NULL,""); |