svn commit: samba r6705 - in branches/SAMBA_4_0/source: auth/gensec auth/ntlmssp rpc_server

metze at samba.org metze at samba.org
Tue May 10 11:04:05 GMT 2005


Author: metze
Date: 2005-05-10 11:04:04 +0000 (Tue, 10 May 2005)
New Revision: 6705

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

Log:
let the gensec module decide if messages can be signed and sealed in a different
order than a strict request - reply sequence

Note: we should also fix the client code...

metze
Modified:
   branches/SAMBA_4_0/source/auth/gensec/gensec.h
   branches/SAMBA_4_0/source/auth/ntlmssp/ntlmssp.c
   branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c


Changeset:
Modified: branches/SAMBA_4_0/source/auth/gensec/gensec.h
===================================================================
--- branches/SAMBA_4_0/source/auth/gensec/gensec.h	2005-05-10 10:59:06 UTC (rev 6704)
+++ branches/SAMBA_4_0/source/auth/gensec/gensec.h	2005-05-10 11:04:04 UTC (rev 6705)
@@ -39,6 +39,7 @@
 #define GENSEC_FEATURE_SIGN		0x00000002
 #define GENSEC_FEATURE_SEAL		0x00000004
 #define GENSEC_FEATURE_DCE_STYLE	0x00000008
+#define GENSEC_FEATURE_ASYNC_REPLIES	0x00000010
 
 /* GENSEC mode */
 enum gensec_role

Modified: branches/SAMBA_4_0/source/auth/ntlmssp/ntlmssp.c
===================================================================
--- branches/SAMBA_4_0/source/auth/ntlmssp/ntlmssp.c	2005-05-10 10:59:06 UTC (rev 6704)
+++ branches/SAMBA_4_0/source/auth/ntlmssp/ntlmssp.c	2005-05-10 11:04:04 UTC (rev 6705)
@@ -183,6 +183,11 @@
 		gensec_ntlmssp_state->have_features |= GENSEC_FEATURE_SESSION_KEY;
 	}
 
+	/* only NTLMv2 can handle async replies */
+	if (gensec_ntlmssp_state->neg_flags & NTLMSSP_NEGOTIATE_NTLM2) {
+		gensec_ntlmssp_state->have_features |= GENSEC_FEATURE_ASYNC_REPLIES;
+	}
+
 	return status;
 }
 

Modified: branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c	2005-05-10 10:59:06 UTC (rev 6704)
+++ branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c	2005-05-10 11:04:04 UTC (rev 6705)
@@ -742,6 +742,10 @@
 	call->state_flags	= call->conn->dce_ctx->state_flags;
 	call->time		= timeval_current();
 
+	if (!gensec_have_feature(call->conn->auth_state.gensec_security, GENSEC_FEATURE_ASYNC_REPLIES)) {
+		call->state_flags &= ~DCESRV_CALL_STATE_FLAG_MAY_ASYNC;
+	}
+
 	context = dcesrv_find_context(call->conn, call->pkt.u.request.context_id);
 	if (context == NULL) {
 		return dcesrv_fault(call, DCERPC_FAULT_UNK_IF);



More information about the samba-cvs mailing list