summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source3/printing/queue_process.c6
-rw-r--r--source3/smbd/server.c4
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 */