From 72c5be634c1f656039c32406213e69bb5c120952 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 11 Sep 2006 06:17:12 +0000 Subject: r18363: Found a rather nasty bug in our fragment handling. We were adding packet fragments onto the *reply* queue, not the recieve queue. This worked, as long as we got a whole packet before we did any reply work, but failed once the backend called a remote LDAP server (and I presume something invoked the event loop). Andrew Bartlett (This used to be commit a0162e0ace48104d94f7b7dd3d2f62a7f42e10c6) --- source4/rpc_server/dcerpc_server.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'source4/rpc_server/dcerpc_server.h') diff --git a/source4/rpc_server/dcerpc_server.h b/source4/rpc_server/dcerpc_server.h index 031ace49d7..2990d6e09f 100644 --- a/source4/rpc_server/dcerpc_server.h +++ b/source4/rpc_server/dcerpc_server.h @@ -168,12 +168,15 @@ struct dcesrv_connection { /* a list of established context_ids */ struct dcesrv_connection_context *contexts; - /* the state of the current calls */ - struct dcesrv_call_state *call_list; + /* the state of the current incoming call fragments */ + struct dcesrv_call_state *incoming_fragmented_call_list; /* the state of the async pending calls */ struct dcesrv_call_state *pending_call_list; + /* the state of the current outgoing calls */ + struct dcesrv_call_state *call_list; + /* the maximum size the client wants to receive */ uint32_t cli_max_recv_frag; -- cgit