s3: Lift the smbd_messaging_context from winreg_printer_enumforms1
[amitay/samba.git] / source3 / rpc_server / srv_spoolss_util.c
index d609281ba12b0ffd954fbf8218b82a097b9c88c8..aea9a5a7027fabe33cb0186d299c14733e558909 100644 (file)
@@ -1068,6 +1068,7 @@ static WERROR winreg_printer_write_multi_sz(TALLOC_CTX *mem_ctx,
 
 static WERROR winreg_printer_opendriver(TALLOC_CTX *mem_ctx,
                                        struct auth_serversupplied_info *server_info,
+                                       struct messaging_context *msg_ctx,
                                        const char *drivername,
                                        const char *architecture,
                                        uint32_t version,
@@ -1089,7 +1090,7 @@ static WERROR winreg_printer_opendriver(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(mem_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        winreg_pipe,
                                        key_name,
                                        drivername,
@@ -1314,6 +1315,7 @@ static WERROR winreg_printer_ver_to_dword(const char *str, uint64_t *data)
 
 WERROR winreg_create_printer(TALLOC_CTX *mem_ctx,
                             struct auth_serversupplied_info *server_info,
+                            struct messaging_context *msg_ctx,
                             const char *servername,
                             const char *sharename)
 {
@@ -1346,7 +1348,7 @@ WERROR winreg_create_printer(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        "",
@@ -1368,7 +1370,7 @@ WERROR winreg_create_printer(TALLOC_CTX *mem_ctx,
        /* Create the main key */
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        "",
@@ -1601,6 +1603,7 @@ WERROR winreg_create_printer(TALLOC_CTX *mem_ctx,
 
        result = winreg_update_printer(tmp_ctx,
                                       server_info,
+                                      msg_ctx,
                                       sharename,
                                       info2_mask,
                                       info2,
@@ -1623,6 +1626,7 @@ done:
 
 WERROR winreg_update_printer(TALLOC_CTX *mem_ctx,
                             struct auth_serversupplied_info *server_info,
+                            struct messaging_context *msg_ctx,
                             const char *sharename,
                             uint32_t info2_mask,
                             struct spoolss_SetPrinterInfo2 *info2,
@@ -1655,7 +1659,7 @@ WERROR winreg_update_printer(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        "",
@@ -1865,6 +1869,7 @@ WERROR winreg_update_printer(TALLOC_CTX *mem_ctx,
                }
                result = winreg_set_printer_secdesc(tmp_ctx,
                                                    server_info,
+                                                   msg_ctx,
                                                    sharename,
                                                    secdesc);
                if (!W_ERROR_IS_OK(result)) {
@@ -1953,6 +1958,7 @@ done:
 
 WERROR winreg_get_printer(TALLOC_CTX *mem_ctx,
                          struct auth_serversupplied_info *server_info,
+                         struct messaging_context *msg_ctx,
                          const char *servername,
                          const char *printer,
                          struct spoolss_PrinterInfo2 **pinfo2)
@@ -1985,7 +1991,7 @@ WERROR winreg_get_printer(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        "",
@@ -2217,6 +2223,7 @@ WERROR winreg_get_printer(TALLOC_CTX *mem_ctx,
 
        result = winreg_get_printer_secdesc(info2,
                                            server_info,
+                                           msg_ctx,
                                            printer,
                                            &info2->secdesc);
        if (!W_ERROR_IS_OK(result)) {
@@ -2249,6 +2256,7 @@ done:
 
 WERROR winreg_get_printer_secdesc(TALLOC_CTX *mem_ctx,
                                  struct auth_serversupplied_info *server_info,
+                                 struct messaging_context *msg_ctx,
                                  const char *sharename,
                                  struct spoolss_security_descriptor **psecdesc)
 {
@@ -2278,7 +2286,7 @@ WERROR winreg_get_printer_secdesc(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        "",
@@ -2405,6 +2413,7 @@ done:
 
 WERROR winreg_set_printer_secdesc(TALLOC_CTX *mem_ctx,
                                  struct auth_serversupplied_info *server_info,
+                                 struct messaging_context *msg_ctx,
                                  const char *sharename,
                                  const struct spoolss_security_descriptor *secdesc)
 {
@@ -2443,6 +2452,7 @@ WERROR winreg_set_printer_secdesc(TALLOC_CTX *mem_ctx,
 
                result = winreg_get_printer_secdesc(tmp_ctx,
                                                    server_info,
+                                                   msg_ctx,
                                                    sharename,
                                                    &old_secdesc);
                if (!W_ERROR_IS_OK(result)) {
@@ -2487,7 +2497,7 @@ WERROR winreg_set_printer_secdesc(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        "",
@@ -2530,6 +2540,7 @@ done:
 /* Set printer data over the winreg pipe. */
 WERROR winreg_set_printer_dataex(TALLOC_CTX *mem_ctx,
                                 struct auth_serversupplied_info *server_info,
+                                struct messaging_context *msg_ctx,
                                 const char *printer,
                                 const char *key,
                                 const char *value,
@@ -2564,7 +2575,7 @@ WERROR winreg_set_printer_dataex(TALLOC_CTX *mem_ctx,
                        key, value, access_mask, printer));
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        key,
@@ -2615,6 +2626,7 @@ done:
 /* Get printer data over a winreg pipe. */
 WERROR winreg_get_printer_dataex(TALLOC_CTX *mem_ctx,
                                 struct auth_serversupplied_info *server_info,
+                                struct messaging_context *msg_ctx,
                                 const char *printer,
                                 const char *key,
                                 const char *value,
@@ -2651,7 +2663,7 @@ WERROR winreg_get_printer_dataex(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        key,
@@ -2740,6 +2752,7 @@ done:
 /* Enumerate on the values of a given key and provide the data. */
 WERROR winreg_enum_printer_dataex(TALLOC_CTX *mem_ctx,
                                  struct auth_serversupplied_info *server_info,
+                                 struct messaging_context *msg_ctx,
                                  const char *printer,
                                  const char *key,
                                  uint32_t *pnum_values,
@@ -2769,7 +2782,7 @@ WERROR winreg_enum_printer_dataex(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        key,
@@ -2817,6 +2830,7 @@ done:
 /* Delete printer data over a winreg pipe. */
 WERROR winreg_delete_printer_dataex(TALLOC_CTX *mem_ctx,
                                    struct auth_serversupplied_info *server_info,
+                                   struct messaging_context *msg_ctx,
                                    const char *printer,
                                    const char *key,
                                    const char *value)
@@ -2847,7 +2861,7 @@ WERROR winreg_delete_printer_dataex(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        key,
@@ -2895,6 +2909,7 @@ done:
 /* Enumerate on the subkeys of a given key and provide the data. */
 WERROR winreg_enum_printer_key(TALLOC_CTX *mem_ctx,
                               struct auth_serversupplied_info *server_info,
+                              struct messaging_context *msg_ctx,
                               const char *printer,
                               const char *key,
                               uint32_t *pnum_subkeys,
@@ -2927,7 +2942,7 @@ WERROR winreg_enum_printer_key(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        key,
@@ -2975,6 +2990,7 @@ done:
 /* Delete a key with subkeys of a given printer. */
 WERROR winreg_delete_printer_key(TALLOC_CTX *mem_ctx,
                                 struct auth_serversupplied_info *server_info,
+                                struct messaging_context *msg_ctx,
                                 const char *printer,
                                 const char *key)
 {
@@ -2999,7 +3015,7 @@ WERROR winreg_delete_printer_key(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        key,
@@ -3063,6 +3079,7 @@ done:
 
 WERROR winreg_printer_update_changeid(TALLOC_CTX *mem_ctx,
                                      struct auth_serversupplied_info *server_info,
+                                     struct messaging_context *msg_ctx,
                                      const char *printer)
 {
        uint32_t access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -3088,7 +3105,7 @@ WERROR winreg_printer_update_changeid(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        "",
@@ -3128,6 +3145,7 @@ done:
 
 WERROR winreg_printer_get_changeid(TALLOC_CTX *mem_ctx,
                                   struct auth_serversupplied_info *server_info,
+                                  struct messaging_context *msg_ctx,
                                   const char *printer,
                                   uint32_t *pchangeid)
 {
@@ -3155,7 +3173,7 @@ WERROR winreg_printer_get_changeid(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        path,
                                        "",
@@ -3208,6 +3226,7 @@ done:
 
 WERROR winreg_printer_addform1(TALLOC_CTX *mem_ctx,
                               struct auth_serversupplied_info *server_info,
+                              struct messaging_context *msg_ctx,
                               struct spoolss_AddFormInfo1 *form)
 {
        uint32_t access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -3232,7 +3251,7 @@ WERROR winreg_printer_addform1(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        TOP_LEVEL_CONTROL_FORMS_KEY,
                                        "",
@@ -3246,7 +3265,8 @@ WERROR winreg_printer_addform1(TALLOC_CTX *mem_ctx,
                goto done;
        }
 
-       result = winreg_printer_enumforms1(tmp_ctx, server_info, &num_info, &info);
+       result = winreg_printer_enumforms1(tmp_ctx, server_info, msg_ctx,
+                                          &num_info, &info);
        if (!W_ERROR_IS_OK(result)) {
                DEBUG(0, ("winreg_printer_addform: Could not enum keys %s: %s\n",
                          TOP_LEVEL_CONTROL_FORMS_KEY, win_errstr(result)));
@@ -3309,6 +3329,7 @@ done:
 
 WERROR winreg_printer_enumforms1(TALLOC_CTX *mem_ctx,
                                 struct auth_serversupplied_info *server_info,
+                                struct messaging_context *msg_ctx,
                                 uint32_t *pnum_info,
                                 union spoolss_FormInfo **pinfo)
 {
@@ -3333,7 +3354,7 @@ WERROR winreg_printer_enumforms1(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_openkey(tmp_ctx,
                                        server_info,
-                                       smbd_messaging_context(),
+                                       msg_ctx,
                                        &winreg_pipe,
                                        TOP_LEVEL_CONTROL_FORMS_KEY,
                                        "",
@@ -3769,6 +3790,7 @@ WERROR winreg_add_driver(TALLOC_CTX *mem_ctx,
 
        result = winreg_printer_opendriver(tmp_ctx,
                                           server_info,
+                                          smbd_messaging_context(),
                                           info8.driver_name,
                                           info8.architecture,
                                           info8.version,
@@ -3995,6 +4017,7 @@ WERROR winreg_get_driver(TALLOC_CTX *mem_ctx,
                /* look for Win2k first and then for NT4 */
                result = winreg_printer_opendriver(tmp_ctx,
                                                   server_info,
+                                                  smbd_messaging_context(),
                                                   driver_name,
                                                   architecture,
                                                   3,
@@ -4005,6 +4028,7 @@ WERROR winreg_get_driver(TALLOC_CTX *mem_ctx,
                if (!W_ERROR_IS_OK(result)) {
                        result = winreg_printer_opendriver(tmp_ctx,
                                                           server_info,
+                                                          smbd_messaging_context(),
                                                           driver_name,
                                                           architecture,
                                                           2,
@@ -4017,6 +4041,7 @@ WERROR winreg_get_driver(TALLOC_CTX *mem_ctx,
                /* ok normal case */
                result = winreg_printer_opendriver(tmp_ctx,
                                                   server_info,
+                                                  smbd_messaging_context(),
                                                   driver_name,
                                                   architecture,
                                                   driver_version,
@@ -4253,6 +4278,7 @@ WERROR winreg_del_driver(TALLOC_CTX *mem_ctx,
        /* test that the key exists */
        result = winreg_printer_opendriver(tmp_ctx,
                                           server_info,
+                                          smbd_messaging_context(),
                                           info8->driver_name,
                                           info8->architecture,
                                           version,
@@ -4345,6 +4371,7 @@ WERROR winreg_get_driver_list(TALLOC_CTX *mem_ctx,
         * parent of all drivers for this architecture and version */
        result = winreg_printer_opendriver(tmp_ctx,
                                           server_info,
+                                          smbd_messaging_context(),
                                           NULL,
                                           architecture,
                                           version,