]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/srchpref.c
Sync with 2.x
[openldap] / libraries / libldap / srchpref.c
index 64f1c1b1c7dc04100570bfb122176f05606e0985..8f34f509f28c0df3ebf109136a9ef60db1e0938f 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
@@ -20,7 +21,8 @@
 #include "portable.h"
 
 #include <stdio.h>
-#include <stdlib.h>
+
+#include <ac/stdlib.h>
 
 #include <ac/ctype.h>
 #include <ac/string.h>
@@ -37,7 +39,7 @@
 #include "ldap-int.h"
 
 static void free_searchobj LDAP_P(( struct ldap_searchobj *so ));
-static int read_next_searchobj LDAP_P(( char **bufp, long *blenp,
+static int read_next_searchobj LDAP_P(( char **bufp, ber_len_t *blenp,
        struct ldap_searchobj **sop, int soversion ));
 
 
@@ -98,30 +100,32 @@ ldap_init_searchprefs( char *file, struct ldap_searchobj **solistp )
 
 
 int
-ldap_init_searchprefs_buf( char *buf, long buflen,
+ldap_init_searchprefs_buf(
+       char *buf,
+       ber_len_t buflen,
        struct ldap_searchobj **solistp )
 {
     int                                rc = -1, version;
     char                       **toks;
     struct ldap_searchobj      *prevso, *so;
 
-    *solistp = prevso = NULLSEARCHOBJ;
+    *solistp = prevso = NULL;
 
-    if ( next_line_tokens( &buf, &buflen, &toks ) != 2 ||
+    if ( ldap_int_next_line_tokens( &buf, &buflen, &toks ) != 2 ||
            strcasecmp( toks[ 0 ], "version" ) != 0 ) {
-       free_strarray( toks );
+       LDAP_VFREE( toks );
        return( LDAP_SEARCHPREF_ERR_SYNTAX );
     }
     version = atoi( toks[ 1 ] );
-    free_strarray( toks );
+    LDAP_VFREE( toks );
     if ( version != LDAP_SEARCHPREF_VERSION &&
            version != LDAP_SEARCHPREF_VERSION_ZERO ) {
        return( LDAP_SEARCHPREF_ERR_VERSION );
     }
 
     while ( buflen > 0 && ( rc = read_next_searchobj( &buf, &buflen, &so,
-           version )) == 0 && so != NULLSEARCHOBJ ) {
-       if ( prevso == NULLSEARCHOBJ ) {
+           version )) == 0 && so != NULL ) {
+       if ( prevso == NULL ) {
            *solistp = so;
        } else {
            prevso->so_next = so;
@@ -223,13 +227,16 @@ ldap_first_searchobj( struct ldap_searchobj *solist )
 struct ldap_searchobj *
 ldap_next_searchobj( struct ldap_searchobj *solist, struct ldap_searchobj *so )
 {
-    return( so == NULLSEARCHOBJ ? so : so->so_next );
+    return( so == NULL ? so : so->so_next );
 }
 
 
 
 static int
-read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
+read_next_searchobj(
+       char **bufp,
+       ber_len_t *blenp,
+       struct ldap_searchobj **sop,
        int soversion )
 {
     int                                i, j, tokcnt;
@@ -243,14 +250,14 @@ read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
     /*
      * Object type prompt comes first
      */
-    if (( tokcnt = next_line_tokens( bufp, blenp, &toks )) != 1 ) {
-       free_strarray( toks );
+    if (( tokcnt = ldap_int_next_line_tokens( bufp, blenp, &toks )) != 1 ) {
+       LDAP_VFREE( toks );
        return( tokcnt == 0 ? 0 : LDAP_SEARCHPREF_ERR_SYNTAX );
     }
 
     if (( so = (struct ldap_searchobj *)LDAP_CALLOC( 1,
            sizeof( struct ldap_searchobj ))) == NULL ) {
-       free_strarray( toks );
+       LDAP_VFREE( toks );
        return(  LDAP_SEARCHPREF_ERR_MEM );
     }
     so->so_objtypeprompt = toks[ 0 ];
@@ -260,8 +267,8 @@ read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
      * if this is post-version zero, options come next
      */
     if ( soversion > LDAP_SEARCHPREF_VERSION_ZERO ) {
-       if (( tokcnt = next_line_tokens( bufp, blenp, &toks )) < 1 ) {
-           free_strarray( toks );
+       if (( tokcnt = ldap_int_next_line_tokens( bufp, blenp, &toks )) < 1 ) {
+           LDAP_VFREE( toks );
            ldap_free_searchprefs( so );
            return( LDAP_SEARCHPREF_ERR_SYNTAX );
        }
@@ -272,14 +279,14 @@ read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
                }
            }
        }
-       free_strarray( toks );
+       LDAP_VFREE( toks );
     }
 
     /*
      * "Fewer choices" prompt is next
      */
-    if (( tokcnt = next_line_tokens( bufp, blenp, &toks )) != 1 ) {
-       free_strarray( toks );
+    if (( tokcnt = ldap_int_next_line_tokens( bufp, blenp, &toks )) != 1 ) {
+       LDAP_VFREE( toks );
        ldap_free_searchprefs( so );
        return( LDAP_SEARCHPREF_ERR_SYNTAX );
     }
@@ -289,8 +296,8 @@ read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
     /*
      * Filter prefix for "More Choices" searching is next
      */
-    if (( tokcnt = next_line_tokens( bufp, blenp, &toks )) != 1 ) {
-       free_strarray( toks );
+    if (( tokcnt = ldap_int_next_line_tokens( bufp, blenp, &toks )) != 1 ) {
+       LDAP_VFREE( toks );
        ldap_free_searchprefs( so );
        return( LDAP_SEARCHPREF_ERR_SYNTAX );
     }
@@ -300,8 +307,8 @@ read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
     /*
      * "Fewer Choices" filter tag comes next
      */
-    if (( tokcnt = next_line_tokens( bufp, blenp, &toks )) != 1 ) {
-       free_strarray( toks );
+    if (( tokcnt = ldap_int_next_line_tokens( bufp, blenp, &toks )) != 1 ) {
+       LDAP_VFREE( toks );
        ldap_free_searchprefs( so );
        return( LDAP_SEARCHPREF_ERR_SYNTAX );
     }
@@ -311,8 +318,8 @@ read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
     /*
      * Selection (disambiguation) attribute comes next
      */
-    if (( tokcnt = next_line_tokens( bufp, blenp, &toks )) != 1 ) {
-       free_strarray( toks );
+    if (( tokcnt = ldap_int_next_line_tokens( bufp, blenp, &toks )) != 1 ) {
+       LDAP_VFREE( toks );
        ldap_free_searchprefs( so );
        return( LDAP_SEARCHPREF_ERR_SYNTAX );
     }
@@ -322,8 +329,8 @@ read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
     /*
      * Label for selection (disambiguation) attribute
      */
-    if (( tokcnt = next_line_tokens( bufp, blenp, &toks )) != 1 ) {
-       free_strarray( toks );
+    if (( tokcnt = ldap_int_next_line_tokens( bufp, blenp, &toks )) != 1 ) {
+       LDAP_VFREE( toks );
        ldap_free_searchprefs( so );
        return( LDAP_SEARCHPREF_ERR_SYNTAX );
     }
@@ -333,8 +340,8 @@ read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
     /*
      * Search scope is next
      */
-    if (( tokcnt = next_line_tokens( bufp, blenp, &toks )) != 1 ) {
-       free_strarray( toks );
+    if (( tokcnt = ldap_int_next_line_tokens( bufp, blenp, &toks )) != 1 ) {
+       LDAP_VFREE( toks );
        ldap_free_searchprefs( so );
        return( LDAP_SEARCHPREF_ERR_SYNTAX );
     }
@@ -348,22 +355,22 @@ read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
        ldap_free_searchprefs( so );
        return( LDAP_SEARCHPREF_ERR_SYNTAX );
     }
-    free_strarray( toks );
+    LDAP_VFREE( toks );
 
 
     /*
      * "More Choices" search option list comes next
      */
     sa = &( so->so_salist );
-    while (( tokcnt = next_line_tokens( bufp, blenp, &toks )) > 0 ) {
+    while (( tokcnt = ldap_int_next_line_tokens( bufp, blenp, &toks )) > 0 ) {
        if ( tokcnt < 5 ) {
-           free_strarray( toks );
+           LDAP_VFREE( toks );
            ldap_free_searchprefs( so );
            return( LDAP_SEARCHPREF_ERR_SYNTAX );
        }
        if (( *sa = ( struct ldap_searchattr * ) LDAP_CALLOC( 1,
                sizeof( struct ldap_searchattr ))) == NULL ) {
-           free_strarray( toks );
+           LDAP_VFREE( toks );
            ldap_free_searchprefs( so );
            return(  LDAP_SEARCHPREF_ERR_MEM );
        }
@@ -388,15 +395,15 @@ read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
      * Match types are last
      */
     sm = &( so->so_smlist );
-    while (( tokcnt = next_line_tokens( bufp, blenp, &toks )) > 0 ) {
+    while (( tokcnt = ldap_int_next_line_tokens( bufp, blenp, &toks )) > 0 ) {
        if ( tokcnt < 2 ) {
-           free_strarray( toks );
+           LDAP_VFREE( toks );
            ldap_free_searchprefs( so );
            return( LDAP_SEARCHPREF_ERR_SYNTAX );
        }
        if (( *sm = ( struct ldap_searchmatch * ) LDAP_CALLOC( 1,
                sizeof( struct ldap_searchmatch ))) == NULL ) {
-           free_strarray( toks );
+           LDAP_VFREE( toks );
            ldap_free_searchprefs( so );
            return(  LDAP_SEARCHPREF_ERR_MEM );
        }