s3-smbd: Rename reload_printers() and add documentation.
authorAndreas Schneider <asn@samba.org>
Mon, 5 Sep 2011 12:35:55 +0000 (14:35 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Mon, 5 Sep 2011 15:59:47 +0000 (17:59 +0200)
Autobuild-User: Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date: Mon Sep  5 17:59:47 CEST 2011 on sn-devel-104

source3/printing/queue_process.c
source3/printing/spoolssd.c
source3/smbd/proto.h
source3/smbd/server.c
source3/smbd/server_reload.c

index bd26b02031bd1f1046e3c25c736e90f989d4ef78..7b2972d2c03700ffb79e107de900c3445ca1fc0d 100644 (file)
@@ -339,7 +339,7 @@ bool printing_subsystem_init(struct tevent_context *ev_ctx,
                ret = printing_subsystem_queue_tasks(ev_ctx, msg_ctx);
 
                /* Publish nt printers, this requires a working winreg pipe */
-               pcap_cache_reload(ev_ctx, msg_ctx, &reload_printers);
+               pcap_cache_reload(ev_ctx, msg_ctx, &delete_and_reload_printers);
 
                return ret;
        }
@@ -368,5 +368,5 @@ void printing_subsystem_update(struct tevent_context *ev_ctx,
                return;
        }
 
-       pcap_cache_reload(ev_ctx, msg_ctx, &reload_printers);
+       pcap_cache_reload(ev_ctx, msg_ctx, &delete_and_reload_printers);
 }
index 63b3f80cffedaba45995e68f5bb6f8b5c3ca21bd..5ea14c9f7a829d15689dd442a13074eafce09a6f 100644 (file)
@@ -131,7 +131,7 @@ static void update_pcap(struct tevent_context *ev_ctx,
                        struct messaging_context *msg_ctx)
 {
        change_to_root_user();
-       reload_printers(ev_ctx, msg_ctx);
+       delete_and_reload_printers(ev_ctx, msg_ctx);
 }
 
 static void pcap_updated(struct messaging_context *msg,
index d271d7f043c5ed72416ed116b5d44df4c1d36726..8edd69507ccfd09af1bac4f75b091b76851afc3a 100644 (file)
@@ -964,8 +964,8 @@ void init_sec_ctx(void);
 struct event_context *smbd_event_context(void);
 struct messaging_context *smbd_messaging_context(void);
 struct memcache *smbd_memcache(void);
-void reload_printers(struct tevent_context *ev,
-                    struct messaging_context *msg_ctx);
+void delete_and_reload_printers(struct tevent_context *ev,
+                               struct messaging_context *msg_ctx);
 bool reload_services(struct messaging_context *msg_ctx, int smb_sock,
                     bool test);
 void exit_server(const char *const explanation);
index 26e3c86edf21ba5453f013c478885efff43f2192..ecda47c644a4dcb3b02092ca638654819f566452 100644 (file)
@@ -88,7 +88,7 @@ static void smb_pcap_updated(struct messaging_context *msg,
 
        DEBUG(10,("Got message saying pcap was updated. Reloading.\n"));
        change_to_root_user();
-       reload_printers(ev_ctx, msg);
+       delete_and_reload_printers(ev_ctx, msg);
 }
 
 /*******************************************************************
index 6639c4a8f6c4d0b1525a28b837699996c257aadf..0c2ea2c5b127d36d9a52949530a6f1bdb352c762 100644 (file)
 #include "messages.h"
 #include "lib/param/loadparm.h"
 
-/****************************************************************************
- purge stale printers and reload from pre-populated pcap cache
-**************************************************************************/
-void reload_printers(struct tevent_context *ev,
-                    struct messaging_context *msg_ctx)
+/**
+ * @brief Purge stale printers and reload from pre-populated pcap cache.
+ *
+ * This function should normally only be called as a callback on a successful
+ * pcap_cache_reload() or after a MSG_PRINTER_CAP message is received.
+ *
+ * This function can cause DELETION of printers and drivers from our registry,
+ * so calling it on a failed pcap reload may REMOVE permanently all printers
+ * and drivers.
+ *
+ * @param[in] ev        The event context.
+ *
+ * @param[in] msg_ctx   The messaging context.
+ */
+void delete_and_reload_printers(struct tevent_context *ev,
+                               struct messaging_context *msg_ctx)
 {
        struct auth_session_info *session_info = NULL;
        struct spoolss_PrinterInfo2 *pinfo2 = NULL;