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 <a...@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 <a...@cryptomilk.org> Autobuild-Date: Thu Jul 28 16:20:11 CEST 2011 on sn-devel-104 commit 5fa9fe39ea30c210bfb2ab10cfc796ec4b521f78 Author: Andreas Schneider <a...@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