s3: Lift the smbd_messaging_context from printer_driver_in_use
authorVolker Lendecke <vl@samba.org>
Sun, 8 Aug 2010 12:23:12 +0000 (14:23 +0200)
committerVolker Lendecke <vl@samba.org>
Sun, 8 Aug 2010 14:03:24 +0000 (16:03 +0200)
source3/include/nt_printing.h
source3/printing/nt_printing.c
source3/rpc_server/srv_spoolss_nt.c

index 3ac58ca339a953530b681156614a7e0c2257193c..e8a07f8c47fef9a89d9ba1ebbe184321a528c0bf 100644 (file)
@@ -257,6 +257,7 @@ bool driver_info_ctr_to_info8(struct spoolss_AddDriverInfoCtr *r,
 
 bool printer_driver_in_use(TALLOC_CTX *mem_ctx,
                           struct auth_serversupplied_info *server_info,
+                          struct messaging_context *msg_ctx,
                           const struct spoolss_DriverInfo8 *r);
 bool printer_driver_files_in_use(TALLOC_CTX *mem_ctx,
                                 struct auth_serversupplied_info *server_info,
index a5d36dab578833a96ccf2e281d1fb6605f8090b0..4efc25b2c455ece08e35945b1f12eb5a4f7894c4 100644 (file)
@@ -1553,6 +1553,7 @@ bool driver_info_ctr_to_info8(struct spoolss_AddDriverInfoCtr *r,
 
 bool printer_driver_in_use(TALLOC_CTX *mem_ctx,
                           struct auth_serversupplied_info *server_info,
+                          struct messaging_context *msg_ctx,
                            const struct spoolss_DriverInfo8 *r)
 {
        int snum;
@@ -1574,9 +1575,9 @@ bool printer_driver_in_use(TALLOC_CTX *mem_ctx,
                        continue;
                }
 
-               result = winreg_get_printer(mem_ctx, server_info,
-                                           smbd_messaging_context(), NULL,
-                                           lp_servicename(snum), &pinfo2);
+               result = winreg_get_printer(mem_ctx, server_info, msg_ctx,
+                                           NULL, lp_servicename(snum),
+                                           &pinfo2);
                if (!W_ERROR_IS_OK(result)) {
                        continue; /* skip */
                }
@@ -1600,21 +1601,18 @@ bool printer_driver_in_use(TALLOC_CTX *mem_ctx,
                   "Windows NT x86" version 2 or 3 left */
 
                if (!strequal("Windows NT x86", r->architecture)) {
-                       werr = winreg_get_driver(mem_ctx, server_info,
-                                                smbd_messaging_context(),
+                       werr = winreg_get_driver(mem_ctx, server_info, msg_ctx,
                                                 "Windows NT x86",
                                                 r->driver_name,
                                                 DRIVER_ANY_VERSION,
                                                 &driver);
                } else if (r->version == 2) {
-                       werr = winreg_get_driver(mem_ctx, server_info,
-                                                smbd_messaging_context(),
+                       werr = winreg_get_driver(mem_ctx, server_info, msg_ctx,
                                                 "Windows NT x86",
                                                 r->driver_name,
                                                 3, &driver);
                } else if (r->version == 3) {
-                       werr = winreg_get_driver(mem_ctx, server_info,
-                                                smbd_messaging_context(),
+                       werr = winreg_get_driver(mem_ctx, server_info, msg_ctx,
                                                 "Windows NT x86",
                                                 r->driver_name,
                                                 2, &driver);
index d6830dace6e370bf56f20346464260cb1bc29c5d..683688ad523818c7909e59bf6d9ad62bcd6a0546 100644 (file)
@@ -1868,7 +1868,8 @@ WERROR _spoolss_DeletePrinterDriver(struct pipes_struct *p,
 
        }
 
-       if (printer_driver_in_use(p->mem_ctx, p->server_info, info)) {
+       if (printer_driver_in_use(p->mem_ctx, p->server_info, p->msg_ctx,
+                                 info)) {
                status = WERR_PRINTER_DRIVER_IN_USE;
                goto done;
        }
@@ -1969,7 +1970,7 @@ WERROR _spoolss_DeletePrinterDriverEx(struct pipes_struct *p,
                }
        }
 
-       if (printer_driver_in_use(info, p->server_info, info)) {
+       if (printer_driver_in_use(info, p->server_info, p->msg_ctx, info)) {
                status = WERR_PRINTER_DRIVER_IN_USE;
                goto done;
        }