]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/entry.c
minor cleanup
[openldap] / servers / slapd / entry.c
index 7d553846ce257a519f425fc6c3ea0d6d8faf914e..a150097dae6754c7d7dcdd55723427bc4b6188be 100644 (file)
@@ -21,6 +21,11 @@ static unsigned char *ebuf;  /* buf returned by entry2str             */
 static unsigned char   *ecur;  /* pointer to end of currently used ebuf */
 static int             emaxsize;/* max size of ebuf                     */
 
+/*
+ * Empty root entry
+ */
+const Entry slap_entry_root = { NOID, "", "", NULL, NULL };
+
 int entry_destroy(void)
 {
        free( ebuf );
@@ -392,7 +397,7 @@ entry_id_cmp( Entry *e1, Entry *e2 )
 int entry_encode(Entry *e, struct berval **bv)
 {
        int siz = sizeof(Entry);
-       int len, dnlen;
+       int len, dnlen, ndnlen;
        int i, j;
        Entry *f;
        Attribute *a, *b;
@@ -400,8 +405,6 @@ int entry_encode(Entry *e, struct berval **bv)
        char *ptr, *base, *data;
 
        *bv = ch_malloc(sizeof(struct berval));
-       /* Compress any white space in the DN */
-       dn_validate(e->e_dn);
 #ifdef NEW_LOGGING
        LDAP_LOG(( "operation", LDAP_LEVEL_DETAIL1,
                "entry_encode: id: 0x%08lx  \"%s\"\n",
@@ -411,8 +414,8 @@ int entry_encode(Entry *e, struct berval **bv)
                (long) e->e_id, e->e_dn, 0 );
 #endif
        dnlen = strlen(e->e_dn);
-       /* The dn and ndn are always the same length */
-       len = dnlen + dnlen + 2;        /* two trailing NUL bytes */
+       ndnlen = strlen(e->e_ndn);
+       len = dnlen + ndnlen + 2;       /* two trailing NUL bytes */
        for (a=e->e_attrs; a; a=a->a_next) {
                /* For AttributeDesc, we only store the attr name */
                siz += sizeof(Attribute);
@@ -436,8 +439,8 @@ int entry_encode(Entry *e, struct berval **bv)
        ptr += dnlen;
        *ptr++ = '\0';
        f->e_ndn = (char *)(ptr-base);
-       memcpy(ptr, e->e_ndn, dnlen);
-       ptr += dnlen;
+       memcpy(ptr, e->e_ndn, ndnlen);
+       ptr += ndnlen;
        *ptr++ = '\0';
        f->e_attrs = e->e_attrs ? (Attribute *)sizeof(Entry) : NULL;
        f->e_private = NULL;