From 74a9323bad6deb44ad634b6e0c563d9daa0f1c76 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Fri, 21 Jul 2000 20:03:18 +0000 Subject: * Added EnumPorts() * Fixed an off-by-one bug noticed by JF in GetPrinterDriverDirectory() jerry (This used to be commit a9522f560da64045d928dabedeacdef0a6c3db51) --- source3/rpc_client/msrpc_spoolss.c | 70 +++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) (limited to 'source3/rpc_client/msrpc_spoolss.c') diff --git a/source3/rpc_client/msrpc_spoolss.c b/source3/rpc_client/msrpc_spoolss.c index 10582c01be..34e6d4404c 100644 --- a/source3/rpc_client/msrpc_spoolss.c +++ b/source3/rpc_client/msrpc_spoolss.c @@ -182,6 +182,22 @@ static void decode_printerdriverdir_info_1(NEW_BUFFER *buffer, DRIVER_DIRECTORY_ } +static void decode_port_info_2(NEW_BUFFER *buffer, uint32 returned, + PORT_INFO_2 **info) +{ + uint32 i; + PORT_INFO_2 *inf; + + inf=(PORT_INFO_2*)malloc(returned*sizeof(PORT_INFO_2)); + + prs_set_offset(&buffer->prs, 0); + + for (i=0; iport.info_2); + break; + default: + DEBUG(0,("Unable to decode unknown PORT_INFO_%d\n", level)); + break; + } + + display_port_info_ctr(out_hnd, ACTION_HEADER , level, returned, ctr); + display_port_info_ctr(out_hnd, ACTION_ENUMERATE, level, returned, ctr); + display_port_info_ctr(out_hnd, ACTION_FOOTER , level, returned, ctr); + } + + return True; +} + /**************************************************************************** nt spoolss query ****************************************************************************/ @@ -585,17 +649,21 @@ BOOL msrpc_spoolss_getprinterdriverdir(char* srv_name, char* env_name, uint32 le { uint32 status; NEW_BUFFER buffer; - uint32 needed; + uint32 needed = 502; init_buffer(&buffer, 0); +#if 0 /* JERRY */ /* send a NULL buffer first */ status=spoolss_getprinterdriverdir(srv_name, env_name, level, &buffer, 0, &needed); if (status==ERROR_INSUFFICIENT_BUFFER) { +#endif init_buffer(&buffer, needed); status=spoolss_getprinterdriverdir(srv_name, env_name, level, &buffer, needed, &needed); +#if 0 } +#endif report(out_hnd, "\tstatus:[%d (%x)]\n", status, status); -- cgit