summaryrefslogtreecommitdiff
path: root/source3/rpc_parse
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpc_parse')
-rw-r--r--source3/rpc_parse/parse_spoolss.c189
1 files changed, 0 insertions, 189 deletions
diff --git a/source3/rpc_parse/parse_spoolss.c b/source3/rpc_parse/parse_spoolss.c
index c082af6f09..ea093376e5 100644
--- a/source3/rpc_parse/parse_spoolss.c
+++ b/source3/rpc_parse/parse_spoolss.c
@@ -26,195 +26,6 @@
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_RPC_PARSE
-
-/*******************************************************************
- * read or write a DEVICEMODE struct.
- * on reading allocate memory for the private member
- ********************************************************************/
-
-#define DM_NUM_OPTIONAL_FIELDS 8
-
-bool spoolss_io_devmode(const char *desc, prs_struct *ps, int depth, DEVICEMODE *devmode)
-{
- int available_space; /* size of the device mode left to parse */
- /* only important on unmarshalling */
- int i = 0;
- uint16 *unistr_buffer;
- int j;
-
- struct optional_fields {
- fstring name;
- uint32* field;
- } opt_fields[DM_NUM_OPTIONAL_FIELDS] = {
- { "icmmethod", NULL },
- { "icmintent", NULL },
- { "mediatype", NULL },
- { "dithertype", NULL },
- { "reserved1", NULL },
- { "reserved2", NULL },
- { "panningwidth", NULL },
- { "panningheight", NULL }
- };
-
- /* assign at run time to keep non-gcc compilers happy */
-
- opt_fields[0].field = &devmode->icmmethod;
- opt_fields[1].field = &devmode->icmintent;
- opt_fields[2].field = &devmode->mediatype;
- opt_fields[3].field = &devmode->dithertype;
- opt_fields[4].field = &devmode->reserved1;
- opt_fields[5].field = &devmode->reserved2;
- opt_fields[6].field = &devmode->panningwidth;
- opt_fields[7].field = &devmode->panningheight;
-
-
- prs_debug(ps, depth, desc, "spoolss_io_devmode");
- depth++;
-
- if (UNMARSHALLING(ps)) {
- devmode->devicename.buffer = PRS_ALLOC_MEM(ps, uint16, MAXDEVICENAME);
- if (devmode->devicename.buffer == NULL)
- return False;
- unistr_buffer = devmode->devicename.buffer;
- }
- else {
- /* devicename is a static sized string but the buffer we set is not */
- unistr_buffer = PRS_ALLOC_MEM(ps, uint16, MAXDEVICENAME);
- memset( unistr_buffer, 0x0, MAXDEVICENAME );
- for ( j=0; devmode->devicename.buffer[j]; j++ )
- unistr_buffer[j] = devmode->devicename.buffer[j];
- }
-
- if (!prs_uint16uni(True,"devicename", ps, depth, unistr_buffer, MAXDEVICENAME))
- return False;
-
- if (!prs_uint16("specversion", ps, depth, &devmode->specversion))
- return False;
-
- if (!prs_uint16("driverversion", ps, depth, &devmode->driverversion))
- return False;
- if (!prs_uint16("size", ps, depth, &devmode->size))
- return False;
- if (!prs_uint16("driverextra", ps, depth, &devmode->driverextra))
- return False;
- if (!prs_uint32("fields", ps, depth, &devmode->fields))
- return False;
- if (!prs_uint16("orientation", ps, depth, &devmode->orientation))
- return False;
- if (!prs_uint16("papersize", ps, depth, &devmode->papersize))
- return False;
- if (!prs_uint16("paperlength", ps, depth, &devmode->paperlength))
- return False;
- if (!prs_uint16("paperwidth", ps, depth, &devmode->paperwidth))
- return False;
- if (!prs_uint16("scale", ps, depth, &devmode->scale))
- return False;
- if (!prs_uint16("copies", ps, depth, &devmode->copies))
- return False;
- if (!prs_uint16("defaultsource", ps, depth, &devmode->defaultsource))
- return False;
- if (!prs_uint16("printquality", ps, depth, &devmode->printquality))
- return False;
- if (!prs_uint16("color", ps, depth, &devmode->color))
- return False;
- if (!prs_uint16("duplex", ps, depth, &devmode->duplex))
- return False;
- if (!prs_uint16("yresolution", ps, depth, &devmode->yresolution))
- return False;
- if (!prs_uint16("ttoption", ps, depth, &devmode->ttoption))
- return False;
- if (!prs_uint16("collate", ps, depth, &devmode->collate))
- return False;
-
- if (UNMARSHALLING(ps)) {
- devmode->formname.buffer = PRS_ALLOC_MEM(ps, uint16, MAXDEVICENAME);
- if (devmode->formname.buffer == NULL)
- return False;
- unistr_buffer = devmode->formname.buffer;
- }
- else {
- /* devicename is a static sized string but the buffer we set is not */
- unistr_buffer = PRS_ALLOC_MEM(ps, uint16, MAXDEVICENAME);
- memset( unistr_buffer, 0x0, MAXDEVICENAME );
- for ( j=0; devmode->formname.buffer[j]; j++ )
- unistr_buffer[j] = devmode->formname.buffer[j];
- }
-
- if (!prs_uint16uni(True, "formname", ps, depth, unistr_buffer, MAXDEVICENAME))
- return False;
- if (!prs_uint16("logpixels", ps, depth, &devmode->logpixels))
- return False;
- if (!prs_uint32("bitsperpel", ps, depth, &devmode->bitsperpel))
- return False;
- if (!prs_uint32("pelswidth", ps, depth, &devmode->pelswidth))
- return False;
- if (!prs_uint32("pelsheight", ps, depth, &devmode->pelsheight))
- return False;
- if (!prs_uint32("displayflags", ps, depth, &devmode->displayflags))
- return False;
- if (!prs_uint32("displayfrequency", ps, depth, &devmode->displayfrequency))
- return False;
- /*
- * every device mode I've ever seen on the wire at least has up
- * to the displayfrequency field. --jerry (05-09-2002)
- */
-
- /* add uint32's + uint16's + two UNICODE strings */
-
- available_space = devmode->size - (sizeof(uint32)*6 + sizeof(uint16)*18 + sizeof(uint16)*64);
-
- /* Sanity check - we only have uint32's left tp parse */
-
- if ( available_space && ((available_space % sizeof(uint32)) != 0) ) {
- DEBUG(0,("spoolss_io_devmode: available_space [%d] no in multiple of 4 bytes (size = %d)!\n",
- available_space, devmode->size));
- DEBUG(0,("spoolss_io_devmode: please report to samba-technical@samba.org!\n"));
- return False;
- }
-
- /*
- * Conditional parsing. Assume that the DeviceMode has been
- * zero'd by the caller.
- */
-
- while ((available_space > 0) && (i < DM_NUM_OPTIONAL_FIELDS))
- {
- DEBUG(11, ("spoolss_io_devmode: [%d] bytes left to parse in devmode\n", available_space));
- if (!prs_uint32(opt_fields[i].name, ps, depth, opt_fields[i].field))
- return False;
- available_space -= sizeof(uint32);
- i++;
- }
-
- /* Sanity Check - we should no available space at this point unless
- MS changes the device mode structure */
-
- if (available_space) {
- DEBUG(0,("spoolss_io_devmode: I've parsed all I know and there is still stuff left|\n"));
- DEBUG(0,("spoolss_io_devmode: available_space = [%d], devmode_size = [%d]!\n",
- available_space, devmode->size));
- DEBUG(0,("spoolss_io_devmode: please report to samba-technical@samba.org!\n"));
- return False;
- }
-
-
- if (devmode->driverextra!=0) {
- if (UNMARSHALLING(ps)) {
- devmode->dev_private=PRS_ALLOC_MEM(ps, uint8, devmode->driverextra);
- if(devmode->dev_private == NULL)
- return False;
- DEBUG(7,("spoolss_io_devmode: allocated memory [%d] for dev_private\n",devmode->driverextra));
- }
-
- DEBUG(7,("spoolss_io_devmode: parsing [%d] bytes of dev_private\n",devmode->driverextra));
- if (!prs_uint8s(False, "dev_private", ps, depth,
- devmode->dev_private, devmode->driverextra))
- return False;
- }
-
- return True;
-}
-
/*******************************************************************
* return the length of a uint32 (obvious, but the code is clean)
********************************************************************/