The Samba-Bugzilla – Attachment 5949 Details for
Bug 7656
Scalability problem with hundreds of printers
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
0001-s3-Prune-the-printername-cache-when-a-printer-is-del.patch (text/plain), 2.03 KB, created by
Volker Lendecke
on 2010-09-06 23:05:50 UTC
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Volker Lendecke
Created:
2010-09-06 23:05:50 UTC
Size:
2.03 KB
patch
obsolete
>From 9483f26ec0cf67786e8f2503d3ec59d9a63b948a Mon Sep 17 00:00:00 2001 >From: Volker Lendecke <vl@samba.org> >Date: Mon, 6 Sep 2010 20:58:45 -0700 >Subject: [PATCH] s3: Prune the printername cache when a printer is deleted > >--- > source3/rpc_server/srv_spoolss_nt.c | 22 ++++++++++++++++++++-- > 1 files changed, 20 insertions(+), 2 deletions(-) > >diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c >index 6eb2cc1..879e27e 100644 >--- a/source3/rpc_server/srv_spoolss_nt.c >+++ b/source3/rpc_server/srv_spoolss_nt.c >@@ -98,6 +98,8 @@ struct xcv_api_table { > WERROR(*fn) (TALLOC_CTX *mem_ctx, NT_USER_TOKEN *token, DATA_BLOB *in, DATA_BLOB *out, uint32_t *needed); > }; > >+static void prune_printername_cache(void); >+ > /******************************************************************** > * Canonicalize servername. > ********************************************************************/ >@@ -388,8 +390,13 @@ static WERROR delete_printer_handle(struct pipes_struct *p, struct policy_handle > return WERR_BADFID; > } > >- return delete_printer_hook(p->mem_ctx, p->server_info->ptok, >- Printer->sharename, p->msg_ctx); >+ result = delete_printer_hook(p->mem_ctx, p->server_info->ptok, >+ Printer->sharename, p->msg_ctx); >+ if (!W_ERROR_IS_OK(result)) { >+ return result; >+ } >+ prune_printername_cache(); >+ return WERR_OK; > } > > /**************************************************************************** >@@ -447,6 +454,17 @@ static bool set_printer_hnd_printertype(Printer_entry *Printer, const char *hand > return true; > } > >+static void prune_printername_cache_fn(const char *key, const char *value, >+ time_t timeout, void *private_data) >+{ >+ gencache_del(key); >+} >+ >+static void prune_printername_cache(void) >+{ >+ gencache_iterate(prune_printername_cache_fn, NULL, "PRINTERNAME/*"); >+} >+ > /**************************************************************************** > Set printer handle name.. Accept names like \\server, \\server\printer, > \\server\SHARE, & "\\server\,XcvMonitor Standard TCP/IP Port" See >-- >1.7.0.4 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
asn
:
review+
Actions:
View
Attachments on
bug 7656
:
5941
|
5942
|
5949
|
6239
|
6240