svn commit: samba r10008 - in branches/tmp/RPCREWRITE/source/rpc_server: .

jra at samba.org jra at samba.org
Sat Sep 3 17:31:44 GMT 2005


Author: jra
Date: 2005-09-03 17:31:43 +0000 (Sat, 03 Sep 2005)
New Revision: 10008

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10008

Log:
Make srv_spoolss use the new pipe calls.
Jeremy.

Modified:
   branches/tmp/RPCREWRITE/source/rpc_server/srv_spoolss_nt.c


Changeset:
Modified: branches/tmp/RPCREWRITE/source/rpc_server/srv_spoolss_nt.c
===================================================================
--- branches/tmp/RPCREWRITE/source/rpc_server/srv_spoolss_nt.c	2005-09-03 17:17:30 UTC (rev 10007)
+++ branches/tmp/RPCREWRITE/source/rpc_server/srv_spoolss_nt.c	2005-09-03 17:31:43 UTC (rev 10008)
@@ -75,7 +75,7 @@
 
 static counter_printer_0 *counter_list;
 
-static struct cli_state notify_cli; /* print notify back-channel */
+static struct rpc_pipe_client *notify_cli_pipe; /* print notify back-channel pipe handle*/
 static uint32 smb_connections=0;
 
 
@@ -166,7 +166,7 @@
 		return;
 	}
 
-	result = cli_spoolss_reply_close_printer(&notify_cli, notify_cli.mem_ctx, handle);
+	result = rpccli_spoolss_reply_close_printer(notify_cli_pipe, notify_cli_pipe->cli->mem_ctx, handle);
 	
 	if (!W_ERROR_IS_OK(result))
 		DEBUG(0,("srv_spoolss_replycloseprinter: reply_close_printer failed [%s].\n",
@@ -174,9 +174,8 @@
 
 	/* if it's the last connection, deconnect the IPC$ share */
 	if (smb_connections==1) {
-		cli_nt_session_close(&notify_cli);
-		cli_ulogoff(&notify_cli);
-		cli_shutdown(&notify_cli);
+		cli_shutdown(notify_cli_pipe->cli);
+		notify_cli_pipe = NULL; /* The above call shuts downn the pipe also. */
 		message_deregister(MSG_PRINTER_NOTIFY2);
 
         	/* Tell the connections db we're no longer interested in
@@ -1021,7 +1020,7 @@
 		}
 
 		if ( sending_msg_count ) {
-			cli_spoolss_rrpcn( &notify_cli, mem_ctx, &p->notify.client_hnd, 
+			rpccli_spoolss_rrpcn( notify_cli_pipe, mem_ctx, &p->notify.client_hnd, 
 					data_len, data, p->notify.change, 0 );
 		}
 	}
@@ -2479,7 +2478,7 @@
  Connect to the client machine.
 **********************************************************/
 
-static BOOL spoolss_connect_to_client(struct cli_state *the_cli, 
+static BOOL spoolss_connect_to_client(struct cli_state *the_cli, struct rpc_pipe_client **pp_pipe,
 			struct in_addr *client_ip, const char *remote_machine)
 {
 	ZERO_STRUCTP(the_cli);
@@ -2563,10 +2562,10 @@
 	 * Now start the NT Domain stuff :-).
 	 */
 
-	if(cli_nt_session_open(the_cli, PI_SPOOLSS) == False) {
-		DEBUG(0,("spoolss_connect_to_client: unable to open the domain client session to machine %s. Error was : %s.\n", remote_machine, cli_errstr(the_cli)));
-		cli_nt_session_close(the_cli);
-		cli_ulogoff(the_cli);
+	*pp_pipe = cli_rpc_pipe_open_noauth(the_cli, PI_SPOOLSS);
+	if(!*pp_pipe) {
+		DEBUG(0,("spoolss_connect_to_client: unable to open the spoolss pipe on machine %s. Error was : %s.\n",
+			remote_machine, cli_errstr(the_cli)));
 		cli_shutdown(the_cli);
 		return False;
 	} 
@@ -2589,13 +2588,14 @@
 	 * and connect to the IPC$ share anonymously
 	 */
 	if (smb_connections==0) {
+		struct cli_state notify_cli; /* print notify back-channel */
 		fstring unix_printer;
 
 		fstrcpy(unix_printer, printer+2); /* the +2 is to strip the leading 2 backslashs */
 
 		ZERO_STRUCT(notify_cli);
 
-		if(!spoolss_connect_to_client(&notify_cli, client_ip, unix_printer))
+		if(!spoolss_connect_to_client(&notify_cli, &notify_cli_pipe, client_ip, unix_printer))
 			return False;
 			
 		message_register(MSG_PRINTER_NOTIFY2, receive_notify2_message_list);
@@ -2614,7 +2614,7 @@
 
 	smb_connections++;
 
-	result = cli_spoolss_reply_open_printer(&notify_cli, notify_cli.mem_ctx, printer, localprinter, 
+	result = rpccli_spoolss_reply_open_printer(notify_cli_pipe, notify_cli_pipe->cli->mem_ctx, printer, localprinter, 
 			type, handle);
 			
 	if (!W_ERROR_IS_OK(result))



More information about the samba-cvs mailing list