[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Thu Jul 28 08:21:03 MDT 2011


The branch, master has been updated
       via  a97fef3 s3-spoolss: Use existing handle in printer_driver_files_in_use().
       via  5fa9fe3 s3-spoolss: Use existing handle in printer_driver_in_use().
      from  553124a s3: In the async echo test, write 65k

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


- Log -----------------------------------------------------------------
commit a97fef36bccb856c9a6b7e1630f20dd3c394442e
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Jul 28 11:36:50 2011 +0200

    s3-spoolss: Use existing handle in printer_driver_files_in_use().
    
    Autobuild-User: Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date: Thu Jul 28 16:20:11 CEST 2011 on sn-devel-104

commit 5fa9fe39ea30c210bfb2ab10cfc796ec4b521f78
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Jul 28 11:34:08 2011 +0200

    s3-spoolss: Use existing handle in printer_driver_in_use().

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

Summary of changes:
 source3/include/nt_printing.h               |    6 +---
 source3/printing/nt_printing.c              |   28 ++------------------------
 source3/rpc_server/spoolss/srv_spoolss_nt.c |   12 +++-------
 3 files changed, 9 insertions(+), 37 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/nt_printing.h b/source3/include/nt_printing.h
index 69e9f7f..1f13a1a 100644
--- a/source3/include/nt_printing.h
+++ b/source3/include/nt_printing.h
@@ -147,12 +147,10 @@ bool is_printer_published(TALLOC_CTX *mem_ctx,
 WERROR check_published_printers(struct messaging_context *msg_ctx);
 
 bool printer_driver_in_use(TALLOC_CTX *mem_ctx,
-			   const struct auth_session_info *server_info,
-			   struct messaging_context *msg_ctx,
+			   struct dcerpc_binding_handle *b,
 			   const struct spoolss_DriverInfo8 *r);
 bool printer_driver_files_in_use(TALLOC_CTX *mem_ctx,
-				 const struct auth_session_info *server_info,
-				 struct messaging_context *msg_ctx,
+				 struct dcerpc_binding_handle *b,
 				 struct spoolss_DriverInfo8 *r);
 bool delete_driver_files(const struct auth_session_info *server_info,
 			 const struct spoolss_DriverInfo8 *r);
diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c
index 7d1dd9e..2ceb540 100644
--- a/source3/printing/nt_printing.c
+++ b/source3/printing/nt_printing.c
@@ -1174,16 +1174,14 @@ WERROR move_driver_to_download_area(struct auth_session_info *session_info,
 ****************************************************************************/
 
 bool printer_driver_in_use(TALLOC_CTX *mem_ctx,
-			   const struct auth_session_info *session_info,
-			   struct messaging_context *msg_ctx,
-                           const struct spoolss_DriverInfo8 *r)
+			   struct dcerpc_binding_handle *b,
+			   const struct spoolss_DriverInfo8 *r)
 {
 	int snum;
 	int n_services = lp_numservices();
 	bool in_use = False;
 	struct spoolss_PrinterInfo2 *pinfo2 = NULL;
 	WERROR result;
-	struct dcerpc_binding_handle *b = NULL;
 
 	if (!r) {
 		return false;
@@ -1198,16 +1196,6 @@ bool printer_driver_in_use(TALLOC_CTX *mem_ctx,
 			continue;
 		}
 
-		if (b == NULL) {
-			result = winreg_printer_binding_handle(mem_ctx,
-							       session_info,
-							       msg_ctx,
-							       &b);
-			if (!W_ERROR_IS_OK(result)) {
-				return false;
-			}
-		}
-
 		result = winreg_get_printer(mem_ctx, b,
 					    lp_servicename(snum),
 					    &pinfo2);
@@ -1413,8 +1401,7 @@ static bool trim_overlap_drv_files(TALLOC_CTX *mem_ctx,
 ****************************************************************************/
 
 bool printer_driver_files_in_use(TALLOC_CTX *mem_ctx,
-				 const struct auth_session_info *session_info,
-				 struct messaging_context *msg_ctx,
+				 struct dcerpc_binding_handle *b,
 				 struct spoolss_DriverInfo8 *info)
 {
 	int 				i;
@@ -1424,7 +1411,6 @@ bool printer_driver_files_in_use(TALLOC_CTX *mem_ctx,
 	uint32_t num_drivers;
 	const char **drivers;
 	WERROR result;
-	struct dcerpc_binding_handle *b;
 
 	if ( !info )
 		return False;
@@ -1437,14 +1423,6 @@ bool printer_driver_files_in_use(TALLOC_CTX *mem_ctx,
 
 	/* get the list of drivers */
 
-	result = winreg_printer_binding_handle(mem_ctx,
-					       session_info,
-					       msg_ctx,
-					       &b);
-	if (!W_ERROR_IS_OK(result)) {
-		return false;
-	}
-
 	result = winreg_get_driver_list(mem_ctx, b,
 					info->architecture, version,
 					&num_drivers, &drivers);
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index afd78f1..b2200af 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -2142,8 +2142,7 @@ WERROR _spoolss_DeletePrinterDriver(struct pipes_struct *p,
 	}
 
 	if (printer_driver_in_use(tmp_ctx,
-				  get_session_info_system(),
-				  p->msg_ctx,
+				  b,
 				  info)) {
 		status = WERR_PRINTER_DRIVER_IN_USE;
 		goto done;
@@ -2260,8 +2259,7 @@ WERROR _spoolss_DeletePrinterDriverEx(struct pipes_struct *p,
 	}
 
 	if (printer_driver_in_use(tmp_ctx,
-				  get_session_info_system(),
-				  p->msg_ctx,
+				  b,
 				  info)) {
 		status = WERR_PRINTER_DRIVER_IN_USE;
 		goto done;
@@ -2286,8 +2284,7 @@ WERROR _spoolss_DeletePrinterDriverEx(struct pipes_struct *p,
 	if (delete_files &&
 	    (r->in.delete_flags & DPD_DELETE_ALL_FILES) &&
 	    printer_driver_files_in_use(tmp_ctx,
-					get_session_info_system(),
-					p->msg_ctx,
+					b,
 					info)) {
 		/* no idea of the correct error here */
 		status = WERR_ACCESS_DENIED;
@@ -2306,8 +2303,7 @@ WERROR _spoolss_DeletePrinterDriverEx(struct pipes_struct *p,
 			if (delete_files &&
 			    (r->in.delete_flags & DPD_DELETE_ALL_FILES) &&
 			    printer_driver_files_in_use(info,
-							get_session_info_system(),
-							p->msg_ctx,
+							b,
 							info_win2k)) {
 				/* no idea of the correct error here */
 				talloc_free(info_win2k);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list