[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