]> git.sur5r.net Git - openldap/commitdiff
Added slapi_entry_attr_get_charptr() API
authorLuke Howard <lukeh@openldap.org>
Wed, 22 Jan 2003 09:35:48 +0000 (09:35 +0000)
committerLuke Howard <lukeh@openldap.org>
Wed, 22 Jan 2003 09:35:48 +0000 (09:35 +0000)
servers/slapd/slapi/slapi_utils.c
servers/slapd/slapi/slapi_utils.h

index 125c8a62c91cedfe32017409e5684037c96b48e8..b961f48a2bca709811058925e8c2156e97246e8b 100644 (file)
@@ -285,6 +285,35 @@ slapi_entry_attr_find(
 #endif /* !defined(LDAP_SLAPI) */
 }
 
+char *
+slapi_entry_attr_get_charptr( const Slapi_Entry *e, const char *type )
+{
+#ifdef LDAP_SLAPI
+       AttributeDescription *ad = NULL;
+       const char *text;
+       int rc;
+       Attribute *attr;
+
+       rc = slap_str2ad( type, &ad, &text );
+       if ( rc != LDAP_SUCCESS ) {
+               return NULL;
+       }
+
+       attr = attr_find( e->e_attrs, ad );
+       if ( attr == NULL ) {
+               return NULL;
+       }
+
+       if ( attr->a_vals != NULL && attr->a_vals[0].bv_val != NULL ) {
+               return slapi_ch_strdup( attr->a_vals[0].bv_val );
+       }
+
+       return NULL;
+#else
+       return -1;
+#endif
+}
+
 /* 
  * FIXME -- The caller must free the allocated memory. 
  * In Netscape they do not have to.
index 3d2c2d7eabb75abf11214e771d10b122b43bd1b4..88487a9548dd1d31dce64f95967eb57103dd3cd2 100644 (file)
@@ -47,6 +47,7 @@ Slapi_Entry *slapi_str2entry( char *s, int flags );
 char *slapi_entry2str( Slapi_Entry *e, int *len );
 int slapi_entry_attr_merge( Slapi_Entry *e, char *type, struct berval **vals );
 int slapi_entry_attr_find( Slapi_Entry *e, char *type, Slapi_Attr **attr );
+char *slapi_entry_attr_get_charptr( const Slapi_Entry *e, const char *type );
 int slapi_entry_attr_delete( Slapi_Entry *e, char *type );
 char *slapi_entry_get_dn( Slapi_Entry *e );
 int slapi_x_entry_get_id( Slapi_Entry *e );