]> git.sur5r.net Git - openldap/commitdiff
Sync with HEAD OPENLDAP_REL_ENG_2_2_18
authorKurt Zeilenga <kurt@openldap.org>
Wed, 20 Oct 2004 22:06:50 +0000 (22:06 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Wed, 20 Oct 2004 22:06:50 +0000 (22:06 +0000)
Fix LDAP IMR tags

CHANGES
doc/devel/todo
include/ldap.h
libraries/libldap/extended.c

diff --git a/CHANGES b/CHANGES
index 87b08489b632fcb4414fd9188685dd0a43a165ac..9ad190b2daa55d44c4eb9665c2f9ef2c3b0d1df4 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,7 @@ OpenLDAP 2.2 Change Log
 OpenLDAP 2.2.18 Release
        Fixed libldap schema keyword sensitivity (ITS#3334)
        Fixed libldap DN filter sensitivity (ITS#3334)
+       Fixed libldap intermediate response tags
        Fixed slapd matching rule name sensitivity (ITS#3334)
        Fixed slapd multiple value delete (ITS#3346)
        Fixed slapd referral memory leak
index cf9fc687935d95ef93e77c0b9f900d4f000ad172..0efc98068e1c8b16bac954e9aa73e3b290739d5c 100644 (file)
@@ -52,10 +52,12 @@ Implement authPassword (RFC 3112)
 Add LDIFv2 (XML) support to command line tools
 Implement LDAPprep and SASLprep
 Implement additional matching rules (RFC 3698)
+Add syncrepl "turn" support
 Add dumpasn1 logging support
 Add tests to test suite
-Convert utfconv.txt into man page(s).
+Add jail(2) support
 Recode linked-list structs to use <ldap_queue.h> macros
+Convert utfconv.txt into man page(s).
 Update any manual page
 
 
index 9693413ea88e71416d5220e331ce46cc78f76b15..cbebad32d27bf6fd8c49e54abfca60a8ca99071e 100644 (file)
@@ -319,6 +319,9 @@ typedef struct ldapcontrol {
 #define LDAP_TAG_EXOP_RES_OID   ((ber_tag_t) 0x8aU)    /* context specific + primitive */
 #define LDAP_TAG_EXOP_RES_VALUE ((ber_tag_t) 0x8bU)    /* context specific + primitive */
 
+#define LDAP_TAG_IM_RES_OID   ((ber_tag_t) 0x80U)      /* context specific + primitive */
+#define LDAP_TAG_IM_RES_VALUE ((ber_tag_t) 0x81U)      /* context specific + primitive */
+
 #define LDAP_TAG_SASL_RES_CREDS        ((ber_tag_t) 0x87U)     /* context specific + primitive */
 
 /* LDAP Request Messages */
index 0fb11184adb3a756e6cf23b0768adfff64f8c532..d2cf95ef84a183a0d429d44350658d712c43cc94 100644 (file)
@@ -353,7 +353,13 @@ ldap_parse_intermediate (
 
        tag = ber_peek_tag( ber, &len );
 
-       if( tag == LDAP_TAG_EXOP_RES_OID ) {
+       /*
+        * NOTE: accept intermediate and extended response tag values
+        * as older versions of slapd(8) incorrectly used extended
+        * response tags.
+        * Should be removed when 2.2 is moved to Historic.
+        */
+       if( tag == LDAP_TAG_IM_RES_OID || tag == LDAP_TAG_EXOP_RES_OID ) {
                /* we have a resoid */
                if( ber_scanf( ber, "a", &resoid ) == LBER_ERROR ) {
                        ld->ld_errno = LDAP_DECODING_ERROR;
@@ -364,7 +370,7 @@ ldap_parse_intermediate (
                tag = ber_peek_tag( ber, &len );
        }
 
-       if( tag == LDAP_TAG_EXOP_RES_VALUE ) {
+       if( tag == LDAP_TAG_IM_RES_VALUE || tag == LDAP_TAG_EXOP_RES_VALUE ) {
                /* we have a resdata */
                if( ber_scanf( ber, "O", &resdata ) == LBER_ERROR ) {
                        ld->ld_errno = LDAP_DECODING_ERROR;