1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

s3-smbd: Rename reload_printers() and add documentation.

Autobuild-User: Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date: Mon Sep  5 17:59:47 CEST 2011 on sn-devel-104
This commit is contained in:
Andreas Schneider 2011-09-05 14:35:55 +02:00 committed by Andreas Schneider
parent 303962e370
commit 3e8c665465
5 changed files with 22 additions and 11 deletions

View 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);
}

View 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,

View 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);

View 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);
}
/*******************************************************************

View File

@ -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;