diff options
Diffstat (limited to 'source3/rpc_server')
-rwxr-xr-x | source3/rpc_server/srv_spoolss.c | 9 | ||||
-rw-r--r-- | source3/rpc_server/srv_spoolss_nt.c | 17 |
2 files changed, 17 insertions, 9 deletions
diff --git a/source3/rpc_server/srv_spoolss.c b/source3/rpc_server/srv_spoolss.c index 91107e9dbe..4bd70ca755 100755 --- a/source3/rpc_server/srv_spoolss.c +++ b/source3/rpc_server/srv_spoolss.c @@ -6,6 +6,7 @@ * Copyright (C) Andrew Tridgell 1992-2000, * Copyright (C) Luke Kenneth Casson Leighton 1996-2000, * Copyright (C) Jean François Micouleau 1998-2000. + * Copyright (C) Jeremy Allison 2001. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -313,6 +314,7 @@ static BOOL api_spoolss_enumprinters(pipes_struct *p) * called from the spoolss dispatcher * ********************************************************************/ + static BOOL api_spoolss_getprinter(pipes_struct *p) { SPOOL_Q_GETPRINTER q_u; @@ -328,12 +330,7 @@ static BOOL api_spoolss_getprinter(pipes_struct *p) return False; } - /* that's an [in out] buffer */ - new_spoolss_move_buffer(q_u.buffer, &r_u.buffer); - - r_u.status = _spoolss_getprinter(&q_u.handle, q_u.level, - r_u.buffer, q_u.offered, - &r_u.needed); + r_u.status = _spoolss_getprinter(p, &q_u, &r_u); if(!spoolss_io_r_getprinter("",&r_u,rdata,0)) { DEBUG(0,("spoolss_io_r_getprinter: unable to marshall SPOOL_R_GETPRINTER.\n")); diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index 4170700705..0e09bff289 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -6,6 +6,7 @@ * Copyright (C) Andrew Tridgell 1992-2000, * Copyright (C) Luke Kenneth Casson Leighton 1996-2000, * Copyright (C) Jean François Micouleau 1998-2000. + * Copyright (C) Jeremy Allison 2001. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -3233,11 +3234,21 @@ static uint32 getprinter_level_3(int snum, NEW_BUFFER *buffer, uint32 offered, u /**************************************************************************** ****************************************************************************/ -uint32 _spoolss_getprinter(POLICY_HND *handle, uint32 level, - NEW_BUFFER *buffer, uint32 offered, uint32 *needed) + +uint32 _spoolss_getprinter(pipes_struct *p, SPOOL_Q_GETPRINTER *q_u, SPOOL_R_GETPRINTER *r_u) { + POLICY_HND *handle = &q_u->handle; + uint32 level = q_u->level; + NEW_BUFFER *buffer = NULL; + uint32 offered = q_u->offered; + uint32 *needed = &r_u->needed; + int snum; - + + /* that's an [in out] buffer */ + new_spoolss_move_buffer(q_u->buffer, &r_u->buffer); + buffer = r_u->buffer; + *needed=0; if (!get_printer_snum(handle, &snum)) |