The Samba-Bugzilla – Attachment 12633 Details for
Bug 11665
When connecting to printers with "List in Directory" set but aren't in the directory fails
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed patch for master
0001-s3-spoolss-Remove-printer-from-registry-if-it-is-unp.patch (text/plain), 2.45 KB, created by
Andreas Schneider
on 2016-11-08 14:17:17 UTC
(
hide
)
Description:
Proposed patch for master
Filename:
MIME Type:
Creator:
Andreas Schneider
Created:
2016-11-08 14:17:17 UTC
Size:
2.45 KB
patch
obsolete
>From 5b4ea6f2faa6abc17b16a1412ed519b1f7c9fc24 Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Tue, 8 Nov 2016 12:20:41 +0100 >Subject: [PATCH] s3-spoolss: Remove printer from registry if it is unpublished > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=11665 > >Signed-off-by: Andreas Schneider <asn@samba.org> >Reviewed-by: Guenther Deschner <gd@samba.org> >--- > source3/rpc_server/spoolss/srv_spoolss_nt.c | 34 ++++++++++++++++++++++++----- > 1 file changed, 29 insertions(+), 5 deletions(-) > >diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c >index 9f1d44f..deb87a3 100644 >--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c >+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c >@@ -4215,6 +4215,7 @@ static WERROR construct_printer_info7(TALLOC_CTX *mem_ctx, > int snum) > { > const struct auth_session_info *session_info; >+ struct spoolss_PrinterInfo2 *pinfo2 = NULL; > char *printer; > WERROR werr; > TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx); >@@ -4233,7 +4234,7 @@ static WERROR construct_printer_info7(TALLOC_CTX *mem_ctx, > } > > if (is_printer_published(tmp_ctx, session_info, msg_ctx, >- servername, printer, NULL)) { >+ servername, printer, &pinfo2)) { > struct GUID guid; > struct GUID_txt_buf guid_txt; > werr = nt_printer_guid_get(tmp_ctx, session_info, msg_ctx, >@@ -4246,10 +4247,33 @@ static WERROR construct_printer_info7(TALLOC_CTX *mem_ctx, > werr = nt_printer_guid_retrieve(tmp_ctx, printer, > &guid); > if (!W_ERROR_IS_OK(werr)) { >- DEBUG(1, ("Failed to retrieve GUID for " >- "printer [%s] from AD - " >- "Is the the printer still " >- "published ?\n", printer)); >+ DBG_NOTICE("Failed to retrieve GUID for " >+ "printer [%s] from AD - %s\n", >+ printer, >+ win_errstr(werr)); >+ if (W_ERROR_EQUAL(werr, WERR_FILE_NOT_FOUND)) { >+ /* >+ * If we did not find it in AD, then it >+ * is unpublished and we should reflect >+ * this in the registry and return >+ * success. >+ */ >+ DBG_WARNING("Unpublish printer [%s]\n", >+ pinfo2->sharename); >+ nt_printer_publish(tmp_ctx, >+ session_info, >+ msg_ctx, >+ pinfo2, >+ DSPRINT_UNPUBLISH); >+ r->guid = talloc_strdup(mem_ctx, ""); >+ r->action = DSPRINT_UNPUBLISH; >+ >+ if (r->guid == NULL) { >+ werr = WERR_NOT_ENOUGH_MEMORY; >+ } else { >+ werr = WERR_OK; >+ } >+ } > goto out_tmp_free; > } > >-- >2.10.1 >
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
Actions:
View
Attachments on
bug 11665
: 12633 |
12634
|
12635
|
12636