summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2009-02-12 00:40:37 +0100
committerGünther Deschner <gd@samba.org>2009-02-23 16:17:35 +0100
commit9af13015b256e5b0eec74e1c788c13e246cde850 (patch)
tree559f35fee7aafdd064f1335f6e2eac70283de762 /source3/rpc_server
parent5116f50eb82c76bac40c558c00db17be6b56f161 (diff)
downloadsamba-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.c38
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;
+ }
}
}