s3: Lift the smbd_messaging_context from nt_printer_publish
authorVolker Lendecke <vl@samba.org>
Sun, 8 Aug 2010 12:35:50 +0000 (14:35 +0200)
committerVolker Lendecke <vl@samba.org>
Sun, 8 Aug 2010 14:03:25 +0000 (16:03 +0200)
source3/include/nt_printing.h
source3/printing/nt_printing_ads.c
source3/rpc_server/srv_spoolss_nt.c
source3/smbd/server_reload.c

index c98085b421969fc676c7e10c7d35b304b9f07f5d..31d85a8e7bb6b353a925916c11a16047371b2b10 100644 (file)
@@ -243,6 +243,7 @@ bool print_access_check(struct auth_serversupplied_info *server_info,
 
 WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
                          struct auth_serversupplied_info *server_info,
+                         struct messaging_context *msg_ctx,
                          struct spoolss_PrinterInfo2 *pinfo2,
                          int action);
 
index 42570389c422d7167d8063bc93de1b4b303f12c0..e981aca5e8a4ce8cdef3ea7a2bf1fc0f5d5cd950 100644 (file)
@@ -237,6 +237,7 @@ static WERROR nt_printer_unpublish_ads(ADS_STRUCT *ads,
 
 WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
                          struct auth_serversupplied_info *server_info,
+                         struct messaging_context *msg_ctx,
                          struct spoolss_PrinterInfo2 *pinfo2,
                          int action)
 {
@@ -266,8 +267,7 @@ WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
 
        sinfo2->attributes = pinfo2->attributes;
 
-       win_rc = winreg_update_printer(mem_ctx, server_info,
-                                       smbd_messaging_context(),
+       win_rc = winreg_update_printer(mem_ctx, server_info, msg_ctx,
                                        pinfo2->sharename, info2_mask,
                                        sinfo2, NULL, NULL);
        if (!W_ERROR_IS_OK(win_rc)) {
@@ -299,8 +299,7 @@ WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
        switch (action) {
        case DSPRINT_PUBLISH:
        case DSPRINT_UPDATE:
-               win_rc = nt_printer_publish_ads(smbd_messaging_context(),
-                                               ads, pinfo2);
+               win_rc = nt_printer_publish_ads(msg_ctx, ads, pinfo2);
                break;
        case DSPRINT_UNPUBLISH:
                win_rc = nt_printer_unpublish_ads(ads, pinfo2->sharename);
index f3f1efcee846401f22c1c77fb59afad6f1ac7dbf..b8a8526eec24b317495dd25ad7d2cd8dd5ac798b 100644 (file)
@@ -6122,7 +6122,8 @@ static WERROR publish_or_unpublish_printer(struct pipes_struct *p,
                return WERR_BADFID;
        }
 
-       nt_printer_publish(pinfo2, p->server_info, pinfo2, info7->action);
+       nt_printer_publish(pinfo2, p->server_info, p->msg_ctx, pinfo2,
+                          info7->action);
 
        TALLOC_FREE(pinfo2);
        return WERR_OK;
index 601f83fb15323c49dc6bf72d0ec2012711031d87..220147da602d037bf713f35e3dc70468fd8df0ec 100644 (file)
@@ -66,7 +66,9 @@ void reload_printers(void)
                                                 NULL, lp_servicename(snum),
                                                 NULL, &pinfo2)) {
                                nt_printer_publish(server_info,
-                                                  server_info, pinfo2,
+                                                  server_info,
+                                                  smbd_messaging_context(),
+                                                  pinfo2,
                                                   DSPRINT_UNPUBLISH);
                                TALLOC_FREE(pinfo2);
                        }