The branch, master has been updated
       via  46200a7cd4c1e6919e5ab99f1080dff013ed8867 (commit)
      from  ee469585eb11e9964d0f490fde94ee00e55879fa (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 46200a7cd4c1e6919e5ab99f1080dff013ed8867
Author: Günther Deschner <[email protected]>
Date:   Tue Feb 10 01:46:32 2009 +0100

    s3-spoolss: add temporary convert_devicemode_new function.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/rpc_server/srv_spoolss_nt.c |   75 +++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/rpc_server/srv_spoolss_nt.c 
b/source3/rpc_server/srv_spoolss_nt.c
index a39770a..1312b2e 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -1549,6 +1549,81 @@ WERROR _spoolss_open_printer(pipes_struct *p, 
SPOOL_Q_OPEN_PRINTER *q_u, SPOOL_R
 }
 
 /********************************************************************
+ FIXME: temporary convert_devicemode_new function
+ ********************************************************************/
+
+static bool convert_devicemode_new(const char *printername,
+                                  struct spoolss_DeviceMode *devmode,
+                                  NT_DEVICEMODE **pp_nt_devmode)
+{
+       NT_DEVICEMODE *nt_devmode = *pp_nt_devmode;
+
+       /*
+        * Ensure nt_devmode is a valid pointer
+        * as we will be overwriting it.
+        */
+
+       if (nt_devmode == NULL) {
+               DEBUG(5, ("convert_devicemode_new: allocating a generic 
devmode\n"));
+               if ((nt_devmode = construct_nt_devicemode(printername)) == NULL)
+                       return false;
+       }
+
+       rpcstr_push(nt_devmode->devicename, devmode->devicename, 31, 0);
+       rpcstr_push(nt_devmode->formname, devmode->formname, 31, 0);
+
+       nt_devmode->specversion         = devmode->specversion;
+       nt_devmode->driverversion       = devmode->driverversion;
+       nt_devmode->size                = devmode->size;
+       nt_devmode->fields              = devmode->fields;
+       nt_devmode->orientation         = devmode->orientation;
+       nt_devmode->papersize           = devmode->papersize;
+       nt_devmode->paperlength         = devmode->paperlength;
+       nt_devmode->paperwidth          = devmode->paperwidth;
+       nt_devmode->scale               = devmode->scale;
+       nt_devmode->copies              = devmode->copies;
+       nt_devmode->defaultsource       = devmode->defaultsource;
+       nt_devmode->printquality        = devmode->printquality;
+       nt_devmode->color               = devmode->color;
+       nt_devmode->duplex              = devmode->duplex;
+       nt_devmode->yresolution         = devmode->yresolution;
+       nt_devmode->ttoption            = devmode->ttoption;
+       nt_devmode->collate             = devmode->collate;
+
+       nt_devmode->logpixels           = devmode->logpixels;
+       nt_devmode->bitsperpel          = devmode->bitsperpel;
+       nt_devmode->pelswidth           = devmode->pelswidth;
+       nt_devmode->pelsheight          = devmode->pelsheight;
+       nt_devmode->displayflags        = devmode->displayflags;
+       nt_devmode->displayfrequency    = devmode->displayfrequency;
+       nt_devmode->icmmethod           = devmode->icmmethod;
+       nt_devmode->icmintent           = devmode->icmintent;
+       nt_devmode->mediatype           = devmode->mediatype;
+       nt_devmode->dithertype          = devmode->dithertype;
+       nt_devmode->reserved1           = devmode->reserved1;
+       nt_devmode->reserved2           = devmode->reserved2;
+       nt_devmode->panningwidth        = devmode->panningwidth;
+       nt_devmode->panningheight       = devmode->panningheight;
+
+       /*
+        * Only change private and driverextra if the incoming devmode
+        * has a new one. JRA.
+        */
+
+       if ((devmode->__driverextra_length != 0) && 
(devmode->driverextra_data.data != NULL)) {
+               SAFE_FREE(nt_devmode->nt_dev_private);
+               nt_devmode->driverextra = devmode->__driverextra_length;
+               if((nt_devmode->nt_dev_private=SMB_MALLOC_ARRAY(uint8, 
nt_devmode->driverextra)) == NULL)
+                       return false;
+               memcpy(nt_devmode->nt_dev_private, 
devmode->driverextra_data.data, nt_devmode->driverextra);
+       }
+
+       *pp_nt_devmode = nt_devmode;
+
+       return true;
+}
+
+/********************************************************************
  ********************************************************************/
 
 WERROR _spoolss_open_printer_ex( pipes_struct *p, SPOOL_Q_OPEN_PRINTER_EX 
*q_u, SPOOL_R_OPEN_PRINTER_EX *r_u)


-- 
Samba Shared Repository

Reply via email to