]> git.sur5r.net Git - openldap/commitdiff
Added Entry->e_bv for entry_decode
authorHoward Chu <hyc@openldap.org>
Fri, 25 Jan 2002 07:11:52 +0000 (07:11 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 25 Jan 2002 07:11:52 +0000 (07:11 +0000)
servers/slapd/entry.c
servers/slapd/slap.h

index aafaa82929b2ebb68f539f61c0af63730fba74b3..7c01ac87a2f6b2f445340c1aac4885d775286f63 100644 (file)
@@ -24,7 +24,7 @@ static int            emaxsize;/* max size of ebuf                     */
 /*
  * Empty root entry
  */
-const Entry slap_entry_root = { NOID, { 0, "" }, { 0, "" }, NULL, 0, NULL };
+const Entry slap_entry_root = { NOID, { 0, "" }, { 0, "" }, NULL, 0, { 0, "" }, NULL };
 
 int entry_destroy(void)
 {
@@ -363,6 +363,11 @@ entry_free( Entry *e )
                e->e_ndn = NULL;
        }
 
+       if ( e->e_bv.bv_val != NULL ) {
+               free( e->e_bv.bv_val );
+               e->e_bv.bv_val = NULL;
+       }
+
        /* free attributes */
        attrs_free( e->e_attrs );
        e->e_attrs = NULL;
@@ -575,7 +580,7 @@ int entry_decode(struct berval *bv, Entry **e)
            "entry_decode: \"%s\"\n",
            x->e_dn, 0, 0 );
 #endif
-       x->e_private = bv->bv_val;
+       x->e_bv = *bv;
 
        /* A valid entry must have at least one attr, so this
         * pointer can never be NULL
index f0d8dc31a001a6a2591ecd2025391b4e129947dd..4c1e7c0819cccc9480a12e5ece310db0d0e3dd89 100644 (file)
@@ -756,6 +756,8 @@ typedef struct slap_entry {
 
        slap_mask_t     e_ocflags;
 
+       struct berval   e_bv;           /* For entry_encode/entry_decode */
+
        /* for use by the backend for any purpose */
        void*   e_private;
 } Entry;