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 {
