s3-spoolss: Move info_ctr conversion to a public helper.
authorSimo Sorce <idra@samba.org>
Thu, 15 Apr 2010 00:46:55 +0000 (20:46 -0400)
committerGünther Deschner <gd@samba.org>
Fri, 23 Apr 2010 14:23:49 +0000 (16:23 +0200)
Signed-off-by: Günther Deschner <gd@samba.org>
source3/include/proto.h
source3/printing/nt_printing.c

index 4afe9527055a8883aa54b1bb594413b8b8ccb77d..073a0dc989243ea0676201a319641606eef6828f 100644 (file)
@@ -4888,6 +4888,8 @@ WERROR get_a_printer_search( Printer_entry *print_hnd,
                        uint32 level,
                        const char *sharename);
 uint32 free_a_printer(NT_PRINTER_INFO_LEVEL **pp_printer, uint32 level);
+bool driver_info_ctr_to_info8(struct spoolss_AddDriverInfoCtr *r,
+                             struct spoolss_DriverInfo8 *_info8);
 uint32_t add_a_printer_driver(TALLOC_CTX *mem_ctx,
                              struct spoolss_AddDriverInfoCtr *r,
                              char **driver_name,
index 56f5d18691f3ff2828a9b2ea2bd921ab81c3af34..ba667c32515de99b2410dd0927048cb7d0a321f3 100644 (file)
@@ -4660,17 +4660,13 @@ uint32 free_a_printer(NT_PRINTER_INFO_LEVEL **pp_printer, uint32 level)
 /****************************************************************************
 ****************************************************************************/
 
-uint32_t add_a_printer_driver(TALLOC_CTX *mem_ctx,
-                             struct spoolss_AddDriverInfoCtr *r,
-                             char **driver_name,
-                             uint32_t *version)
+bool driver_info_ctr_to_info8(struct spoolss_AddDriverInfoCtr *r,
+                             struct spoolss_DriverInfo8 *_info8)
 {
        struct spoolss_DriverInfo8 info8;
 
        ZERO_STRUCT(info8);
 
-       DEBUG(10,("adding a printer at level [%d]\n", r->level));
-
        switch (r->level) {
        case 3:
                info8.version           = r->info.info3->version;
@@ -4742,6 +4738,27 @@ uint32_t add_a_printer_driver(TALLOC_CTX *mem_ctx,
                info8.min_inbox_driver_ver_version = r->info.info8->min_inbox_driver_ver_version;
                break;
        default:
+               return false;
+       }
+
+       *_info8 = info8;
+
+       return true;
+}
+
+
+uint32_t add_a_printer_driver(TALLOC_CTX *mem_ctx,
+                             struct spoolss_AddDriverInfoCtr *r,
+                             char **driver_name,
+                             uint32_t *version)
+{
+       struct spoolss_DriverInfo8 info8;
+
+       ZERO_STRUCT(info8);
+
+       DEBUG(10,("adding a printer at level [%d]\n", r->level));
+
+       if (!driver_info_ctr_to_info8(r, &info8)) {
                return -1;
        }