s3-spoolss: Use existing handle in printer_driver_in_use().
[amitay/samba.git] / source3 / printing / nt_printing.c
index 0023515bb1300d51d6f8226ac5c0571704c82c4a..4eb375dddd320ced43aa673e8ae3894bec73cd62 100644 (file)
@@ -574,7 +574,7 @@ static int file_version_is_newer(connection_struct *conn, fstring new_file, fstr
 /****************************************************************************
 Determine the correct cVersion associated with an architecture and driver
 ****************************************************************************/
-static uint32 get_correct_cversion(struct auth3_session_info *session_info,
+static uint32 get_correct_cversion(struct auth_session_info *session_info,
                                   const char *architecture,
                                   const char *driverpath_in,
                                   WERROR *perr)
@@ -762,7 +762,7 @@ static uint32 get_correct_cversion(struct auth3_session_info *session_info,
 } while (0);
 
 static WERROR clean_up_driver_struct_level(TALLOC_CTX *mem_ctx,
-                                          struct auth3_session_info *session_info,
+                                          struct auth_session_info *session_info,
                                           const char *architecture,
                                           const char **driver_path,
                                           const char **data_file,
@@ -835,7 +835,7 @@ static WERROR clean_up_driver_struct_level(TALLOC_CTX *mem_ctx,
 ****************************************************************************/
 
 WERROR clean_up_driver_struct(TALLOC_CTX *mem_ctx,
-                             struct auth3_session_info *session_info,
+                             struct auth_session_info *session_info,
                              struct spoolss_AddDriverInfoCtr *r)
 {
        switch (r->level) {
@@ -954,7 +954,7 @@ static WERROR move_driver_file_to_download_area(TALLOC_CTX *mem_ctx,
        return ret;
 }
 
-WERROR move_driver_to_download_area(struct auth3_session_info *session_info,
+WERROR move_driver_to_download_area(struct auth_session_info *session_info,
                                    struct spoolss_AddDriverInfoCtr *r)
 {
        struct spoolss_AddDriverInfo3 *driver;
@@ -1174,16 +1174,14 @@ WERROR move_driver_to_download_area(struct auth3_session_info *session_info,
 ****************************************************************************/
 
 bool printer_driver_in_use(TALLOC_CTX *mem_ctx,
-                          const struct auth3_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,7 +1401,7 @@ static bool trim_overlap_drv_files(TALLOC_CTX *mem_ctx,
 ****************************************************************************/
 
 bool printer_driver_files_in_use(TALLOC_CTX *mem_ctx,
-                                const struct auth3_session_info *session_info,
+                                const struct auth_session_info *session_info,
                                 struct messaging_context *msg_ctx,
                                 struct spoolss_DriverInfo8 *info)
 {
@@ -1516,7 +1504,7 @@ static NTSTATUS driver_unlink_internals(connection_struct *conn,
   this.
 ****************************************************************************/
 
-bool delete_driver_files(const struct auth3_session_info *session_info,
+bool delete_driver_files(const struct auth_session_info *session_info,
                         const struct spoolss_DriverInfo8 *r)
 {
        int i = 0;
@@ -1721,7 +1709,7 @@ void map_job_permissions(struct security_descriptor *sd)
     3)  "printer admins" (may result in numerous calls to winbind)
 
  ****************************************************************************/
-bool print_access_check(const struct auth3_session_info *session_info,
+bool print_access_check(const struct auth_session_info *session_info,
                        struct messaging_context *msg_ctx, int snum,
                        int access_type)
 {
@@ -1803,7 +1791,7 @@ bool print_access_check(const struct auth3_session_info *session_info,
 
         if (!NT_STATUS_IS_OK(status) &&
            (token_contains_name_in_list(uidtoname(session_info->unix_token->uid),
-                                        session_info->info3->base.domain.string,
+                                        session_info->info->domain_name,
                                         NULL, session_info->security_token,
                                         lp_printer_admin(snum)))) {
                talloc_destroy(mem_ctx);
@@ -1823,7 +1811,7 @@ bool print_access_check(const struct auth3_session_info *session_info,
  Check the time parameters allow a print operation.
 *****************************************************************************/
 
-bool print_time_access_check(const struct auth3_session_info *session_info,
+bool print_time_access_check(const struct auth_session_info *session_info,
                             struct messaging_context *msg_ctx,
                             const char *servicename)
 {
@@ -1861,7 +1849,7 @@ bool print_time_access_check(const struct auth3_session_info *session_info,
 }
 
 void nt_printer_remove(TALLOC_CTX *mem_ctx,
-                       const struct auth3_session_info *session_info,
+                       const struct auth_session_info *session_info,
                        struct messaging_context *msg_ctx,
                        const char *printer)
 {