]> git.sur5r.net Git - openldap/commitdiff
Add ber_bvstr and ber_bvstrdup string to berval allocators.
authorKurt Zeilenga <kurt@openldap.org>
Fri, 17 Dec 1999 05:37:33 +0000 (05:37 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Fri, 17 Dec 1999 05:37:33 +0000 (05:37 +0000)
include/lber.h
include/ldap_cdefs.h
libraries/liblber/memory.c

index be36e58bb4ff9ecae91a338707e0aeefbf53155b..12a152f141fcb4cf6b743f33ddd3d023a47c68e5 100644 (file)
@@ -470,6 +470,14 @@ LIBLBER_F( struct berval * )
 ber_bvdup LDAP_P((
        LDAP_CONST struct berval *bv ));
 
+LIBLBER_F( struct berval * )
+ber_bvstr LDAP_P((
+       LDAP_CONST char * ));
+
+LIBLBER_F( struct berval * )
+ber_bvstrdup LDAP_P((
+       LDAP_CONST char * ));
+
 LIBLBER_F( char * )
 ber_strdup LDAP_P((
        LDAP_CONST char * ));
index 85de67933570599419a1064da73ca8b6896fda84..9c7b953f7b11de4639df728f772612bd9fb1f19f 100644 (file)
 #      define LIBLUTIL_F(type) extern type
 #endif
 
-/* SLAPD (as a module exporting symbols */
+/* SLAPD (as a module exporting symbols) */
 #if defined(LIBSLAPD_DECL) && defined(_WIN32)
 #      define LIBSLAPD_F(type) extern __declspec(LIBSLAPD_DECL) type
 #else
index d45a09d0ad17335f723e9d92a39d21eb2639a3ee..327cff29972fa246f3f743c32777c81ec4a3d715 100644 (file)
@@ -292,6 +292,66 @@ ber_bvdup(
        return( new );
 }
 
+struct berval *
+ber_bvstr(
+       LDAP_CONST char *s )
+{
+       struct berval *new;
+
+       ber_int_options.lbo_valid = LBER_INITIALIZED;
+
+       if( s == NULL ) {
+               ber_errno = LBER_ERROR_PARAM;
+               return NULL;
+       }
+
+       if(( new = LBER_MALLOC( sizeof(struct berval) )) == NULL ) {
+               ber_errno = LBER_ERROR_MEMORY;
+               return NULL;
+       }
+
+       if ( *s == '\0' ) {
+               new->bv_val = NULL;
+               new->bv_len = 0;
+               return new;
+       }
+
+       new->bv_val = (char *) s;
+       new->bv_len = strlen( s );
+
+       return( new );
+}
+
+struct berval *
+ber_bvstrdup(
+       LDAP_CONST char *s )
+{
+       struct berval *new;
+       char *p;
+
+       ber_int_options.lbo_valid = LBER_INITIALIZED;
+
+       if( s == NULL ) {
+               ber_errno = LBER_ERROR_PARAM;
+               return NULL;
+       }
+
+       p = LBER_STRDUP( s );
+
+       if( p == NULL ) {
+               ber_errno = LBER_ERROR_MEMORY;
+               return NULL;
+       }
+
+       new = ber_bvstr( p );
+
+       if( new == NULL || *p == '\0' ) {
+               LBER_FREE( p );
+       }
+
+       return( new );
+}
+
 char *
 ber_strdup( LDAP_CONST char *s )
 {