[SCM] Samba Shared Repository - branch master updated
Andreas Schneider
asn at samba.org
Mon Sep 5 10:00:02 MDT 2011
The branch, master has been updated
via 3e8c665 s3-smbd: Rename reload_printers() and add documentation.
from 303962e s3: Fix smbcontrol smbd idmap kill S-1-5-21-...
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 3e8c665465f0fa650f5f5193206e109200ea7795
Author: Andreas Schneider <asn at samba.org>
Date: Mon Sep 5 14:35:55 2011 +0200
s3-smbd: Rename reload_printers() and add documentation.
Autobuild-User: Andreas Schneider <asn at cryptomilk.org>
Autobuild-Date: Mon Sep 5 17:59:47 CEST 2011 on sn-devel-104
-----------------------------------------------------------------------
Summary of changes:
source3/printing/queue_process.c | 4 ++--
source3/printing/spoolssd.c | 2 +-
source3/smbd/proto.h | 4 ++--
source3/smbd/server.c | 2 +-
source3/smbd/server_reload.c | 21 ++++++++++++++++-----
5 files changed, 22 insertions(+), 11 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/printing/queue_process.c b/source3/printing/queue_process.c
index bd26b02..7b2972d 100644
--- a/source3/printing/queue_process.c
+++ b/source3/printing/queue_process.c
@@ -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);
}
diff --git a/source3/printing/spoolssd.c b/source3/printing/spoolssd.c
index 63b3f80..5ea14c9 100644
--- a/source3/printing/spoolssd.c
+++ b/source3/printing/spoolssd.c
@@ -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,
diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h
index d271d7f..8edd695 100644
--- a/source3/smbd/proto.h
+++ b/source3/smbd/proto.h
@@ -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);
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 26e3c86..ecda47c 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -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);
}
/*******************************************************************
diff --git a/source3/smbd/server_reload.c b/source3/smbd/server_reload.c
index 6639c4a..0c2ea2c 100644
--- a/source3/smbd/server_reload.c
+++ b/source3/smbd/server_reload.c
@@ -31,11 +31,22 @@
#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;
--
Samba Shared Repository
More information about the samba-cvs
mailing list