s3-spoolss: apply some const in spoolss server.
authorGünther Deschner <gd@samba.org>
Fri, 20 Mar 2009 14:14:09 +0000 (15:14 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 20 Mar 2009 16:20:32 +0000 (17:20 +0100)
Guenther

source3/include/proto.h
source3/printing/nt_printing.c
source3/rpc_server/srv_spoolss_nt.c

index 9bffa4d319fb24ec9b1c06c64bf2f703f411a359..dc26f6d6e528e98c803e121422900a72916c2dc2 100644 (file)
@@ -4828,7 +4828,7 @@ WERROR add_printer_data( NT_PRINTER_INFO_LEVEL_2 *p2, const char *key, const cha
 REGISTRY_VALUE* get_printer_data( NT_PRINTER_INFO_LEVEL_2 *p2, const char *key, const char *value );
 WERROR mod_a_printer(NT_PRINTER_INFO_LEVEL *printer, uint32 level);
 bool set_driver_init(NT_PRINTER_INFO_LEVEL *printer, uint32 level);
-bool del_driver_init(char *drivername);
+bool del_driver_init(const char *drivername);
 WERROR save_driver_init(NT_PRINTER_INFO_LEVEL *printer, uint32 level, uint8 *data, uint32 data_len);
 WERROR get_a_printer( Printer_entry *print_hnd,
                        NT_PRINTER_INFO_LEVEL **pp_printer,
@@ -4840,8 +4840,8 @@ WERROR get_a_printer_search( Printer_entry *print_hnd,
                        const char *sharename);
 uint32 free_a_printer(NT_PRINTER_INFO_LEVEL **pp_printer, uint32 level);
 uint32 add_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL driver, uint32 level);
-WERROR get_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL *driver, uint32 level,
-                            fstring drivername, const char *architecture, uint32 version);
+WERROR get_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL *driver, uint32_t level,
+                           const char *drivername, const char *architecture, uint32_t version);
 uint32 free_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL driver, uint32 level);
 bool printer_driver_in_use ( NT_PRINTER_DRIVER_INFO_LEVEL_3 *info_3 );
 bool printer_driver_files_in_use ( NT_PRINTER_DRIVER_INFO_LEVEL_3 *info );
index 8e6fe1f364fda426aecbbe4b16986f33b8f8b882..a99485d3814b4d4de7f6faad801877bafdfde4f1 100644 (file)
@@ -2275,7 +2275,9 @@ static WERROR get_a_printer_driver_3_default(NT_PRINTER_DRIVER_INFO_LEVEL_3 **in
 
 /****************************************************************************
 ****************************************************************************/
-static WERROR get_a_printer_driver_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 **info_ptr, fstring drivername, const char *arch, uint32 version)
+static WERROR get_a_printer_driver_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 **info_ptr,
+                                    const char *drivername, const char *arch,
+                                    uint32_t version)
 {
        NT_PRINTER_DRIVER_INFO_LEVEL_3 driver;
        TDB_DATA dbuf;
@@ -4448,7 +4450,7 @@ bool set_driver_init(NT_PRINTER_INFO_LEVEL *printer, uint32 level)
  Delete driver init data stored for a specified driver
 ****************************************************************************/
 
-bool del_driver_init(char *drivername)
+bool del_driver_init(const char *drivername)
 {
        char *key;
        bool ret;
@@ -4837,8 +4839,9 @@ uint32 add_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL driver, uint32 level)
 /****************************************************************************
 ****************************************************************************/
 
-WERROR get_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL *driver, uint32 level,
-                            fstring drivername, const char *architecture, uint32 version)
+WERROR get_a_printer_driver(NT_PRINTER_DRIVER_INFO_LEVEL *driver, uint32_t level,
+                           const char *drivername, const char *architecture,
+                           uint32_t version)
 {
        WERROR result;
 
index b66f48aa29922da51c56e5f896ed8343c25b0c39..01438fc7d6038594cd721ffee66143c3bb0f7ee4 100644 (file)
@@ -393,7 +393,7 @@ static bool get_printer_snum(pipes_struct *p, struct policy_handle *hnd,
  Check if it's \\server or \\server\printer
 ****************************************************************************/
 
-static bool set_printer_hnd_printertype(Printer_entry *Printer, char *handlename)
+static bool set_printer_hnd_printertype(Printer_entry *Printer, const char *handlename)
 {
        DEBUG(3,("Setting printer type=%s\n", handlename));
 
@@ -423,7 +423,7 @@ static bool set_printer_hnd_printertype(Printer_entry *Printer, char *handlename
  XcvDataPort() interface.
 ****************************************************************************/
 
-static bool set_printer_hnd_name(Printer_entry *Printer, char *handlename)
+static bool set_printer_hnd_name(Printer_entry *Printer, const char *handlename)
 {
        int snum;
        int n_services=lp_numservices();
@@ -434,9 +434,10 @@ static bool set_printer_hnd_name(Printer_entry *Printer, char *handlename)
        NT_PRINTER_INFO_LEVEL *printer = NULL;
        WERROR result;
 
-       DEBUG(4,("Setting printer name=%s (len=%lu)\n", handlename, (unsigned long)strlen(handlename)));
+       DEBUG(4,("Setting printer name=%s (len=%lu)\n", handlename,
+               (unsigned long)strlen(handlename)));
 
-       aprinter = handlename;
+       aprinter = CONST_DISCARD(char *, handlename);
        if ( *handlename == '\\' ) {
                servername = canon_servername(handlename);
                if ( (aprinter = strchr_m( servername, '\\' )) != NULL ) {
@@ -556,7 +557,7 @@ static bool set_printer_hnd_name(Printer_entry *Printer, char *handlename)
  ****************************************************************************/
 
 static bool open_printer_hnd(pipes_struct *p, struct policy_handle *hnd,
-                            char *name, uint32_t access_granted)
+                            const char *name, uint32_t access_granted)
 {
        Printer_entry *new_printer;
 
@@ -1247,7 +1248,7 @@ static void receive_notify2_message_list(struct messaging_context *msg,
  driver
  ********************************************************************/
 
-static bool srv_spoolss_drv_upgrade_printer(char* drivername)
+static bool srv_spoolss_drv_upgrade_printer(const char *drivername)
 {
        int len = strlen(drivername);
 
@@ -1545,20 +1546,19 @@ bool convert_devicemode(const char *printername,
 WERROR _spoolss_OpenPrinterEx(pipes_struct *p,
                              struct spoolss_OpenPrinterEx *r)
 {
-       char *name = CONST_DISCARD(char *, r->in.printername);
        int snum;
        Printer_entry *Printer=NULL;
 
-       if (!name) {
+       if (!r->in.printername) {
                return WERR_INVALID_PARAM;
        }
 
        /* some sanity check because you can open a printer or a print server */
        /* aka: \\server\printer or \\server */
 
-       DEBUGADD(3,("checking name: %s\n",name));
+       DEBUGADD(3,("checking name: %s\n", r->in.printername));
 
-       if (!open_printer_hnd(p, r->out.handle, name, 0)) {
+       if (!open_printer_hnd(p, r->out.handle, r->in.printername, 0)) {
                ZERO_STRUCTP(r->out.handle);
                return WERR_INVALID_PARAM;
        }
@@ -1566,7 +1566,7 @@ WERROR _spoolss_OpenPrinterEx(pipes_struct *p,
        Printer = find_printer_index_by_hnd(p, r->out.handle);
        if ( !Printer ) {
                DEBUG(0,("_spoolss_OpenPrinterEx: logic error.  Can't find printer "
-                       "handle we created for printer %s\n", name ));
+                       "handle we created for printer %s\n", r->in.printername));
                close_printer_handle(p, r->out.handle);
                ZERO_STRUCTP(r->out.handle);
                return WERR_INVALID_PARAM;
@@ -2075,7 +2075,7 @@ WERROR _spoolss_DeletePrinter(pipes_struct *p,
  * long architecture string
  ******************************************************************/
 
-static int get_version_id (char * arch)
+static int get_version_id(const char *arch)
 {
        int i;
        struct table_node archi_table[]= {
@@ -2106,8 +2106,6 @@ static int get_version_id (char * arch)
 WERROR _spoolss_DeletePrinterDriver(pipes_struct *p,
                                    struct spoolss_DeletePrinterDriver *r)
 {
-       char *driver;
-       char *arch;
        NT_PRINTER_DRIVER_INFO_LEVEL    info;
        NT_PRINTER_DRIVER_INFO_LEVEL    info_win2k;
        int                             version;
@@ -2128,24 +2126,26 @@ WERROR _spoolss_DeletePrinterDriver(pipes_struct *p,
                return WERR_ACCESS_DENIED;
        }
 
-       driver = CONST_DISCARD(char *, r->in.driver);
-       arch   = CONST_DISCARD(char *, r->in.architecture);
-
        /* check that we have a valid driver name first */
 
-       if ((version=get_version_id(arch)) == -1)
+       if ((version = get_version_id(r->in.architecture)) == -1)
                return WERR_INVALID_ENVIRONMENT;
 
        ZERO_STRUCT(info);
        ZERO_STRUCT(info_win2k);
 
-       if (!W_ERROR_IS_OK(get_a_printer_driver(&info, 3, driver, arch, version)))
+       if (!W_ERROR_IS_OK(get_a_printer_driver(&info, 3, r->in.driver,
+                                               r->in.architecture,
+                                               version)))
        {
                /* try for Win2k driver if "Windows NT x86" */
 
                if ( version == 2 ) {
                        version = 3;
-                       if (!W_ERROR_IS_OK(get_a_printer_driver(&info, 3, driver, arch, version))) {
+                       if (!W_ERROR_IS_OK(get_a_printer_driver(&info, 3,
+                                                               r->in.driver,
+                                                               r->in.architecture,
+                                                               version))) {
                                status = WERR_UNKNOWN_PRINTER_DRIVER;
                                goto done;
                        }
@@ -2165,7 +2165,9 @@ WERROR _spoolss_DeletePrinterDriver(pipes_struct *p,
 
        if ( version == 2 )
        {
-               if (W_ERROR_IS_OK(get_a_printer_driver(&info_win2k, 3, driver, arch, 3)))
+               if (W_ERROR_IS_OK(get_a_printer_driver(&info_win2k, 3,
+                                                      r->in.driver,
+                                                      r->in.architecture, 3)))
                {
                        /* if we get to here, we now have 2 driver info structures to remove */
                        /* remove the Win2k driver first*/
@@ -2203,8 +2205,6 @@ done:
 WERROR _spoolss_DeletePrinterDriverEx(pipes_struct *p,
                                      struct spoolss_DeletePrinterDriverEx *r)
 {
-       char *driver;
-       char *arch;
        NT_PRINTER_DRIVER_INFO_LEVEL    info;
        NT_PRINTER_DRIVER_INFO_LEVEL    info_win2k;
        int                             version;
@@ -2225,11 +2225,8 @@ WERROR _spoolss_DeletePrinterDriverEx(pipes_struct *p,
                return WERR_ACCESS_DENIED;
        }
 
-       driver = CONST_DISCARD(char *, r->in.driver);
-       arch   = CONST_DISCARD(char *, r->in.architecture);
-
        /* check that we have a valid driver name first */
-       if ((version=get_version_id(arch)) == -1) {
+       if ((version = get_version_id(r->in.architecture)) == -1) {
                /* this is what NT returns */
                return WERR_INVALID_ENVIRONMENT;
        }
@@ -2240,7 +2237,8 @@ WERROR _spoolss_DeletePrinterDriverEx(pipes_struct *p,
        ZERO_STRUCT(info);
        ZERO_STRUCT(info_win2k);
 
-       status = get_a_printer_driver(&info, 3, driver, arch, version);
+       status = get_a_printer_driver(&info, 3, r->in.driver,
+                                     r->in.architecture, version);
 
        if ( !W_ERROR_IS_OK(status) )
        {
@@ -2256,7 +2254,9 @@ WERROR _spoolss_DeletePrinterDriverEx(pipes_struct *p,
                /* try for Win2k driver if "Windows NT x86" */
 
                version = 3;
-               if (!W_ERROR_IS_OK(get_a_printer_driver(&info, 3, driver, arch, version))) {
+               if (!W_ERROR_IS_OK(get_a_printer_driver(&info, 3, r->in.driver,
+                                                       r->in.architecture,
+                                                       version))) {
                        status = WERR_UNKNOWN_PRINTER_DRIVER;
                        goto done;
                }
@@ -2293,7 +2293,9 @@ WERROR _spoolss_DeletePrinterDriverEx(pipes_struct *p,
        /* also check for W32X86/3 if necessary; maybe we already have? */
 
        if ( (version == 2) && ((r->in.delete_flags & DPD_DELETE_SPECIFIC_VERSION) != DPD_DELETE_SPECIFIC_VERSION)  ) {
-               if (W_ERROR_IS_OK(get_a_printer_driver(&info_win2k, 3, driver, arch, 3)))
+               if (W_ERROR_IS_OK(get_a_printer_driver(&info_win2k, 3,
+                                                      r->in.driver,
+                                                      r->in.architecture, 3)))
                {
 
                        if ( delete_files && printer_driver_files_in_use(info_win2k.info_3) & (r->in.delete_flags & DPD_DELETE_ALL_FILES) ) {
@@ -7247,7 +7249,7 @@ WERROR _spoolss_AddPrinterDriver(pipes_struct *p,
        struct spoolss_AddDriverInfoCtr *info = r->in.info_ctr;
        WERROR err = WERR_OK;
        NT_PRINTER_DRIVER_INFO_LEVEL driver;
-       fstring driver_name;
+       const char *driver_name = NULL;
        uint32_t version;
        const char *fn;
 
@@ -7297,12 +7299,10 @@ WERROR _spoolss_AddPrinterDriver(pipes_struct *p,
 
         switch(level) {
        case 3:
-               fstrcpy(driver_name,
-                       driver.info_3->name ? driver.info_3->name : "");
+               driver_name = driver.info_3->name ? driver.info_3->name : "";
                break;
        case 6:
-               fstrcpy(driver_name,
-                       driver.info_6->name ?  driver.info_6->name : "");
+               driver_name = driver.info_6->name ? driver.info_6->name : "";
                break;
         }