Author: gd Date: 2005-03-23 18:23:55 +0000 (Wed, 23 Mar 2005) New Revision: 5997
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5997 Log: Get rid of unnecessary memdup`ed NT_PRINTER_INFO_LEVEL_2. Guenther Modified: trunk/source/printing/nt_printing.c Changeset: Modified: trunk/source/printing/nt_printing.c =================================================================== --- trunk/source/printing/nt_printing.c 2005-03-23 17:03:48 UTC (rev 5996) +++ trunk/source/printing/nt_printing.c 2005-03-23 18:23:55 UTC (rev 5997) @@ -2601,28 +2601,24 @@ char adevice[MAXDEVICENAME]; WERROR err; - NT_PRINTER_INFO_LEVEL_2 *info = NULL; + err = printerdb_get_printer(info_ptr, sharename); - ZERO_STRUCT(info); - - err = printerdb_get_printer(&info, sharename); - if (!W_ERROR_IS_OK(err)) return get_a_printer_2_default(info_ptr, servername, sharename); /* Samba has to have shared raw drivers. */ - info->attributes |= PRINTER_ATTRIBUTE_SAMBA; - info->attributes &= ~PRINTER_ATTRIBUTE_NOT_SAMBA; + (*info_ptr)->attributes |= PRINTER_ATTRIBUTE_SAMBA; + (*info_ptr)->attributes &= ~PRINTER_ATTRIBUTE_NOT_SAMBA; /* Restore the stripped strings. */ - slprintf(info->servername, sizeof(info->servername)-1, "\\\\%s", servername); + slprintf((*info_ptr)->servername, sizeof((*info_ptr)->servername)-1, "\\\\%s", servername); if ( lp_force_printername(snum) ) slprintf(printername, sizeof(printername)-1, "\\\\%s\\%s", servername, sharename ); else - slprintf(printername, sizeof(printername)-1, "\\\\%s\\%s", servername, info->printername); + slprintf(printername, sizeof(printername)-1, "\\\\%s\\%s", servername, (*info_ptr)->printername); - fstrcpy(info->printername, printername); + fstrcpy((*info_ptr)->printername, printername); /* * Some client drivers freak out if there is a NULL devmode @@ -2632,32 +2628,30 @@ * See comments in get_a_printer_2_default() */ - if (lp_default_devmode(snum) && !info->devmode) { + if (lp_default_devmode(snum) && !(*info_ptr)->devmode) { DEBUG(8,("get_a_printer_2: Constructing a default device mode for [%s]\n", printername)); - info->devmode = construct_nt_devicemode(printername); + (*info_ptr)->devmode = construct_nt_devicemode(printername); } - slprintf( adevice, sizeof(adevice), "%s", info->printername ); - if (info->devmode) { - fstrcpy(info->devmode->devicename, adevice); + slprintf( adevice, sizeof(adevice), "%s", (*info_ptr)->printername ); + if ((*info_ptr)->devmode) { + fstrcpy((*info_ptr)->devmode->devicename, adevice); } /* This will get the current RPC talloc context, but we should be passing this as a parameter... fixme... JRA ! */ - nt_printing_getsec(get_talloc_ctx(), sharename, &info->secdesc_buf); + nt_printing_getsec(get_talloc_ctx(), sharename, &(*info_ptr)->secdesc_buf); /* Fix for OS/2 drivers. */ if (get_remote_arch() == RA_OS2) - map_to_os2_driver(info->drivername); + map_to_os2_driver((*info_ptr)->drivername); DEBUG(9,("Unpacked printer [%s] name [%s] running driver [%s]\n", - sharename, info->printername, info->drivername)); + sharename, (*info_ptr)->printername, (*info_ptr)->drivername)); - *info_ptr = memdup(info, sizeof(*info)); - return WERR_OK; }