diff options
-rw-r--r-- | source3/printing/queue_process.c | 6 | ||||
-rw-r--r-- | source3/smbd/server.c | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/source3/printing/queue_process.c b/source3/printing/queue_process.c index 20f1a5b06b..fd4f3c7285 100644 --- a/source3/printing/queue_process.c +++ b/source3/printing/queue_process.c @@ -30,6 +30,7 @@ #include "locking/proto.h" #include "smbd/proto.h" #include "rpc_server/rpc_service_setup.h" +#include "printing/load.h" extern pid_t start_spoolssd(struct event_context *ev_ctx, struct messaging_context *msg_ctx); @@ -357,6 +358,9 @@ void printing_subsystem_update(struct tevent_context *ev_ctx, bool force) { if (background_lpq_updater_pid != -1) { + if (pcap_cache_loaded()) { + load_printers(ev_ctx, msg_ctx); + } if (force) { /* Send a sighup to the background process. * this will force it to reload printers */ @@ -365,5 +369,5 @@ void printing_subsystem_update(struct tevent_context *ev_ctx, return; } - pcap_cache_reload(ev_ctx, msg_ctx, &reload_pcap_change_notify); + pcap_cache_reload(ev_ctx, msg_ctx, &reload_printers); } diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 24d61483e2..d396289e0d 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -1260,9 +1260,9 @@ 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, + /* do 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); + printing_subsystem_update(ev_ctx, msg_ctx, false); TALLOC_FREE(frame); /* make sure we always have a valid stackframe */ |