diff options
author | Günther Deschner <gd@samba.org> | 2009-02-12 00:40:37 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-02-23 16:17:35 +0100 |
commit | 9af13015b256e5b0eec74e1c788c13e246cde850 (patch) | |
tree | 559f35fee7aafdd064f1335f6e2eac70283de762 /source3/rpc_server | |
parent | 5116f50eb82c76bac40c558c00db17be6b56f161 (diff) | |
download | samba-9af13015b256e5b0eec74e1c788c13e246cde850.tar.gz samba-9af13015b256e5b0eec74e1c788c13e246cde850.tar.bz2 samba-9af13015b256e5b0eec74e1c788c13e246cde850.zip |
s3-spoolss: use rpccli_spoolss_RouterReplyPrinterEx.
Guenther
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/srv_spoolss_nt.c | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index c351c2fa2b..b27680ca1c 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -1087,8 +1087,42 @@ static void send_notify2_changes( SPOOLSS_NOTIFY_MSG_CTR *ctr, uint32 idx ) } if ( sending_msg_count ) { - rpccli_spoolss_rrpcn( notify_cli_pipe, mem_ctx, &p->notify.client_hnd, - data_len, data, p->notify.change, 0 ); + NTSTATUS status; + WERROR werr; + union spoolss_ReplyPrinterInfo info; + struct spoolss_NotifyInfo info0; + uint32_t reply_result; + + info0.version = 0x2; + info0.flags = count ? 0x00020000 /* ??? */ : PRINTER_NOTIFY_INFO_DISCARDED; + info0.count = count; + info0.notifies = notifies; + + info.info0 = &info0; + + status = rpccli_spoolss_RouterReplyPrinterEx(notify_cli_pipe, mem_ctx, + &p->notify.client_hnd, + p->notify.change, /* color */ + p->notify.flags, + &reply_result, + 0, /* reply_type, must be 0 */ + info, + &werr); + if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(werr)) { + DEBUG(1,("RouterReplyPrinterEx to client: %s failed: %s\n", + notify_cli_pipe->srv_name_slash, + win_errstr(werr))); + } + switch (reply_result) { + case 0: + break; + case PRINTER_NOTIFY_INFO_DISCARDED: + case PRINTER_NOTIFY_INFO_DISCARDNOTED: + case PRINTER_NOTIFY_INFO_COLOR_MISMATCH: + break; + default: + break; + } } } |