s3-spoolssd: Listen on parent messages
authorSimo Sorce <idra@samba.org>
Wed, 17 Aug 2011 20:17:10 +0000 (16:17 -0400)
committerSimo Sorce <idra@samba.org>
Sun, 21 Aug 2011 13:05:06 +0000 (09:05 -0400)
Signed-off-by: Andreas Schneider <asn@samba.org>
Signed-off-by: Simo Sorce <idra@samba.org>
source3/printing/spoolssd.c

index b833529f8f92f6a4583b5898997760ac2edd5378..9a806f09a8bd1460e12c1362a5d814aa16c66e48 100644 (file)
@@ -280,6 +280,22 @@ static bool spoolss_setup_chld_hup_handler(struct tevent_context *ev_ctx,
        return true;
 }
 
+static void parent_ping(struct messaging_context *msg_ctx,
+                       void *private_data,
+                       uint32_t msg_type,
+                       struct server_id server_id,
+                       DATA_BLOB *data)
+{
+
+       /* The fact we received this message is enough to let make the event
+        * loop if it was idle. spoolss_children_main will cycle through
+        * spoolss_next_client at least once. That function will take whatever
+        * action is necessary */
+
+       DEBUG(10, ("Got message that the parent changed status.\n"));
+       return;
+}
+
 static bool spoolss_child_init(struct tevent_context *ev_ctx,
                               int child_id, struct pf_worker_data *pf)
 {
@@ -317,6 +333,8 @@ static bool spoolss_child_init(struct tevent_context *ev_ctx,
                           MSG_SMB_CONF_UPDATED, smb_conf_updated);
        messaging_register(msg_ctx, ev_ctx, MSG_PRINTER_PCAP,
                           pcap_updated);
+       messaging_register(msg_ctx, ev_ctx,
+                          MSG_PREFORK_PARENT_EVENT, parent_ping);
 
        /* As soon as messaging is up check if pcap has been loaded already.
         * If so then we probably missed a message and should load_printers()