From: Kurt Zeilenga Date: Sun, 9 Feb 2003 00:53:24 +0000 (+0000) Subject: sync with HEAD X-Git-Tag: OPENLDAP_REL_ENG_2_1_13~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a6de32518e03c5cc5a09cec0dad08d2de0fa8c41;p=thirdparty%2Fopenldap.git sync with HEAD --- diff --git a/include/ldap.h b/include/ldap.h index 05468f43c8..f30a60ee1a 100644 --- a/include/ldap.h +++ b/include/ldap.h @@ -1,6 +1,6 @@ /* $OpenLDAP$ */ /* - * Copyright 1998-2002 The OpenLDAP Foundation, Redwood City, California, USA + * Copyright 1998-2003 The OpenLDAP Foundation, Redwood City, California, USA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -434,8 +434,9 @@ typedef struct ldapcontrol { #define LDAP_IS_LEAF 0x23 /* not LDAPv3 */ #define LDAP_ALIAS_DEREF_PROBLEM 0x24 -#define LDAP_SECURITY_ERROR(n) LDAP_RANGE((n),0x30,0x32) /* 48-50 */ +#define LDAP_SECURITY_ERROR(n) LDAP_RANGE((n),0x2F,0x32) /* 47-50 */ +#define LDAP_PROXY_AUTHZ_FAILURE 0x2F /* LDAPv3 proxy authorization */ #define LDAP_INAPPROPRIATE_AUTH 0x30 #define LDAP_INVALID_CREDENTIALS 0x31 #define LDAP_INSUFFICIENT_ACCESS 0x32 @@ -712,6 +713,14 @@ ldap_parse_extended_partial LDAP_P(( LDAPControl ***serverctrls, int freeit )); +LDAP_F( int ) +ldap_parse_intermediate_resp_result LDAP_P(( + LDAP *ld, + LDAPMessage *res, + char **retoidp, + struct berval **retdatap, + int freeit )); + /* * in abandon.c: */ @@ -910,6 +919,24 @@ LDAP_F( void ) ldap_uncache_request LDAP_P(( LDAP *ld, int msgid )); +/* + * LDAP Cancel Extended Operation + */ + +LDAP_F( int ) +ldap_cancel LDAP_P(( LDAP *ld, + int cancelid, + LDAPControl **sctrls, + LDAPControl **cctrls, + int *msgidp )); + +LDAP_F( int ) +ldap_cancel_s LDAP_P(( + LDAP *ld, + int cancelid, + LDAPControl **sctrl, + LDAPControl **cctrl )); + /* * in compare.c: */ @@ -1686,6 +1713,28 @@ ldap_parse_vlv_control LDAP_P(( struct berval **contextp, int *errcodep )); +/* + * LDAP Who Am I? (whoami.c) + */ + +LDAP_F( int ) +ldap_parse_whoami LDAP_P(( + LDAP *ld, + LDAPMessage *res, + struct berval **authzid )); + +LDAP_F( int ) +ldap_whoami LDAP_P(( LDAP *ld, + LDAPControl **sctrls, + LDAPControl **cctrls, + int *msgidp )); + +LDAP_F( int ) +ldap_whoami_s LDAP_P(( + LDAP *ld, + struct berval **authzid, + LDAPControl **sctrls, + LDAPControl **cctrls )); LDAP_END_DECL #endif /* _LDAP_H */ diff --git a/libraries/libavl/Makefile.in b/libraries/libavl/Makefile.in index f9c8e44028..e3fec60c76 100644 --- a/libraries/libavl/Makefile.in +++ b/libraries/libavl/Makefile.in @@ -1,5 +1,5 @@ # $OpenLDAP$ -## Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. +## Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. ## COPYING RESTRICTIONS APPLY, see COPYRIGHT file ## ## LIBAVL diff --git a/libraries/libavl/avl.c b/libraries/libavl/avl.c index 2614167709..a2b3e504e0 100644 --- a/libraries/libavl/avl.c +++ b/libraries/libavl/avl.c @@ -1,4 +1,9 @@ /* avl.c - routines to implement an avl tree */ +/* $OpenLDAP$ */ +/* + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ /* * Copyright (c) 1993 Regents of the University of Michigan. * All rights reserved. @@ -11,34 +16,41 @@ * is provided ``as is'' without express or implied warranty. */ -#ifndef lint -static char copyright[] = "@(#) Copyright (c) 1993 Regents of the University of Michigan.\nAll rights reserved.\n"; -static char avl_version[] = "AVL library version 1.0\n"; -#endif +#include "portable.h" -#include #include +#include + +#ifdef CSRIMALLOC +#define ber_memalloc malloc +#define ber_memrealloc realloc +#define ber_memfree free +#else +#include "lber.h" +#endif + +#define AVL_INTERNAL #include "avl.h" #define ROTATERIGHT(x) { \ Avlnode *tmp;\ - if ( *x == NULL || (*x)->avl_left == NULL ) {\ - (void) printf("RR error\n"); exit(1); \ + if ( *(x) == NULL || (*(x))->avl_left == NULL ) {\ + (void) fputs("RR error\n", stderr); exit( EXIT_FAILURE ); \ }\ - tmp = (*x)->avl_left;\ - (*x)->avl_left = tmp->avl_right;\ - tmp->avl_right = *x;\ - *x = tmp;\ + tmp = (*(x))->avl_left;\ + (*(x))->avl_left = tmp->avl_right;\ + tmp->avl_right = *(x);\ + *(x) = tmp;\ } #define ROTATELEFT(x) { \ Avlnode *tmp;\ - if ( *x == NULL || (*x)->avl_right == NULL ) {\ - (void) printf("RL error\n"); exit(1); \ + if ( *(x) == NULL || (*(x))->avl_right == NULL ) {\ + (void) fputs("RL error\n", stderr); exit( EXIT_FAILURE ); \ }\ - tmp = (*x)->avl_right;\ - (*x)->avl_right = tmp->avl_left;\ - tmp->avl_left = *x;\ - *x = tmp;\ + tmp = (*(x))->avl_right;\ + (*(x))->avl_right = tmp->avl_left;\ + tmp->avl_left = *(x);\ + *(x) = tmp;\ } /* @@ -46,20 +58,21 @@ static char avl_version[] = "AVL library version 1.0\n"; * and balance of an avl tree. */ -static -ravl_insert( iroot, data, taller, fcmp, fdup, depth ) - Avlnode **iroot; - caddr_t data; - int *taller; - IFP fcmp; /* comparison function */ - IFP fdup; /* function to call for duplicates */ - int depth; +static int +ravl_insert( + Avlnode **iroot, + void* data, + int *taller, + AVL_CMP fcmp, /* comparison function */ + AVL_DUP fdup, /* function to call for duplicates */ + int depth +) { int rc, cmp, tallersub; Avlnode *l, *r; if ( *iroot == 0 ) { - if ( (*iroot = (Avlnode *) malloc( sizeof( Avlnode ) )) + if ( (*iroot = (Avlnode *) ber_memalloc( sizeof( Avlnode ) )) == NULL ) { return( -1 ); } @@ -200,11 +213,8 @@ ravl_insert( iroot, data, taller, fcmp, fdup, depth ) * NOTE: this routine may malloc memory */ -avl_insert( root, data, fcmp, fdup ) - Avlnode **root; - caddr_t data; - IFP fcmp; - IFP fdup; +int +avl_insert( Avlnode **root, void* data, AVL_CMP fcmp, AVL_DUP fdup ) { int taller; @@ -216,11 +226,10 @@ avl_insert( root, data, fcmp, fdup ) * been shortened because of a deletion. */ -static -right_balance( root ) - Avlnode **root; +static int +right_balance( Avlnode **root ) { - int shorter; + int shorter = -1; Avlnode *r, *l; switch( (*root)->avl_bf ) { @@ -281,11 +290,10 @@ right_balance( root ) * been shortened because of a deletion. */ -static -left_balance( root ) - Avlnode **root; +static int +left_balance( Avlnode **root ) { - int shorter; + int shorter = -1; Avlnode *r, *l; switch( (*root)->avl_bf ) { @@ -348,16 +356,12 @@ left_balance( root ) * rebalancing. */ -static caddr_t -ravl_delete( root, data, fcmp, shorter ) - Avlnode **root; - caddr_t data; - IFP fcmp; - int *shorter; +static void* +ravl_delete( Avlnode **root, void* data, AVL_CMP fcmp, int *shorter ) { int shortersubtree = 0; int cmp; - caddr_t savedata; + void* savedata; Avlnode *minnode, *savenode; if ( *root == NULLAVL ) @@ -374,13 +378,13 @@ ravl_delete( root, data, fcmp, shorter ) if ( (*root)->avl_left == 0 ) { *root = (*root)->avl_right; *shorter = 1; - free( (char *) savenode ); + ber_memfree( (char *) savenode ); return( savedata ); /* no right child */ } else if ( (*root)->avl_right == 0 ) { *root = (*root)->avl_left; *shorter = 1; - free( (char *) savenode ); + ber_memfree( (char *) savenode ); return( savedata ); } @@ -441,23 +445,16 @@ ravl_delete( root, data, fcmp, shorter ) * the avl tree rooted at root. */ -caddr_t -avl_delete( root, data, fcmp ) - Avlnode **root; - caddr_t data; - IFP fcmp; +void* +avl_delete( Avlnode **root, void* data, AVL_CMP fcmp ) { int shorter; return( ravl_delete( root, data, fcmp, &shorter ) ); } -static -avl_inapply( root, fn, arg, stopflag ) - Avlnode *root; - IFP fn; - caddr_t arg; - int stopflag; +static int +avl_inapply( Avlnode *root, AVL_APPLY fn, void* arg, int stopflag ) { if ( root == 0 ) return( AVL_NOMORE ); @@ -476,12 +473,8 @@ avl_inapply( root, fn, arg, stopflag ) return( avl_inapply( root->avl_right, fn, arg, stopflag ) ); } -static -avl_postapply( root, fn, arg, stopflag ) - Avlnode *root; - IFP fn; - caddr_t arg; - int stopflag; +static int +avl_postapply( Avlnode *root, AVL_APPLY fn, void* arg, int stopflag ) { if ( root == 0 ) return( AVL_NOMORE ); @@ -499,12 +492,8 @@ avl_postapply( root, fn, arg, stopflag ) return( (*fn)( root->avl_data, arg ) ); } -static -avl_preapply( root, fn, arg, stopflag ) - Avlnode *root; - IFP fn; - caddr_t arg; - int stopflag; +static int +avl_preapply( Avlnode *root, AVL_APPLY fn, void* arg, int stopflag ) { if ( root == 0 ) return( AVL_NOMORE ); @@ -531,12 +520,8 @@ avl_preapply( root, fn, arg, stopflag ) * of nodes. */ -avl_apply( root, fn, arg, stopflag, type ) - Avlnode *root; - IFP fn; - caddr_t arg; - int stopflag; - int type; +int +avl_apply( Avlnode *root, AVL_APPLY fn, void* arg, int stopflag, int type ) { switch ( type ) { case AVL_INORDER: @@ -564,21 +549,23 @@ avl_apply( root, fn, arg, stopflag, type ) * AVL_NOMORE is returned. */ -avl_prefixapply( root, data, fmatch, marg, fcmp, carg, stopflag ) - Avlnode *root; - caddr_t data; - IFP fmatch; - caddr_t marg; - IFP fcmp; - caddr_t carg; - int stopflag; +int +avl_prefixapply( + Avlnode *root, + void* data, + AVL_CMP fmatch, + void* marg, + AVL_CMP fcmp, + void* carg, + int stopflag +) { int cmp; if ( root == 0 ) return( AVL_NOMORE ); - cmp = (*fcmp)( data, root->avl_data, carg ); + cmp = (*fcmp)( data, root->avl_data /* , carg */); if ( cmp == 0 ) { if ( (*fmatch)( root->avl_data, marg ) == stopflag ) return( stopflag ); @@ -613,9 +600,8 @@ avl_prefixapply( root, data, fmatch, marg, fcmp, carg, stopflag ) * number of items actually freed is returned. */ -avl_free( root, dfree ) - Avlnode *root; - IFP dfree; +int +avl_free( Avlnode *root, AVL_FREE dfree ) { int nleft, nright; @@ -631,6 +617,7 @@ avl_free( root, dfree ) if ( dfree ) (*dfree)( root->avl_data ); + ber_memfree( root ); return( nleft + nright + 1 ); } @@ -642,11 +629,8 @@ avl_free( root, dfree ) * < 0 if arg1 is less than arg2 and > 0 if arg1 is greater than arg2. */ -caddr_t -avl_find( root, data, fcmp ) - Avlnode *root; - caddr_t data; - IFP fcmp; +void* +avl_find( Avlnode *root, const void* data, AVL_CMP fcmp ) { int cmp; @@ -667,13 +651,10 @@ avl_find( root, data, fcmp ) * they match, non-zero otherwise. */ -caddr_t -avl_find_lin( root, data, fcmp ) - Avlnode *root; - caddr_t data; - IFP fcmp; +void* +avl_find_lin( Avlnode *root, const void* data, AVL_CMP fcmp ) { - caddr_t res; + void* res; if ( root == 0 ) return( NULL ); @@ -692,28 +673,28 @@ avl_find_lin( root, data, fcmp ) return( avl_find_lin( root->avl_right, data, fcmp ) ); } -static caddr_t *avl_list; +/* NON-REENTRANT INTERFACE */ + +static void* *avl_list; static int avl_maxlist; static int avl_nextlist; #define AVL_GRABSIZE 100 /* ARGSUSED */ -static -avl_buildlist( data, arg ) - caddr_t data; - int arg; +static int +avl_buildlist( void* data, void* arg ) { static int slots; - if ( avl_list == (caddr_t *) 0 ) { - avl_list = (caddr_t *) malloc(AVL_GRABSIZE * sizeof(caddr_t)); + if ( avl_list == (void* *) 0 ) { + avl_list = (void* *) ber_memalloc(AVL_GRABSIZE * sizeof(void*)); slots = AVL_GRABSIZE; avl_maxlist = 0; } else if ( avl_maxlist == slots ) { slots += AVL_GRABSIZE; - avl_list = (caddr_t *) realloc( (char *) avl_list, - (unsigned) slots * sizeof(caddr_t)); + avl_list = (void* *) ber_memrealloc( (char *) avl_list, + (unsigned) slots * sizeof(void*)); } avl_list[ avl_maxlist++ ] = data; @@ -733,13 +714,12 @@ avl_buildlist( data, arg ) * different trees) cannot be active at once. */ -caddr_t -avl_getfirst( root ) - Avlnode *root; +void* +avl_getfirst( Avlnode *root ) { if ( avl_list ) { - free( (char *) avl_list); - avl_list = (caddr_t *) 0; + ber_memfree( (char *) avl_list); + avl_list = (void* *) 0; } avl_maxlist = 0; avl_nextlist = 0; @@ -747,32 +727,37 @@ avl_getfirst( root ) if ( root == 0 ) return( 0 ); - (void) avl_apply( root, avl_buildlist, (caddr_t) 0, -1, AVL_INORDER ); + (void) avl_apply( root, avl_buildlist, (void*) 0, -1, AVL_INORDER ); return( avl_list[ avl_nextlist++ ] ); } -caddr_t -avl_getnext() +void* +avl_getnext( void ) { if ( avl_list == 0 ) return( 0 ); if ( avl_nextlist == avl_maxlist ) { - free( (caddr_t) avl_list); - avl_list = (caddr_t *) 0; + ber_memfree( (void*) avl_list); + avl_list = (void* *) 0; return( 0 ); } return( avl_list[ avl_nextlist++ ] ); } -avl_dup_error() +/* end non-reentrant code */ + + +int +avl_dup_error( void* left, void* right ) { return( -1 ); } -avl_dup_ok() +int +avl_dup_ok( void* left, void* right ) { return( 0 ); } diff --git a/libraries/libavl/testavl.c b/libraries/libavl/testavl.c index 71939f4985..6fd67df1dd 100644 --- a/libraries/libavl/testavl.c +++ b/libraries/libavl/testavl.c @@ -1,54 +1,61 @@ /* testavl.c - Test Tim Howes AVL code */ -#include -#include -#include "avl.h" +/* $OpenLDAP$ */ +/* + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ -char *strdup( s ) -char *s; -{ - char *new; +#include "portable.h" - if ( (new = (char *) malloc( strlen( s ) + 1 )) == NULL ) - return( NULL ); +#include - strcpy( new, s ); +#include +#include - return( new ); -} +#define AVL_INTERNAL +#define AVL_NONREENTRANT +#include "avl.h" -main( argc, argv ) -int argc; -char **argv; +static void ravl_print LDAP_P(( Avlnode *root, int depth )); +static void myprint LDAP_P(( Avlnode *root )); +static int avl_strcmp LDAP_P(( const void *s, const void *t )); + +int +main( int argc, char **argv ) { - Avlnode *tree = NULLAVL; + Avlnode *tree = NULL; char command[ 10 ]; char name[ 80 ]; char *p; - int free(), strcmp(); printf( "> " ); while ( fgets( command, sizeof( command ), stdin ) != NULL ) { switch( *command ) { case 'n': /* new tree */ ( void ) avl_free( tree, free ); - tree = NULLAVL; + tree = NULL; break; case 'p': /* print */ ( void ) myprint( tree ); break; case 't': /* traverse with first, next */ +#ifdef AVL_NONREENTRANT printf( "***\n" ); for ( p = (char * ) avl_getfirst( tree ); - p != NULL; p = (char *) avl_getnext( tree, p ) ) + p != NULL; + p = (char *) avl_getnext()) printf( "%s\n", p ); printf( "***\n" ); +#else + printf( "*** reentrant interface not implemented ***" ); +#endif break; case 'f': /* find */ printf( "data? " ); if ( fgets( name, sizeof( name ), stdin ) == NULL ) - exit( 0 ); + exit( EXIT_SUCCESS ); name[ strlen( name ) - 1 ] = '\0'; - if ( (p = (char *) avl_find( tree, name, strcmp )) + if ( (p = (char *) avl_find( tree, name, avl_strcmp )) == NULL ) printf( "Not found.\n\n" ); else @@ -57,22 +64,22 @@ char **argv; case 'i': /* insert */ printf( "data? " ); if ( fgets( name, sizeof( name ), stdin ) == NULL ) - exit( 0 ); + exit( EXIT_SUCCESS ); name[ strlen( name ) - 1 ] = '\0'; - if ( avl_insert( &tree, strdup( name ), strcmp, - avl_dup_error ) != OK ) + if ( avl_insert( &tree, strdup( name ), avl_strcmp, + avl_dup_error ) != 0 ) printf( "\nNot inserted!\n" ); break; case 'd': /* delete */ printf( "data? " ); if ( fgets( name, sizeof( name ), stdin ) == NULL ) - exit( 0 ); + exit( EXIT_SUCCESS ); name[ strlen( name ) - 1 ] = '\0'; - if ( avl_delete( &tree, name, strcmp ) == NULL ) + if ( avl_delete( &tree, name, avl_strcmp ) == NULL ) printf( "\nNot found!\n" ); break; case 'q': /* quit */ - exit( 0 ); + exit( EXIT_SUCCESS ); break; case '\n': break; @@ -82,12 +89,11 @@ char **argv; printf( "> " ); } - /* NOTREACHED */ + + return( 0 ); } -static ravl_print( root, depth ) -Avlnode *root; -int depth; +static void ravl_print( Avlnode *root, int depth ) { int i; @@ -98,20 +104,24 @@ int depth; for ( i = 0; i < depth; i++ ) printf( " " ); - printf( "%s %d\n", root->avl_data, root->avl_bf ); + printf( "%s %d\n", (char *) root->avl_data, root->avl_bf ); ravl_print( root->avl_left, depth+1 ); } -myprint( root ) -Avlnode *root; +static void myprint( Avlnode *root ) { printf( "********\n" ); if ( root == 0 ) printf( "\tNULL\n" ); else - ( void ) ravl_print( root, 0 ); + ravl_print( root, 0 ); printf( "********\n" ); } + +static int avl_strcmp( const void *s, const void *t ) +{ + return strcmp( s, t ); +} diff --git a/libraries/libldap/Makefile.in b/libraries/libldap/Makefile.in index 07a6272492..e624abce16 100644 --- a/libraries/libldap/Makefile.in +++ b/libraries/libldap/Makefile.in @@ -1,5 +1,5 @@ # $OpenLDAP$ -## Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. +## Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. ## COPYING RESTRICTIONS APPLY, see COPYRIGHT file ## ## Makefile.in for LDAP -lldap @@ -12,20 +12,22 @@ SRCS = bind.c open.c result.c error.c compare.c search.c \ controls.c messages.c references.c extended.c cyrus.c \ modify.c add.c modrdn.c delete.c abandon.c cache.c \ sasl.c sbind.c kbind.c unbind.c \ - filter.c free.c sort.c \ + filter.c free.c sort.c passwd.c whoami.c \ getdn.c getentry.c getattr.c getvalues.c addentry.c \ - request.c os-ip.c url.c sortctrl.c vlvctrl.c whoami.c \ + request.c os-ip.c url.c sortctrl.c vlvctrl.c \ init.c options.c print.c string.c util-int.c schema.c \ - charray.c tls.c os-local.c dnssrv.c utf-8.c utf-8-conv.c + charray.c tls.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \ + cancel.c OBJS = bind.lo open.lo result.lo error.lo compare.lo search.lo \ controls.lo messages.lo references.lo extended.lo cyrus.lo \ modify.lo add.lo modrdn.lo delete.lo abandon.lo cache.lo \ sasl.lo sbind.lo kbind.lo unbind.lo \ - filter.lo free.lo sort.lo \ + filter.lo free.lo sort.lo passwd.lo whoami.lo \ getdn.lo getentry.lo getattr.lo getvalues.lo addentry.lo \ - request.lo os-ip.lo url.lo sortctrl.lo vlvctrl.lo whoami.lo \ + request.lo os-ip.lo url.lo sortctrl.lo vlvctrl.lo \ init.lo options.lo print.lo string.lo util-int.lo schema.lo \ - charray.lo tls.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo + charray.lo tls.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \ + cancel.lo LDAP_INCDIR= ../../include LDAP_LIBDIR= ../../libraries diff --git a/libraries/libldap/controls.c b/libraries/libldap/controls.c index 6701defb9b..88ee4c9196 100644 --- a/libraries/libldap/controls.c +++ b/libraries/libldap/controls.c @@ -1,6 +1,6 @@ /* $OpenLDAP$ */ /* - * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ @@ -360,7 +360,7 @@ ldap_control_dup( const LDAPControl *c ) } /* - * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ /* Adapted for inclusion into OpenLDAP by Kurt D. Zeilenga */ @@ -410,7 +410,6 @@ ldap_create_control( LDAPControl **ctrlp ) { LDAPControl *ctrl; - struct berval *bvalp; assert( requestOID != NULL ); assert( ber != NULL ); @@ -421,14 +420,11 @@ ldap_create_control( return LDAP_NO_MEMORY; } - if ( ber_flatten( ber, &bvalp ) == -1 ) { + if ( ber_flatten2( ber, &ctrl->ldctl_value, 1 ) == -1 ) { LDAP_FREE( ctrl ); return LDAP_NO_MEMORY; } - ctrl->ldctl_value = *bvalp; - ber_memfree( bvalp ); - ctrl->ldctl_oid = LDAP_STRDUP( requestOID ); ctrl->ldctl_iscritical = iscritical; diff --git a/libraries/libldap/error.c b/libraries/libldap/error.c index faad577502..01c6b96a3a 100644 --- a/libraries/libldap/error.c +++ b/libraries/libldap/error.c @@ -1,6 +1,6 @@ /* $OpenLDAP$ */ /* - * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ @@ -53,6 +53,7 @@ static struct ldaperror ldap_builtin_errlist[] = { {LDAP_IS_LEAF, "Entry is a leaf" }, {LDAP_ALIAS_DEREF_PROBLEM, "Alias dereferencing problem" }, + {LDAP_PROXY_AUTHZ_FAILURE, "Proxy Authorization Failure" }, {LDAP_INAPPROPRIATE_AUTH, "Inappropriate authentication" }, {LDAP_INVALID_CREDENTIALS, "Invalid credentials" }, {LDAP_INSUFFICIENT_ACCESS, "Insufficient access" }, diff --git a/libraries/libldap/ftest.c b/libraries/libldap/ftest.c index f61298992e..a3f06eb49c 100644 --- a/libraries/libldap/ftest.c +++ b/libraries/libldap/ftest.c @@ -1,6 +1,6 @@ /* $OpenLDAP$ */ /* - * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ /* OpenLDAP Filter API Test */ @@ -76,7 +76,7 @@ main( int argc, char *argv[] ) static int filter2ber( char *filter ) { int rc; - struct berval *bv = NULL; + struct berval bv = {0}; BerElement *ber; printf( "Filter: %s\n", filter ); @@ -93,17 +93,16 @@ static int filter2ber( char *filter ) return EXIT_FAILURE; } - rc = ber_flatten( ber, &bv ); + rc = ber_flatten2( ber, &bv, 0 ); if( rc < 0 ) { - perror( "ber_flatten" ); + perror( "ber_flatten2" ); return EXIT_FAILURE; } - printf( "BER encoding (len=%ld):\n", (long) bv->bv_len ); - ber_bprint( bv->bv_val, bv->bv_len ); + printf( "BER encoding (len=%ld):\n", (long) bv.bv_len ); + ber_bprint( bv.bv_val, bv.bv_len ); - ber_free( ber, 0 ); - ber_bvfree( bv ); + ber_free( ber, 1 ); return EXIT_SUCCESS; } diff --git a/libraries/libldap/libldap.dsp b/libraries/libldap/libldap.dsp index 9bae2d963e..c457cd9c1c 100644 --- a/libraries/libldap/libldap.dsp +++ b/libraries/libldap/libldap.dsp @@ -147,6 +147,10 @@ SOURCE=.\cache.c # End Source File # Begin Source File +SOURCE=.\cancel.c +# End Source File +# Begin Source File + SOURCE=.\charray.c # End Source File # Begin Source File @@ -283,6 +287,10 @@ SOURCE=".\os-ip.c" # End Source File # Begin Source File +SOURCE=.\passwd.c +# End Source File +# Begin Source File + SOURCE=..\..\include\portable.h # End Source File # Begin Source File @@ -357,5 +365,9 @@ SOURCE=".\util-int.c" SOURCE=.\vlvctrl.c # End Source File +# Begin Source File + +SOURCE=.\whoami.c +# End Source File # End Target # End Project