svn commit: samba r13923 - in branches/SAMBA_4_0/source: ntvfs/ipc rpc_server

metze at samba.org metze at samba.org
Tue Mar 7 11:02:48 GMT 2006


Author: metze
Date: 2006-03-07 11:02:47 +0000 (Tue, 07 Mar 2006)
New Revision: 13923

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

Log:
make the state_flags per dcesrv_connection

this will may help with a generic named pipe solution

metze
Modified:
   branches/SAMBA_4_0/source/ntvfs/ipc/vfs_ipc.c
   branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c
   branches/SAMBA_4_0/source/rpc_server/dcerpc_server.h
   branches/SAMBA_4_0/source/rpc_server/dcerpc_sock.c


Changeset:
Modified: branches/SAMBA_4_0/source/ntvfs/ipc/vfs_ipc.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/ipc/vfs_ipc.c	2006-03-07 10:32:27 UTC (rev 13922)
+++ branches/SAMBA_4_0/source/ntvfs/ipc/vfs_ipc.c	2006-03-07 11:02:47 UTC (rev 13923)
@@ -227,6 +227,7 @@
 						ep_description, 
 						req->session->session_info,
 						srv_conn,
+						0,
 						&p->dce_conn);
 	if (!NT_STATUS_IS_OK(status)) {
 		idr_remove(private->idtree_fnum, p->fnum);

Modified: branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c	2006-03-07 10:32:27 UTC (rev 13922)
+++ branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c	2006-03-07 11:02:47 UTC (rev 13923)
@@ -287,6 +287,7 @@
 				 TALLOC_CTX *mem_ctx,
 				 const struct dcesrv_endpoint *ep,
 				 struct stream_connection *srv_conn,
+				 uint32_t state_flags,
 				 struct dcesrv_connection **_p)
 {
 	struct dcesrv_connection *p;
@@ -307,6 +308,7 @@
 	p->auth_state.session_key = dcesrv_generic_session_key;
 	p->srv_conn = srv_conn;
 	p->processing = False;
+	p->state_flags = state_flags;
 
 	talloc_set_destructor(p, dcesrv_endpoint_destructor);
 
@@ -322,6 +324,7 @@
 					const struct dcerpc_binding *ep_description,
 					struct auth_session_info *session_info,
 					struct stream_connection *srv_conn,
+					uint32_t state_flags,
 					struct dcesrv_connection **dce_conn_p)
 {
 	NTSTATUS status;
@@ -333,7 +336,7 @@
 		return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 	}
 
-	status = dcesrv_endpoint_connect(dce_ctx, mem_ctx, ep, srv_conn, dce_conn_p);
+	status = dcesrv_endpoint_connect(dce_ctx, mem_ctx, ep, srv_conn, state_flags, dce_conn_p);
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
 	}
@@ -724,7 +727,7 @@
 	struct dcesrv_connection_context *context;
 
 	call->fault_code	= 0;
-	call->state_flags	= call->conn->dce_ctx->state_flags;
+	call->state_flags	= call->conn->state_flags;
 	call->time		= timeval_current();
 
 	/* if authenticated, and the mech we use can't do async replies, don't use them... */
@@ -1134,7 +1137,7 @@
 	return status;
 }
 
-static NTSTATUS dcesrv_init_context(TALLOC_CTX *mem_ctx, const char **endpoint_servers, uint32_t state_flags, struct dcesrv_context **_dce_ctx)
+static NTSTATUS dcesrv_init_context(TALLOC_CTX *mem_ctx, const char **endpoint_servers, struct dcesrv_context **_dce_ctx)
 {
 	NTSTATUS status;
 	struct dcesrv_context *dce_ctx;
@@ -1148,7 +1151,6 @@
 	dce_ctx = talloc(mem_ctx, struct dcesrv_context);
 	NT_STATUS_HAVE_NO_MEMORY(dce_ctx);
 	dce_ctx->endpoint_list	= NULL;
-	dce_ctx->state_flags	= state_flags;
 
 	for (i=0;endpoint_servers[i];i++) {
 		const struct dcesrv_endpoint_server *ep_server;
@@ -1179,7 +1181,7 @@
 	NTSTATUS status;
 	struct dcesrv_context *dce_ctx;
 
-	status = dcesrv_init_context(mem_ctx, lp_dcerpc_endpoint_servers(), 0, &dce_ctx);
+	status = dcesrv_init_context(mem_ctx, lp_dcerpc_endpoint_servers(), &dce_ctx);
 	NT_STATUS_NOT_OK_RETURN(status);
 
 	*_dce_ctx = dce_ctx;
@@ -1278,7 +1280,6 @@
 
 	status = dcesrv_init_context(event_context,
 				     lp_dcerpc_endpoint_servers(),
-				     DCESRV_CALL_STATE_FLAG_MAY_ASYNC,
 				     &dce_ctx);
 	NT_STATUS_NOT_OK_RETURN(status);
 

Modified: branches/SAMBA_4_0/source/rpc_server/dcerpc_server.h
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/dcerpc_server.h	2006-03-07 10:32:27 UTC (rev 13922)
+++ branches/SAMBA_4_0/source/rpc_server/dcerpc_server.h	2006-03-07 11:02:47 UTC (rev 13923)
@@ -177,6 +177,10 @@
 	DATA_BLOB transport_session_key;
 
 	BOOL processing;
+
+	/* this is the default state_flags for dcesrv_call_state structs */
+	uint32_t state_flags;
+
 };
 
 
@@ -220,9 +224,6 @@
 			struct dcesrv_interface iface;
 		} *interface_list;
 	} *endpoint_list;
-
-	/* this is the default state_flags for dcesrv_call_state structs */
-	uint32_t state_flags;
 };
 
 /* this structure is used by modules to determine the size of some critical types */

Modified: branches/SAMBA_4_0/source/rpc_server/dcerpc_sock.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/dcerpc_sock.c	2006-03-07 10:32:27 UTC (rev 13922)
+++ branches/SAMBA_4_0/source/rpc_server/dcerpc_sock.c	2006-03-07 11:02:47 UTC (rev 13923)
@@ -67,6 +67,7 @@
 					 srv_conn,
 					 dcesrv_sock->endpoint,
 					 srv_conn,
+					 DCESRV_CALL_STATE_FLAG_MAY_ASYNC,
 					 &dcesrv_conn);
 	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(0,("dcesrv_sock_accept: dcesrv_endpoint_connect failed: %s\n", 



More information about the samba-cvs mailing list