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

metze at samba.org metze at samba.org
Sat Nov 6 20:43:36 GMT 2004


Author: metze
Date: 2004-11-06 20:43:36 +0000 (Sat, 06 Nov 2004)
New Revision: 3584

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

Log:
fix referral handling

metze

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


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/ldap/ldap.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/ldap/ldap.c	2004-11-06 20:15:39 UTC (rev 3583)
+++ branches/SAMBA_4_0/source/libcli/ldap/ldap.c	2004-11-06 20:43:36 UTC (rev 3584)
@@ -361,9 +361,12 @@
 	asn1_write_OctetString(data, result->errormessage,
 			       (result->errormessage) ?
 			       strlen(result->errormessage) : 0);
-	if (result->referral != NULL)
+	if (result->referral) {
+		asn1_push_tag(data, ASN1_CONTEXT(3));
 		asn1_write_OctetString(data, result->referral,
 				       strlen(result->referral));
+		asn1_pop_tag(data);
+	}
 }
 
 BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result)
@@ -620,7 +623,10 @@
 		break;
 	}
 	case LDAP_TAG_SearchResultReference: {
-/*		struct ldap_SearchResRef *r = &msg->r.SearchResultReference; */
+		struct ldap_SearchResRef *r = &msg->r.SearchResultReference;
+		asn1_push_tag(&data, ASN1_APPLICATION(msg->type));
+		asn1_write_OctetString(&data, r->referral, strlen(r->referral));
+		asn1_pop_tag(&data);
 		break;
 	}
 	case LDAP_TAG_ExtendedRequest: {
@@ -957,8 +963,11 @@
 	}
 
 	case ASN1_APPLICATION(LDAP_TAG_SearchResultReference): {
-/*		struct ldap_SearchResRef *r = &msg->r.SearchResultReference; */
+		struct ldap_SearchResRef *r = &msg->r.SearchResultReference;
 		msg->type = LDAP_TAG_SearchResultReference;
+		asn1_start_tag(data, tag);
+		asn1_read_OctetString_talloc(msg->mem_ctx, data, &r->referral);
+		asn1_end_tag(data);
 		break;
 	}
 

Modified: branches/SAMBA_4_0/source/libcli/ldap/ldap.h
===================================================================
--- branches/SAMBA_4_0/source/libcli/ldap/ldap.h	2004-11-06 20:15:39 UTC (rev 3583)
+++ branches/SAMBA_4_0/source/libcli/ldap/ldap.h	2004-11-06 20:43:36 UTC (rev 3584)
@@ -161,8 +161,7 @@
 };
 
 struct ldap_SearchResRef {
-	int num_referrals;
-	const char **referrals;
+	const char *referral;
 };
 
 enum ldap_modify_type {



More information about the samba-cvs mailing list