On Wed, 2007-04-11 at 19:50 -0500, Ben Beuchler wrote:
> I'd note that if your client is performing search + bind on the same
> connection in an asynchronous manner, then the server behavior as per
> RFC4511 is undefined, since a server is not supposed to be willing to
> handle operations intermixed with binds until a bind is concluded.  That
> is, any operation can be multiplexed on a single LDAP connection
> __except__ binds, which must be serialized.

That's how I thought it was working. But I think I found a bug in there.
See if the attached patch fixes it?

Index: src/auth/db-ldap.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/db-ldap.c,v
retrieving revision 1.41.2.18
diff -u -r1.41.2.18 db-ldap.c
--- src/auth/db-ldap.c	19 Jan 2007 15:27:42 -0000	1.41.2.18
+++ src/auth/db-ldap.c	12 Apr 2007 08:00:32 -0000
@@ -196,6 +196,8 @@
 				request->callback(conn, request, NULL);
 				return;
 			}
+			db_ldap_add_delayed_request(conn, request);
+			return;
 		}
 
 		msgid = ldap_search(conn->ld, request->base, scope,

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to