summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/process.c12
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))