[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Tue Nov 8 17:06:03 UTC 2016


The branch, master has been updated
       via  0750542 s3-spoolss: Remove printer from registry if it is unpublished
       via  119c15f s3-printing: Improve debug message
      from  5c53d50 ctdb-tests: Add tests for updated Debian style Samba start/stop

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 07505429cc4bb7e56f4dcdcaeb4eabdcd8e550e5
Author: Andreas Schneider <asn at samba.org>
Date:   Tue Nov 8 12:20:41 2016 +0100

    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 at samba.org>
    Reviewed-by: Guenther Deschner <gd at samba.org>
    
    Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date(master): Tue Nov  8 18:05:10 CET 2016 on sn-devel-144

commit 119c15fc4a994e594cc9b0e63557404fd59f3aac
Author: Andreas Schneider <asn at samba.org>
Date:   Tue Nov 8 12:20:25 2016 +0100

    s3-printing: Improve debug message
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Guenther Deschner <gd at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 source3/printing/nt_printing_ads.c          |  4 +++-
 source3/rpc_server/spoolss/srv_spoolss_nt.c | 34 ++++++++++++++++++++++++-----
 2 files changed, 32 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/printing/nt_printing_ads.c b/source3/printing/nt_printing_ads.c
index cf4c310..2588e1d 100644
--- a/source3/printing/nt_printing_ads.c
+++ b/source3/printing/nt_printing_ads.c
@@ -569,7 +569,9 @@ WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
 					pinfo2->sharename, info2_mask,
 					sinfo2, NULL, NULL);
 	if (!W_ERROR_IS_OK(win_rc)) {
-		DEBUG(3, ("err %d saving data\n", W_ERROR_V(win_rc)));
+		DBG_NOTICE("Failed to update data for printer [%s] - %s\n",
+			   pinfo2->sharename,
+			   win_errstr(win_rc));
 		goto done;
 	}
 
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;
 			}
 


-- 
Samba Shared Repository



More information about the samba-cvs mailing list