s3-spoolss: remove rpccli_spoolss_setprinter.
authorGünther Deschner <gd@samba.org>
Tue, 24 Feb 2009 23:12:58 +0000 (00:12 +0100)
committerGünther Deschner <gd@samba.org>
Wed, 25 Feb 2009 10:16:29 +0000 (11:16 +0100)
Guenther

source3/include/proto.h
source3/include/rpc_spoolss.h
source3/rpc_client/cli_spoolss.c
source3/rpc_parse/parse_spoolss.c

index 4691dc70eca714efaa842caa9ac7f16eda9d44f3..d6ec7013cfb70316cfea662c87173e9b8162df08 100644 (file)
@@ -5493,9 +5493,6 @@ WERROR rpccli_spoolss_enum_ports(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ct
 WERROR rpccli_spoolss_getprinter(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
                              POLICY_HND *pol, uint32 level, 
                              PRINTER_INFO_CTR *ctr);
-WERROR rpccli_spoolss_setprinter(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
-                             POLICY_HND *pol, uint32 level, 
-                             PRINTER_INFO_CTR *ctr, uint32 command);
 WERROR rpccli_spoolss_enumprinterdrivers (struct rpc_pipe_client *cli, 
                                       TALLOC_CTX *mem_ctx,
                                       uint32 level, const char *env,
@@ -5812,12 +5809,6 @@ bool sec_io_desc_buf(const char *desc, SEC_DESC_BUF **ppsdb, prs_struct *ps, int
 bool spoolss_io_system_time(const char *desc, prs_struct *ps, int depth, SYSTEMTIME *systime);
 bool make_systemtime(SYSTEMTIME *systime, struct tm *unixtime);
 bool spoolss_io_devmode(const char *desc, prs_struct *ps, int depth, DEVICEMODE *devmode);
-bool make_spoolss_printer_info_2(TALLOC_CTX *ctx, SPOOL_PRINTER_INFO_LEVEL_2 **spool_info2, 
-                               PRINTER_INFO_2 *info);
-bool make_spoolss_printer_info_3(TALLOC_CTX *mem_ctx, SPOOL_PRINTER_INFO_LEVEL_3 **spool_info3, 
-                               PRINTER_INFO_3 *info);
-bool make_spoolss_printer_info_7(TALLOC_CTX *mem_ctx, SPOOL_PRINTER_INFO_LEVEL_7 **spool_info7, 
-                               PRINTER_INFO_7 *info);
 bool make_spoolss_q_getprinterdata(SPOOL_Q_GETPRINTERDATA *q_u,
                                   const POLICY_HND *handle,
                                   const char *valuename, uint32 size);
@@ -5895,11 +5886,6 @@ bool make_spoolss_q_getprinter(
        RPC_BUFFER *buffer, 
        uint32 offered
 );
-bool make_spoolss_q_setprinter(TALLOC_CTX *mem_ctx, SPOOL_Q_SETPRINTER *q_u, 
-                               const POLICY_HND *hnd, uint32 level, PRINTER_INFO_CTR *info, 
-                               uint32 command);
-bool spoolss_io_r_setprinter(const char *desc, SPOOL_R_SETPRINTER *r_u, prs_struct *ps, int depth);
-bool spoolss_io_q_setprinter(const char *desc, SPOOL_Q_SETPRINTER *q_u, prs_struct *ps, int depth);
 bool spoolss_io_r_enumjobs(const char *desc, SPOOL_R_ENUMJOBS *r_u, prs_struct *ps, int depth);
 bool make_spoolss_q_enumjobs(SPOOL_Q_ENUMJOBS *q_u, const POLICY_HND *hnd,
                                uint32 firstjob,
@@ -5919,14 +5905,7 @@ bool spoolss_io_q_enumforms(const char *desc, SPOOL_Q_ENUMFORMS *q_u, prs_struct
 bool spoolss_io_r_enumforms(const char *desc, SPOOL_R_ENUMFORMS *r_u, prs_struct *ps, int depth);
 bool spoolss_io_r_enumports(const char *desc, SPOOL_R_ENUMPORTS *r_u, prs_struct *ps, int depth);
 bool spoolss_io_q_enumports(const char *desc, SPOOL_Q_ENUMPORTS *q_u, prs_struct *ps, int depth);
-bool spool_io_printer_info_level_1(const char *desc, SPOOL_PRINTER_INFO_LEVEL_1 *il, prs_struct *ps, int depth);
-bool spool_io_printer_info_level_3(const char *desc, SPOOL_PRINTER_INFO_LEVEL_3 *il, prs_struct *ps, int depth);
-bool spool_io_printer_info_level_2(const char *desc, SPOOL_PRINTER_INFO_LEVEL_2 *il, prs_struct *ps, int depth);
-bool spool_io_printer_info_level_7(const char *desc, SPOOL_PRINTER_INFO_LEVEL_7 *il, prs_struct *ps, int depth);
-bool spool_io_printer_info_level(const char *desc, SPOOL_PRINTER_INFO_LEVEL *il, prs_struct *ps, int depth);
 bool make_spoolss_buffer5(TALLOC_CTX *mem_ctx, BUFFER5 *buf5, uint32 len, uint16 *src);
-bool uni_2_asc_printer_info_2(const SPOOL_PRINTER_INFO_LEVEL_2 *uni,
-                              NT_PRINTER_INFO_LEVEL_2  *d);
 bool spoolss_io_r_enumprintprocessors(const char *desc, SPOOL_R_ENUMPRINTPROCESSORS *r_u, prs_struct *ps, int depth);
 bool spoolss_io_q_enumprintprocessors(const char *desc, SPOOL_Q_ENUMPRINTPROCESSORS *q_u, prs_struct *ps, int depth);
 bool spoolss_io_r_enumprintprocdatatypes(const char *desc, SPOOL_R_ENUMPRINTPROCDATATYPES *r_u, prs_struct *ps, int depth);
index 65fab7d319ac897292f5a4bcfb2e72bbefa648d6..c494fdd6bfc2cffe44274bcf5c09bc68b90af5ad 100644 (file)
@@ -853,98 +853,6 @@ typedef struct spool_r_enumforms
 }
 SPOOL_R_ENUMFORMS;
 
-typedef struct spool_printer_info_level_1
-{
-       uint32 flags;
-       uint32 description_ptr;
-       uint32 name_ptr;
-       uint32 comment_ptr;
-       UNISTR2 description;
-       UNISTR2 name;
-       UNISTR2 comment;        
-} SPOOL_PRINTER_INFO_LEVEL_1;
-
-typedef struct spool_printer_info_level_2
-{
-       uint32 servername_ptr;
-       uint32 printername_ptr;
-       uint32 sharename_ptr;
-       uint32 portname_ptr;
-       uint32 drivername_ptr;
-       uint32 comment_ptr;
-       uint32 location_ptr;
-       uint32 devmode_ptr;
-       uint32 sepfile_ptr;
-       uint32 printprocessor_ptr;
-       uint32 datatype_ptr;
-       uint32 parameters_ptr;
-       uint32 secdesc_ptr;
-       uint32 attributes;
-       uint32 priority;
-       uint32 default_priority;
-       uint32 starttime;
-       uint32 untiltime;
-       uint32 status;
-       uint32 cjobs;
-       uint32 averageppm;
-       UNISTR2 servername;
-       UNISTR2 printername;
-       UNISTR2 sharename;
-       UNISTR2 portname;
-       UNISTR2 drivername;
-       UNISTR2 comment;
-       UNISTR2 location;
-       UNISTR2 sepfile;
-       UNISTR2 printprocessor;
-       UNISTR2 datatype;
-       UNISTR2 parameters;
-}
-SPOOL_PRINTER_INFO_LEVEL_2;
-
-typedef struct spool_printer_info_level_3
-{
-       uint32 secdesc_ptr;
-}
-SPOOL_PRINTER_INFO_LEVEL_3;
-
-typedef struct spool_printer_info_level_7
-{
-       uint32 guid_ptr;
-       uint32 action;
-       UNISTR2 guid;
-}
-SPOOL_PRINTER_INFO_LEVEL_7;
-
-typedef struct spool_printer_info_level
-{
-       uint32 level;
-       uint32 info_ptr;
-       SPOOL_PRINTER_INFO_LEVEL_1 *info_1;
-       SPOOL_PRINTER_INFO_LEVEL_2 *info_2;
-       SPOOL_PRINTER_INFO_LEVEL_3 *info_3;
-       SPOOL_PRINTER_INFO_LEVEL_7 *info_7;
-}
-SPOOL_PRINTER_INFO_LEVEL;
-
-typedef struct spool_q_setprinter
-{
-       POLICY_HND handle;
-       uint32 level;
-       SPOOL_PRINTER_INFO_LEVEL info;
-       SEC_DESC_BUF *secdesc_ctr;
-       DEVMODE_CTR devmode_ctr;
-
-       uint32 command;
-
-}
-SPOOL_Q_SETPRINTER;
-
-typedef struct spool_r_setprinter
-{
-       WERROR status;
-}
-SPOOL_R_SETPRINTER;
-
 /********************************************/
 
 typedef struct spool_q_enumprintprocessors
index b063a33ca621a07640fc1f78dfe9d0847ce4b011..3986766e437a883993737c45e3ed7222323948d6 100644 (file)
@@ -866,32 +866,6 @@ WERROR rpccli_spoolss_getprinter(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ct
 /**********************************************************************
 **********************************************************************/
 
-WERROR rpccli_spoolss_setprinter(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
-                             POLICY_HND *pol, uint32 level, 
-                             PRINTER_INFO_CTR *ctr, uint32 command)
-{
-       prs_struct qbuf, rbuf;
-       SPOOL_Q_SETPRINTER in;
-       SPOOL_R_SETPRINTER out;
-
-       ZERO_STRUCT(in);
-       ZERO_STRUCT(out);
-
-       make_spoolss_q_setprinter( mem_ctx, &in, pol, level, ctr, command );
-
-       CLI_DO_RPC_WERR( cli, mem_ctx, &syntax_spoolss, SPOOLSS_SETPRINTER,
-                   in, out, 
-                   qbuf, rbuf,
-                   spoolss_io_q_setprinter,
-                   spoolss_io_r_setprinter, 
-                   WERR_GENERAL_FAILURE );
-
-       return out.status;
-}
-
-/**********************************************************************
-**********************************************************************/
-
 WERROR rpccli_spoolss_enumprinterdrivers (struct rpc_pipe_client *cli, 
                                       TALLOC_CTX *mem_ctx,
                                       uint32 level, const char *env,
index 4bf831c53d4a6f361e1a94125f1235a2913fa3c2..d749d2ef9b044e06d35932c4a2aabeea425b55b0 100644 (file)
@@ -258,154 +258,6 @@ bool spoolss_io_devmode(const char *desc, prs_struct *ps, int depth, DEVICEMODE
        return True;
 }
 
-/*******************************************************************
- Read or write a DEVICEMODE container
-********************************************************************/  
-
-static bool spoolss_io_devmode_cont(const char *desc, DEVMODE_CTR *dm_c, prs_struct *ps, int depth)
-{
-       if (dm_c==NULL)
-               return False;
-
-       prs_debug(ps, depth, desc, "spoolss_io_devmode_cont");
-       depth++;
-
-       if(!prs_align(ps))
-               return False;
-       
-       if (!prs_uint32("size", ps, depth, &dm_c->size))
-               return False;
-
-       if (!prs_uint32("devmode_ptr", ps, depth, &dm_c->devmode_ptr))
-               return False;
-
-       if (dm_c->size==0 || dm_c->devmode_ptr==0) {
-               if (UNMARSHALLING(ps))
-                       /* if while reading there is no DEVMODE ... */
-                       dm_c->devmode=NULL;
-               return True;
-       }
-       
-       /* so we have a DEVICEMODE to follow */         
-       if (UNMARSHALLING(ps)) {
-               DEBUG(9,("Allocating memory for spoolss_io_devmode\n"));
-               dm_c->devmode=PRS_ALLOC_MEM(ps,DEVICEMODE,1);
-               if(dm_c->devmode == NULL)
-                       return False;
-       }
-       
-       /* this is bad code, shouldn't be there */
-       if (!prs_uint32("size", ps, depth, &dm_c->size))
-               return False;
-               
-       if (!spoolss_io_devmode(desc, ps, depth, dm_c->devmode))
-               return False;
-
-       return True;
-}
-
-/*******************************************************************
-create a SPOOL_PRINTER_INFO_2 stuct from a PRINTER_INFO_2 struct
-*******************************************************************/
-
-bool make_spoolss_printer_info_2(TALLOC_CTX *ctx, SPOOL_PRINTER_INFO_LEVEL_2 **spool_info2, 
-                               PRINTER_INFO_2 *info)
-{
-
-       SPOOL_PRINTER_INFO_LEVEL_2 *inf;
-
-       /* allocate the necessary memory */
-       if (!(inf=TALLOC_P(ctx, SPOOL_PRINTER_INFO_LEVEL_2))) {
-               DEBUG(0,("make_spoolss_printer_info_2: Unable to allocate SPOOL_PRINTER_INFO_LEVEL_2 sruct!\n"));
-               return False;
-       }
-
-       inf->servername_ptr     = (info->servername.buffer!=NULL)?1:0;
-       inf->printername_ptr    = (info->printername.buffer!=NULL)?1:0;
-       inf->sharename_ptr      = (info->sharename.buffer!=NULL)?1:0;
-       inf->portname_ptr       = (info->portname.buffer!=NULL)?1:0;
-       inf->drivername_ptr     = (info->drivername.buffer!=NULL)?1:0;
-       inf->comment_ptr        = (info->comment.buffer!=NULL)?1:0;
-       inf->location_ptr       = (info->location.buffer!=NULL)?1:0;
-       inf->devmode_ptr        = (info->devmode!=NULL)?1:0;
-       inf->sepfile_ptr        = (info->sepfile.buffer!=NULL)?1:0;
-       inf->printprocessor_ptr = (info->printprocessor.buffer!=NULL)?1:0;
-       inf->datatype_ptr       = (info->datatype.buffer!=NULL)?1:0;
-       inf->parameters_ptr     = (info->parameters.buffer!=NULL)?1:0;
-       inf->secdesc_ptr        = (info->secdesc!=NULL)?1:0;
-       inf->attributes         = info->attributes;
-       inf->priority           = info->priority;
-       inf->default_priority   = info->defaultpriority;
-       inf->starttime          = info->starttime;
-       inf->untiltime          = info->untiltime;
-       inf->cjobs              = info->cjobs;
-       inf->averageppm = info->averageppm;
-       init_unistr2_from_unistr(inf, &inf->servername, &info->servername);
-       init_unistr2_from_unistr(inf, &inf->printername, &info->printername);
-       init_unistr2_from_unistr(inf, &inf->sharename, &info->sharename);
-       init_unistr2_from_unistr(inf, &inf->portname, &info->portname);
-       init_unistr2_from_unistr(inf, &inf->drivername, &info->drivername);
-       init_unistr2_from_unistr(inf, &inf->comment, &info->comment);
-       init_unistr2_from_unistr(inf, &inf->location, &info->location);
-       init_unistr2_from_unistr(inf, &inf->sepfile, &info->sepfile);
-       init_unistr2_from_unistr(inf, &inf->printprocessor, &info->printprocessor);
-       init_unistr2_from_unistr(inf, &inf->datatype, &info->datatype);
-       init_unistr2_from_unistr(inf, &inf->parameters, &info->parameters);
-       init_unistr2_from_unistr(inf, &inf->datatype, &info->datatype);
-
-       *spool_info2 = inf;
-
-       return True;
-}
-
-/*******************************************************************
-create a SPOOL_PRINTER_INFO_3 struct from a PRINTER_INFO_3 struct
-*******************************************************************/
-
-bool make_spoolss_printer_info_3(TALLOC_CTX *mem_ctx, SPOOL_PRINTER_INFO_LEVEL_3 **spool_info3, 
-                               PRINTER_INFO_3 *info)
-{
-
-       SPOOL_PRINTER_INFO_LEVEL_3 *inf;
-
-       /* allocate the necessary memory */
-       if (!(inf=TALLOC_P(mem_ctx, SPOOL_PRINTER_INFO_LEVEL_3))) {
-               DEBUG(0,("make_spoolss_printer_info_3: Unable to allocate SPOOL_PRINTER_INFO_LEVEL_3 sruct!\n"));
-               return False;
-       }
-       
-       inf->secdesc_ptr        = (info->secdesc!=NULL)?1:0;
-
-       *spool_info3 = inf;
-
-       return True;
-}
-
-/*******************************************************************
-create a SPOOL_PRINTER_INFO_7 struct from a PRINTER_INFO_7 struct
-*******************************************************************/
-
-bool make_spoolss_printer_info_7(TALLOC_CTX *mem_ctx, SPOOL_PRINTER_INFO_LEVEL_7 **spool_info7, 
-                               PRINTER_INFO_7 *info)
-{
-
-       SPOOL_PRINTER_INFO_LEVEL_7 *inf;
-
-       /* allocate the necessary memory */
-       if (!(inf=TALLOC_P(mem_ctx, SPOOL_PRINTER_INFO_LEVEL_7))) {
-               DEBUG(0,("make_spoolss_printer_info_7: Unable to allocate SPOOL_PRINTER_INFO_LEVEL_7 struct!\n"));
-               return False;
-       }
-
-       inf->guid_ptr = (info->guid.buffer!=NULL)?1:0;
-       inf->action = info->action;
-       init_unistr2_from_unistr(inf, &inf->guid, &info->guid);
-
-       *spool_info7 = inf;
-
-       return True;
-}
-
 /*******************************************************************
  * make a structure.
  ********************************************************************/
@@ -2178,185 +2030,6 @@ bool make_spoolss_q_getprinter(
        return True;
 }
 
-/*******************************************************************
- * init a structure.
- ********************************************************************/
-bool make_spoolss_q_setprinter(TALLOC_CTX *mem_ctx, SPOOL_Q_SETPRINTER *q_u, 
-                               const POLICY_HND *hnd, uint32 level, PRINTER_INFO_CTR *info, 
-                               uint32 command)
-{
-       SEC_DESC *secdesc;
-       DEVICEMODE *devmode;
-
-       if (!q_u || !info)
-               return False;
-       
-       memcpy(&q_u->handle, hnd, sizeof(q_u->handle));
-
-       q_u->level = level;
-       q_u->info.level = level;
-       q_u->info.info_ptr = 1; /* Info is != NULL, see above */
-       switch (level) {
-
-         /* There's no such thing as a setprinter level 1 */
-
-       case 2:
-               secdesc = info->printers_2->secdesc;
-               devmode = info->printers_2->devmode;
-               
-               make_spoolss_printer_info_2 (mem_ctx, &q_u->info.info_2, info->printers_2);
-#if 1  /* JERRY TEST */
-               q_u->secdesc_ctr = SMB_MALLOC_P(SEC_DESC_BUF);
-               if (!q_u->secdesc_ctr)
-                       return False;
-               q_u->secdesc_ctr->sd = secdesc;
-               q_u->secdesc_ctr->sd_size = (secdesc) ? sizeof(SEC_DESC) + (2*sizeof(uint32)) : 0;
-
-               q_u->devmode_ctr.devmode_ptr = (devmode != NULL) ? 1 : 0;
-               q_u->devmode_ctr.size = (devmode != NULL) ? sizeof(DEVICEMODE) + (3*sizeof(uint32)) : 0;
-               q_u->devmode_ctr.devmode = devmode;
-#else
-               q_u->secdesc_ctr = NULL;
-       
-               q_u->devmode_ctr.devmode_ptr = 0;
-               q_u->devmode_ctr.size = 0;
-               q_u->devmode_ctr.devmode = NULL;
-#endif
-               break;
-       case 3:
-               secdesc = info->printers_3->secdesc;
-               
-               make_spoolss_printer_info_3 (mem_ctx, &q_u->info.info_3, info->printers_3);
-               
-               q_u->secdesc_ctr = SMB_MALLOC_P(SEC_DESC_BUF);
-               if (!q_u->secdesc_ctr)
-                       return False;
-               q_u->secdesc_ctr->sd_size = (secdesc) ? sizeof(SEC_DESC) + (2*sizeof(uint32)) : 0;
-               q_u->secdesc_ctr->sd = secdesc;
-
-               break;
-       case 7:
-               make_spoolss_printer_info_7 (mem_ctx, &q_u->info.info_7, info->printers_7);
-               break;
-
-       default: 
-               DEBUG(0,("make_spoolss_q_setprinter: Unknown info level [%d]\n", level));
-                       break;
-       }
-
-       
-       q_u->command = command;
-
-       return True;
-}
-
-
-/*******************************************************************
-********************************************************************/  
-
-bool spoolss_io_r_setprinter(const char *desc, SPOOL_R_SETPRINTER *r_u, prs_struct *ps, int depth)
-{              
-       prs_debug(ps, depth, desc, "spoolss_io_r_setprinter");
-       depth++;
-
-       if(!prs_align(ps))
-               return False;
-       
-       if(!prs_werror("status", ps, depth, &r_u->status))
-               return False;
-
-       return True;
-}
-
-/*******************************************************************
- Marshall/unmarshall a SPOOL_Q_SETPRINTER struct.
-********************************************************************/  
-
-bool spoolss_io_q_setprinter(const char *desc, SPOOL_Q_SETPRINTER *q_u, prs_struct *ps, int depth)
-{
-       uint32 ptr_sec_desc = 0;
-
-       prs_debug(ps, depth, desc, "spoolss_io_q_setprinter");
-       depth++;
-
-       if(!prs_align(ps))
-               return False;
-
-       if(!smb_io_pol_hnd("printer handle", &q_u->handle ,ps, depth))
-               return False;
-       if(!prs_uint32("level", ps, depth, &q_u->level))
-               return False;
-       
-       /* check for supported levels and structures we know about */
-               
-       switch ( q_u->level ) {
-               case 0:
-               case 2:
-               case 3:
-               case 7:
-                       /* supported levels */
-                       break;
-               default:
-                       DEBUG(0,("spoolss_io_q_setprinter: unsupported printer info level [%d]\n", 
-                               q_u->level));
-                       return True;
-       }
-                       
-
-       if(!spool_io_printer_info_level("", &q_u->info, ps, depth))
-               return False;
-
-       if (!spoolss_io_devmode_cont(desc, &q_u->devmode_ctr, ps, depth))
-               return False;
-       
-       if(!prs_align(ps))
-               return False;
-
-       switch (q_u->level)
-       {
-               case 2:
-               {
-                       ptr_sec_desc = q_u->info.info_2->secdesc_ptr;
-                       break;
-               }
-               case 3:
-               {
-                       /* FIXME ! Our parsing here is wrong I think,
-                        * but for a level3 it makes no sense for
-                        * ptr_sec_desc to be NULL. JRA. Based on
-                        * a Vista sniff from Martin Zielinski <mz@seh.de>.
-                        */
-                       if (UNMARSHALLING(ps)) {
-                               ptr_sec_desc = 1;
-                       } else {
-                               ptr_sec_desc = q_u->info.info_3->secdesc_ptr;
-                       }
-                       break;
-               }
-       }
-       if (ptr_sec_desc)
-       {
-               if (!sec_io_desc_buf(desc, &q_u->secdesc_ctr, ps, depth))
-                       return False;
-       } else {
-               uint32 dummy = 0;
-
-               /* Parse a NULL security descriptor.  This should really
-                  happen inside the sec_io_desc_buf() function. */
-
-               prs_debug(ps, depth, "", "sec_io_desc_buf");
-               if (!prs_uint32("size", ps, depth + 1, &dummy))
-                       return False;
-               if (!prs_uint32("ptr", ps, depth + 1, &dummy))
-                       return False;
-       }
-       
-       if(!prs_uint32("command", ps, depth, &q_u->command))
-               return False;
-
-       return True;
-}
-
 /*******************************************************************
 ********************************************************************/  
 
@@ -2652,233 +2325,6 @@ bool spoolss_io_q_enumports(const char *desc, SPOOL_Q_ENUMPORTS *q_u, prs_struct
        return True;
 }
 
-/*******************************************************************
- Parse a SPOOL_PRINTER_INFO_LEVEL_1 structure.
-********************************************************************/  
-
-bool spool_io_printer_info_level_1(const char *desc, SPOOL_PRINTER_INFO_LEVEL_1 *il, prs_struct *ps, int depth)
-{      
-       prs_debug(ps, depth, desc, "spool_io_printer_info_level_1");
-       depth++;
-               
-       if(!prs_align(ps))
-               return False;
-
-       if(!prs_uint32("flags", ps, depth, &il->flags))
-               return False;
-       if(!prs_uint32("description_ptr", ps, depth, &il->description_ptr))
-               return False;
-       if(!prs_uint32("name_ptr", ps, depth, &il->name_ptr))
-               return False;
-       if(!prs_uint32("comment_ptr", ps, depth, &il->comment_ptr))
-               return False;
-               
-       if(!smb_io_unistr2("description", &il->description, il->description_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("name", &il->name, il->name_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("comment", &il->comment, il->comment_ptr, ps, depth))
-               return False;
-
-       return True;
-}
-
-/*******************************************************************
- Parse a SPOOL_PRINTER_INFO_LEVEL_3 structure.
-********************************************************************/  
-
-bool spool_io_printer_info_level_3(const char *desc, SPOOL_PRINTER_INFO_LEVEL_3 *il, prs_struct *ps, int depth)
-{      
-       prs_debug(ps, depth, desc, "spool_io_printer_info_level_3");
-       depth++;
-               
-       if(!prs_align(ps))
-               return False;
-
-       if(!prs_uint32("secdesc_ptr", ps, depth, &il->secdesc_ptr))
-               return False;
-
-       return True;
-}
-
-/*******************************************************************
- Parse a SPOOL_PRINTER_INFO_LEVEL_2 structure.
-********************************************************************/  
-
-bool spool_io_printer_info_level_2(const char *desc, SPOOL_PRINTER_INFO_LEVEL_2 *il, prs_struct *ps, int depth)
-{      
-       prs_debug(ps, depth, desc, "spool_io_printer_info_level_2");
-       depth++;
-               
-       if(!prs_align(ps))
-               return False;
-
-       if(!prs_uint32("servername_ptr", ps, depth, &il->servername_ptr))
-               return False;
-       if(!prs_uint32("printername_ptr", ps, depth, &il->printername_ptr))
-               return False;
-       if(!prs_uint32("sharename_ptr", ps, depth, &il->sharename_ptr))
-               return False;
-       if(!prs_uint32("portname_ptr", ps, depth, &il->portname_ptr))
-               return False;
-
-       if(!prs_uint32("drivername_ptr", ps, depth, &il->drivername_ptr))
-               return False;
-       if(!prs_uint32("comment_ptr", ps, depth, &il->comment_ptr))
-               return False;
-       if(!prs_uint32("location_ptr", ps, depth, &il->location_ptr))
-               return False;
-       if(!prs_uint32("devmode_ptr", ps, depth, &il->devmode_ptr))
-               return False;
-       if(!prs_uint32("sepfile_ptr", ps, depth, &il->sepfile_ptr))
-               return False;
-       if(!prs_uint32("printprocessor_ptr", ps, depth, &il->printprocessor_ptr))
-               return False;
-       if(!prs_uint32("datatype_ptr", ps, depth, &il->datatype_ptr))
-               return False;
-       if(!prs_uint32("parameters_ptr", ps, depth, &il->parameters_ptr))
-               return False;
-       if(!prs_uint32("secdesc_ptr", ps, depth, &il->secdesc_ptr))
-               return False;
-
-       if(!prs_uint32("attributes", ps, depth, &il->attributes))
-               return False;
-       if(!prs_uint32("priority", ps, depth, &il->priority))
-               return False;
-       if(!prs_uint32("default_priority", ps, depth, &il->default_priority))
-               return False;
-       if(!prs_uint32("starttime", ps, depth, &il->starttime))
-               return False;
-       if(!prs_uint32("untiltime", ps, depth, &il->untiltime))
-               return False;
-       if(!prs_uint32("status", ps, depth, &il->status))
-               return False;
-       if(!prs_uint32("cjobs", ps, depth, &il->cjobs))
-               return False;
-       if(!prs_uint32("averageppm", ps, depth, &il->averageppm))
-               return False;
-
-       if(!smb_io_unistr2("servername", &il->servername, il->servername_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("printername", &il->printername, il->printername_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("sharename", &il->sharename, il->sharename_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("portname", &il->portname, il->portname_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("drivername", &il->drivername, il->drivername_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("comment", &il->comment, il->comment_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("location", &il->location, il->location_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("sepfile", &il->sepfile, il->sepfile_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("printprocessor", &il->printprocessor, il->printprocessor_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("datatype", &il->datatype, il->datatype_ptr, ps, depth))
-               return False;
-       if(!smb_io_unistr2("parameters", &il->parameters, il->parameters_ptr, ps, depth))
-               return False;
-
-       return True;
-}
-
-bool spool_io_printer_info_level_7(const char *desc, SPOOL_PRINTER_INFO_LEVEL_7 *il, prs_struct *ps, int depth)
-{      
-       prs_debug(ps, depth, desc, "spool_io_printer_info_level_7");
-       depth++;
-               
-       if(!prs_align(ps))
-               return False;
-
-       if(!prs_uint32("guid_ptr", ps, depth, &il->guid_ptr))
-               return False;
-       if(!prs_uint32("action", ps, depth, &il->action))
-               return False;
-
-       if(!smb_io_unistr2("servername", &il->guid, il->guid_ptr, ps, depth))
-               return False;
-       return True;
-}
-
-/*******************************************************************
-********************************************************************/  
-
-bool spool_io_printer_info_level(const char *desc, SPOOL_PRINTER_INFO_LEVEL *il, prs_struct *ps, int depth)
-{
-       prs_debug(ps, depth, desc, "spool_io_printer_info_level");
-       depth++;
-
-       if(!prs_align(ps))
-               return False;
-       if(!prs_uint32("level", ps, depth, &il->level))
-               return False;
-       if(!prs_uint32("info_ptr", ps, depth, &il->info_ptr))
-               return False;
-       
-       /* if no struct inside just return */
-       if (il->info_ptr==0) {
-               if (UNMARSHALLING(ps)) {
-                       il->info_1=NULL;
-                       il->info_2=NULL;
-               }
-               return True;
-       }
-                       
-       switch (il->level) {
-               /*
-                * level 0 is used by setprinter when managing the queue
-                * (hold, stop, start a queue)
-                */
-               case 0:
-                       break;
-               /* DOCUMENT ME!!! What is level 1 used for? */
-               case 1:
-               {
-                       if (UNMARSHALLING(ps)) {
-                               if ((il->info_1=PRS_ALLOC_MEM(ps,SPOOL_PRINTER_INFO_LEVEL_1,1)) == NULL)
-                                       return False;
-                       }
-                       if (!spool_io_printer_info_level_1("", il->info_1, ps, depth))
-                               return False;
-                       break;          
-               }
-               /* 
-                * level 2 is used by addprinter
-                * and by setprinter when updating printer's info
-                */     
-               case 2:
-                       if (UNMARSHALLING(ps)) {
-                               if ((il->info_2=PRS_ALLOC_MEM(ps,SPOOL_PRINTER_INFO_LEVEL_2,1)) == NULL)
-                                       return False;
-                       }
-                       if (!spool_io_printer_info_level_2("", il->info_2, ps, depth))
-                               return False;
-                       break;          
-               /* DOCUMENT ME!!! What is level 3 used for? */
-               case 3:
-               {
-                       if (UNMARSHALLING(ps)) {
-                               if ((il->info_3=PRS_ALLOC_MEM(ps,SPOOL_PRINTER_INFO_LEVEL_3,1)) == NULL)
-                                       return False;
-                       }
-                       if (!spool_io_printer_info_level_3("", il->info_3, ps, depth))
-                               return False;
-                       break;          
-               }
-               case 7:
-                       if (UNMARSHALLING(ps))
-                               if ((il->info_7=PRS_ALLOC_MEM(ps,SPOOL_PRINTER_INFO_LEVEL_7,1)) == NULL)
-                                       return False;
-                       if (!spool_io_printer_info_level_7("", il->info_7, ps, depth))
-                               return False;
-                       break;
-       }
-
-       return True;
-}
-
 /*******************************************************************
  make a BUFFER5 struct from a uint16*
  ******************************************************************/
@@ -2903,37 +2349,6 @@ bool make_spoolss_buffer5(TALLOC_CTX *mem_ctx, BUFFER5 *buf5, uint32 len, uint16
        return True;
 }
 
-/*******************************************************************
- ********************************************************************/  
-
-bool uni_2_asc_printer_info_2(const SPOOL_PRINTER_INFO_LEVEL_2 *uni,
-                              NT_PRINTER_INFO_LEVEL_2  *d)
-{
-       DEBUG(7,("Converting from UNICODE to ASCII\n"));
-       
-       d->attributes=uni->attributes;
-       d->priority=uni->priority;
-       d->default_priority=uni->default_priority;
-       d->starttime=uni->starttime;
-       d->untiltime=uni->untiltime;
-       d->status=uni->status;
-       d->cjobs=uni->cjobs;
-       
-       unistr2_to_ascii(d->servername, &uni->servername, sizeof(d->servername));
-       unistr2_to_ascii(d->printername, &uni->printername, sizeof(d->printername));
-       unistr2_to_ascii(d->sharename, &uni->sharename, sizeof(d->sharename));
-       unistr2_to_ascii(d->portname, &uni->portname, sizeof(d->portname));
-       unistr2_to_ascii(d->drivername, &uni->drivername, sizeof(d->drivername));
-       unistr2_to_ascii(d->comment, &uni->comment, sizeof(d->comment));
-       unistr2_to_ascii(d->location, &uni->location, sizeof(d->location));
-       unistr2_to_ascii(d->sepfile, &uni->sepfile, sizeof(d->sepfile));
-       unistr2_to_ascii(d->printprocessor, &uni->printprocessor, sizeof(d->printprocessor));
-       unistr2_to_ascii(d->datatype, &uni->datatype, sizeof(d->datatype));
-       unistr2_to_ascii(d->parameters, &uni->parameters, sizeof(d->parameters));
-
-       return True;
-}
-
 /*******************************************************************
 ********************************************************************/