order than a strict request - reply sequence
Note: we should also fix the client code...
metze
#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
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;
}
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);