diff options
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/process.c | 2 | ||||
-rw-r--r-- | source3/smbd/server.c | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c index d96d5fb7e0..f542dcd84f 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -887,7 +887,7 @@ static void smbd_sig_hup_handler(struct tevent_context *ev, DEBUG(1,("Reloading services after SIGHUP\n")); reload_services(msg_ctx, smbd_server_conn->sock, False); if (am_parent) { - printing_subsystem_update(ev, msg_ctx); + printing_subsystem_update(ev, msg_ctx, true); } } diff --git a/source3/smbd/server.c b/source3/smbd/server.c index ee406fdfaf..24d61483e2 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -64,7 +64,7 @@ static void smb_conf_updated(struct messaging_context *msg, change_to_root_user(); reload_services(msg, smbd_server_conn->sock, False); if (am_parent) { - printing_subsystem_update(ev_ctx, msg); + printing_subsystem_update(ev_ctx, msg, false); } } @@ -1260,6 +1260,10 @@ extern void build_options(bool screen); if (!open_sockets_smbd(parent, ev_ctx, msg_ctx, ports)) exit_server("open_sockets_smbd() failed"); + /* force a printer update now that all messaging has been set up, + * before we allow clients to start connecting */ + printing_subsystem_update(ev_ctx, msg_ctx, true); + TALLOC_FREE(frame); /* make sure we always have a valid stackframe */ frame = talloc_stackframe(); |