svn commit: samba r8523 - in branches/SAMBA_4_0/source/libcli/ldap: .

tridge at samba.org tridge at samba.org
Sun Jul 17 10:52:31 GMT 2005


Author: tridge
Date: 2005-07-17 10:52:31 +0000 (Sun, 17 Jul 2005)
New Revision: 8523

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

Log:
match a zero message id in ldap replies to the last request sent. Thanks to simo
for noticing that this is needed to catch the server sending a "can't decode request"
error reply

Modified:
   branches/SAMBA_4_0/source/libcli/ldap/ldap_client.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/ldap/ldap_client.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/ldap/ldap_client.c	2005-07-17 10:38:59 UTC (rev 8522)
+++ branches/SAMBA_4_0/source/libcli/ldap/ldap_client.c	2005-07-17 10:52:31 UTC (rev 8523)
@@ -106,6 +106,11 @@
 	for (req=conn->pending; req; req=req->next) {
 		if (req->messageid == msg->messageid) break;
 	}
+	/* match a zero message id to the last request sent.
+	   It seems that servers send 0 if unable to parse */
+	if (req == NULL && msg->messageid == 0) {
+		req = conn->pending;
+	}
 	if (req == NULL) {
 		DEBUG(0,("ldap: no matching message id for %u\n",
 			 msg->messageid));
@@ -480,6 +485,9 @@
 	req->state       = LDAP_REQUEST_SEND;
 	req->conn        = conn;
 	req->messageid   = conn->next_messageid++;
+	if (conn->next_messageid == 0) {
+		conn->next_messageid = 1;
+	}
 	req->type        = msg->type;
 	if (req->messageid == -1) {
 		goto failed;



More information about the samba-cvs mailing list