]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/ufn.c
Rework SASL command line arguments. Default is now to authenticate
[openldap] / libraries / libldap / ufn.c
index ff4e38dedcf9d8f2a9494e2134f1ac9eed0111f9..db21748c8db8d0fe6d3441902b648d8f1a32d52f 100644 (file)
@@ -1,5 +1,6 @@
+/* $OpenLDAP$ */
 /*
- * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 /*  Portions
 #include "portable.h"
 
 #include <stdio.h>
-#include <ac/string.h>
-#include <ctype.h>
-#include <stdlib.h>
+
+#include <ac/stdlib.h>
 
 #include <ac/socket.h>
+#include <ac/string.h>
 #include <ac/time.h>
 
 #include "ldap-int.h"
-#include "ldapconfig.h"
+#include "ldap_defaults.h"
 
 typedef int (*cancelptype) LDAP_P(( void *cancelparm ));
 
@@ -129,7 +130,7 @@ ldap_ufn_search_ctx( LDAP *ld, char **ufncomp, int ncomp, char *prefix,
                                    * 2 )) == NULL ) {
                                        return( ld->ld_errno = LDAP_NO_MEMORY );
                                }
-                               dns[0] = strdup( prefix );
+                               dns[0] = LDAP_STRDUP( prefix );
                                dns[1] = NULL;
                        } else {
                                dns = NULL;
@@ -183,7 +184,7 @@ ldap_ufn_search_ctx( LDAP *ld, char **ufncomp, int ncomp, char *prefix,
 
                        if ( err == -1 || err == LDAP_USER_CANCELLED ) {
                                if ( dns != NULL ) {
-                                       ldap_value_free( dns );
+                                       LDAP_VFREE( dns );
                                        dns = NULL;
                                }
                                return( err );
@@ -196,7 +197,7 @@ ldap_ufn_search_ctx( LDAP *ld, char **ufncomp, int ncomp, char *prefix,
                                goto tryagain;
                        } else {
                                if ( dns != NULL ) {
-                                       ldap_value_free( dns );
+                                       LDAP_VFREE( dns );
                                        dns = NULL;
                                }
                                return( err );
@@ -207,7 +208,7 @@ ldap_ufn_search_ctx( LDAP *ld, char **ufncomp, int ncomp, char *prefix,
                if ( phase == 1 )
                        phase++;
                if ( dns != NULL ) {
-                       ldap_value_free( dns );
+                       LDAP_VFREE( dns );
                        dns = NULL;
                }
        }
@@ -244,7 +245,7 @@ ldap_ufn_search_ct(
                    attrsonly, res, cancelproc, cancelparm, tag1, tag2, tag3 );
 
                if ( ldap_count_entries( ld, *res ) > 0 ) {
-                       ldap_value_free( ufncomp );
+                       LDAP_VFREE( ufncomp );
                        return( err );
                } else {
                        ldap_msgfree( *res );
@@ -253,21 +254,21 @@ ldap_ufn_search_ct(
        }
 
        if ( ld->ld_ufnprefix == NULL ) {
-               ldap_value_free( ufncomp );
+               LDAP_VFREE( ufncomp );
                return( err );
        }
 
        /* if that failed, or < 2 components, use the prefix */
        if ( (prefixcomp = ldap_explode_dn( ld->ld_ufnprefix, 0 )) == NULL ) {
-               ldap_value_free( ufncomp );
+               LDAP_VFREE( ufncomp );
                return( ld->ld_errno = LDAP_LOCAL_ERROR );
        }
        for ( pcomp = 0; prefixcomp[pcomp] != NULL; pcomp++ )
                ;       /* NULL */
        if ( (pbuf = (char *) LDAP_MALLOC( strlen( ld->ld_ufnprefix ) + 1 ))
            == NULL ) { 
-               ldap_value_free( ufncomp );
-               ldap_value_free( prefixcomp );
+               LDAP_VFREE( ufncomp );
+               LDAP_VFREE( prefixcomp );
                return( ld->ld_errno = LDAP_NO_MEMORY );
        }
 
@@ -291,8 +292,8 @@ ldap_ufn_search_ct(
                }
        }
 
-       ldap_value_free( ufncomp );
-       ldap_value_free( prefixcomp );
+       LDAP_VFREE( ufncomp );
+       LDAP_VFREE( prefixcomp );
        LDAP_FREE( pbuf );
 
        return( err );
@@ -476,7 +477,8 @@ ldap_ufn_setprefix( LDAP *ld, LDAP_CONST char *prefix )
        if ( ld->ld_ufnprefix != NULL )
                LDAP_FREE( ld->ld_ufnprefix );
 
-       ld->ld_ufnprefix = strdup( prefix );
+       ld->ld_ufnprefix = prefix == NULL
+               ? NULL : LDAP_STRDUP( prefix );
 }
 
 int