diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/process.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c index ac81116999..3d2a507cca 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -1012,6 +1012,18 @@ void smbd_process(void) /* free up temporary memory */ lp_talloc_free(); + /* + * If reload_after_sighup == True then we got a SIGHUP + * and are being asked to reload. Fix from <branko.cibej@hermes.si> + */ + if (reload_after_sighup) { + /* become root */ + unbecome_user(); + DEBUG(1,("Reloading services after SIGHUP\n")); + reload_services(False); + reload_after_sighup = False; + } + while(!receive_message_or_smb(InBuffer,BUFFER_SIZE,select_timeout,&got_smb)) { if(!timeout_processing( deadtime, &select_timeout, &last_timeout_processing_time)) |