diff options
Diffstat (limited to 'source3/rpc_server')
-rwxr-xr-x | source3/rpc_server/srv_spoolss.c | 5 | ||||
-rw-r--r-- | source3/rpc_server/srv_spoolss_nt.c | 11 |
2 files changed, 11 insertions, 5 deletions
diff --git a/source3/rpc_server/srv_spoolss.c b/source3/rpc_server/srv_spoolss.c index 8b431551b5..5a1592e4fb 100755 --- a/source3/rpc_server/srv_spoolss.c +++ b/source3/rpc_server/srv_spoolss.c @@ -591,10 +591,11 @@ static BOOL api_spoolss_addjob(pipes_struct *p) return False; } - /* that's only an [in] buffer ! */ + /* that's an [in out] buffer (despite appearences to the contrary) */ + new_spoolss_move_buffer(q_u.buffer, &r_u.buffer); r_u.status = _spoolss_addjob(&q_u.handle, q_u.level, - q_u.buffer, q_u.offered); + r_u.buffer, q_u.offered, &r_u.needed); if(!spoolss_io_r_addjob("",&r_u,rdata,0)) { DEBUG(0,("spoolss_io_r_addjob: unable to marshall SPOOL_R_ADDJOB.\n")); diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index 36a8a1697c..b118b7c933 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -3342,9 +3342,14 @@ uint32 _spoolss_fcpn(POLICY_HND *handle) /**************************************************************************** ****************************************************************************/ uint32 _spoolss_addjob(POLICY_HND *handle, uint32 level, - NEW_BUFFER *buffer, uint32 offered) -{ - return NT_STATUS_NO_PROBLEMO; + NEW_BUFFER *buffer, uint32 offered, + uint32 *needed) +{ + *needed = 0; + return ERROR_INVALID_PARAMETER; /* this is what a NT server + returns for AddJob. AddJob + must fail on non-local + printers */ } /**************************************************************************** |