]> git.sur5r.net Git - openldap/commitdiff
Add initial entry_encode() routine for back-sleepy (behind #if)
authorKurt Zeilenga <kurt@openldap.org>
Tue, 12 Sep 2000 00:28:08 +0000 (00:28 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Tue, 12 Sep 2000 00:28:08 +0000 (00:28 +0000)
Need to add entry_decode().

servers/slapd/entry.c
servers/slapd/proto-slap.h

index c8817c87ef343c4145c814e59b28a4ea260e2693..5b9011e47dff77c765ed1c26cd85e08f0b8b7a4f 100644 (file)
@@ -223,6 +223,47 @@ entry2str(
        return( (char *) ebuf );
 }
 
+#if SLAPD_SLEEPY
+int entry_encode(
+       Entry *e,
+       struct berval **bv )
+{
+       int rc = -1;
+       Attribute *a;
+       BerElement *ber;
+       
+       ber = ber_alloc_t( LBER_USE_DER );
+       if( ber == NULL ) {
+               goto done;
+       }
+
+       rc = ber_printf( ber, "{s{" /*"}}"*/, e->e_dn );
+       if( rc < 0 ) {
+               goto done;
+       }
+
+       for ( a = e->e_attrs; a != NULL; a = a->a_next ) {
+               rc = ber_printf( ber, "{O{V}}",
+                       a->a_desc->ad_cname,
+                       a->a_vals );
+               if( rc < 0 ) {
+                       goto done;
+               }
+       }
+
+       rc = ber_printf( ber, /*"{{"*/ "}}" );
+       if( rc < 0 ) {
+               goto done;
+       }
+
+       rc = ber_flatten( ber, bv );
+
+done:
+       ber_free( ber, 1 );
+       return rc;
+}
+#endif
+
 void
 entry_free( Entry *e )
 {
index fbcb5e2510a3d079616f8db7ec587ec12de1b28f..480ac3e021f17a27be50d1e3dcfafe54a9fab4a2 100644 (file)
@@ -314,8 +314,11 @@ LDAP_SLAPD_F (int) entry_destroy LDAP_P((void));
 
 LDAP_SLAPD_F (Entry *) str2entry LDAP_P(( char *s ));
 LDAP_SLAPD_F (char *) entry2str LDAP_P(( Entry *e, int *len ));
-LDAP_SLAPD_F (void) entry_free LDAP_P(( Entry *e ));
 
+LDAP_SLAPD_F (int) entry_decode LDAP_P(( struct berval *bv, Entry **e ));
+LDAP_SLAPD_F (int) entry_encode LDAP_P(( Entry *e, struct berval **bv ));
+
+LDAP_SLAPD_F (void) entry_free LDAP_P(( Entry *e ));
 LDAP_SLAPD_F (int) entry_cmp LDAP_P(( Entry *a, Entry *b ));
 LDAP_SLAPD_F (int) entry_dn_cmp LDAP_P(( Entry *a, Entry *b ));
 LDAP_SLAPD_F (int) entry_id_cmp LDAP_P(( Entry *a, Entry *b ));