mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-29 11:09:34 -05:00
SLAPD and tools compile and link!
LTHREAD still needs work.
This commit is contained in:
parent
43e6fc8e76
commit
c4b1286fa9
23 changed files with 487 additions and 485 deletions
25
configure
vendored
25
configure
vendored
|
|
@ -5862,6 +5862,7 @@ for ac_func in \
|
|||
lockf \
|
||||
memcpy \
|
||||
memmove \
|
||||
mkstemp \
|
||||
mktime \
|
||||
select \
|
||||
setpwfile \
|
||||
|
|
@ -5881,12 +5882,12 @@ for ac_func in \
|
|||
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:5885: checking for $ac_func" >&5
|
||||
echo "configure:5886: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5890 "configure"
|
||||
#line 5891 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
|
|
@ -5909,7 +5910,7 @@ $ac_func();
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
if { (eval echo configure:5914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
|
|
@ -5937,12 +5938,12 @@ done
|
|||
for ac_func in getopt strdup
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:5941: checking for $ac_func" >&5
|
||||
echo "configure:5942: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5946 "configure"
|
||||
#line 5947 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
|
|
@ -5965,7 +5966,7 @@ $ac_func();
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
if { (eval echo configure:5970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
|
|
@ -5995,13 +5996,13 @@ done
|
|||
# Check Configuration
|
||||
|
||||
echo $ac_n "checking declaration of sys_errlist""... $ac_c" 1>&6
|
||||
echo "configure:5999: checking declaration of sys_errlist" >&5
|
||||
echo "configure:6000: checking declaration of sys_errlist" >&5
|
||||
if eval "test \"`echo '$''{'ol_cv_dcl_sys_errlist'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6005 "configure"
|
||||
#line 6006 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
@ -6011,7 +6012,7 @@ int main() {
|
|||
char *c = (char *) *sys_errlist
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
ol_cv_dcl_sys_errlist=yes
|
||||
else
|
||||
|
|
@ -6032,20 +6033,20 @@ if test $ol_cv_dcl_sys_errlist = no ; then
|
|||
EOF
|
||||
|
||||
echo $ac_n "checking existence of sys_errlist""... $ac_c" 1>&6
|
||||
echo "configure:6036: checking existence of sys_errlist" >&5
|
||||
echo "configure:6037: checking existence of sys_errlist" >&5
|
||||
if eval "test \"`echo '$''{'ol_cv_have_sys_errlist'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6042 "configure"
|
||||
#line 6043 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <errno.h>
|
||||
int main() {
|
||||
char *c = (char *) *sys_errlist
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
if { (eval echo configure:6050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
rm -rf conftest*
|
||||
ol_cv_have_sys_errlist=yes
|
||||
else
|
||||
|
|
|
|||
|
|
@ -740,6 +740,7 @@ AC_CHECK_FUNCS( \
|
|||
lockf \
|
||||
memcpy \
|
||||
memmove \
|
||||
mkstemp \
|
||||
mktime \
|
||||
select \
|
||||
setpwfile \
|
||||
|
|
|
|||
127
include/ldbm.h
127
include/ldbm.h
|
|
@ -3,39 +3,61 @@
|
|||
#ifndef _LDBM_H_
|
||||
#define _LDBM_H_
|
||||
|
||||
#ifdef LDBM_USE_GDBM
|
||||
#ifdef LDBM_USE_DBBTREE
|
||||
|
||||
/*****************************************************************
|
||||
* *
|
||||
* use gdbm if possible *
|
||||
* use berkeley db btree package *
|
||||
* *
|
||||
*****************************************************************/
|
||||
|
||||
#include <gdbm.h>
|
||||
#include <sys/types.h>
|
||||
#include <limits.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
typedef datum Datum;
|
||||
#ifdef HAVE_DB185_H
|
||||
# include <db_185.h>
|
||||
#else
|
||||
# include <db.h>
|
||||
# ifdef HAVE_BERKELEY_DB2
|
||||
# define R_NOOVERWRITE DB_NOOVERWRITE
|
||||
# define DEFAULT_DB_PAGE_SIZE 1024
|
||||
# endif
|
||||
#endif
|
||||
|
||||
typedef GDBM_FILE LDBM;
|
||||
|
||||
extern gdbm_error gdbm_errno;
|
||||
typedef DBT Datum;
|
||||
#define dsize size
|
||||
#define dptr data
|
||||
|
||||
typedef DB *LDBM;
|
||||
|
||||
#define DB_TYPE DB_BTREE
|
||||
|
||||
/* for ldbm_open */
|
||||
#define LDBM_READER GDBM_READER
|
||||
#define LDBM_WRITER GDBM_WRITER
|
||||
#define LDBM_WRCREAT GDBM_WRCREAT
|
||||
#define LDBM_NEWDB GDBM_NEWDB
|
||||
#define LDBM_FAST GDBM_FAST
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
# define LDBM_READER DB_RDONLY
|
||||
# define LDBM_WRITER 0x00000 /* hopefully */
|
||||
# define LDBM_WRCREAT (DB_NOMMAP|DB_CREATE|DB_THREAD)
|
||||
# define LDBM_NEWDB (DB_TRUNCATE|DB_CREATE|DB_THREAD)
|
||||
#else
|
||||
# define LDBM_READER O_RDONLY
|
||||
# define LDBM_WRITER O_RDWR
|
||||
# define LDBM_WRCREAT (O_RDWR|O_CREAT)
|
||||
# define LDBM_NEWDB (O_RDWR|O_TRUNC|O_CREAT)
|
||||
#endif
|
||||
|
||||
#define LDBM_SUFFIX ".gdbm"
|
||||
# define LDBM_FAST 0
|
||||
|
||||
#define LDBM_SUFFIX ".dbb"
|
||||
#define LDBM_ORDERED 1
|
||||
|
||||
/* for ldbm_insert */
|
||||
#define LDBM_INSERT GDBM_INSERT
|
||||
#define LDBM_REPLACE GDBM_REPLACE
|
||||
#define LDBM_INSERT R_NOOVERWRITE
|
||||
#define LDBM_REPLACE 0
|
||||
#define LDBM_SYNC 0x80000000
|
||||
|
||||
#else /* end of gdbm */
|
||||
|
||||
#ifdef LDBM_USE_DBHASH
|
||||
#elif defined( LDBM_USE_DBHASH )
|
||||
|
||||
/*****************************************************************
|
||||
* *
|
||||
|
|
@ -47,7 +69,7 @@ extern gdbm_error gdbm_errno;
|
|||
#include <limits.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#ifdef LDBM_USE_DB2_COMPAT185
|
||||
#ifdef HAVE_DB185_H
|
||||
# include <db_185.h>
|
||||
#else
|
||||
# include <db.h>
|
||||
|
|
@ -86,69 +108,38 @@ typedef DB *LDBM;
|
|||
#define LDBM_REPLACE 0
|
||||
#define LDBM_SYNC 0x80000000
|
||||
|
||||
extern int errno;
|
||||
|
||||
#else /* end of db hash */
|
||||
|
||||
#ifdef LDBM_USE_DBBTREE
|
||||
#elif defined( HAVE_GDBM )
|
||||
|
||||
/*****************************************************************
|
||||
* *
|
||||
* use berkeley db btree package *
|
||||
* use gdbm if possible *
|
||||
* *
|
||||
*****************************************************************/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <limits.h>
|
||||
#include <fcntl.h>
|
||||
#include <gdbm.h>
|
||||
|
||||
#ifdef LDBM_USE_DB2_COMPAT185
|
||||
# include <db_185.h>
|
||||
#else
|
||||
# include <db.h>
|
||||
# ifdef LDBM_USE_DB2
|
||||
# define R_NOOVERWRITE DB_NOOVERWRITE
|
||||
# define DEFAULT_DB_PAGE_SIZE 1024
|
||||
# endif
|
||||
#endif
|
||||
typedef datum Datum;
|
||||
|
||||
typedef GDBM_FILE LDBM;
|
||||
|
||||
typedef DBT Datum;
|
||||
#define dsize size
|
||||
#define dptr data
|
||||
|
||||
typedef DB *LDBM;
|
||||
|
||||
#define DB_TYPE DB_BTREE
|
||||
extern gdbm_error gdbm_errno;
|
||||
|
||||
/* for ldbm_open */
|
||||
#ifdef LDBM_USE_DB2
|
||||
# define LDBM_READER DB_RDONLY
|
||||
# define LDBM_WRITER 0x00000 /* hopefully */
|
||||
# define LDBM_WRCREAT (DB_NOMMAP|DB_CREATE|DB_THREAD)
|
||||
# define LDBM_NEWDB (DB_TRUNCATE|DB_CREATE|DB_THREAD)
|
||||
#else
|
||||
# define LDBM_READER O_RDONLY
|
||||
# define LDBM_WRITER O_RDWR
|
||||
# define LDBM_WRCREAT (O_RDWR|O_CREAT)
|
||||
# define LDBM_NEWDB (O_RDWR|O_TRUNC|O_CREAT)
|
||||
#endif
|
||||
#define LDBM_READER GDBM_READER
|
||||
#define LDBM_WRITER GDBM_WRITER
|
||||
#define LDBM_WRCREAT GDBM_WRCREAT
|
||||
#define LDBM_NEWDB GDBM_NEWDB
|
||||
#define LDBM_FAST GDBM_FAST
|
||||
|
||||
# define LDBM_FAST 0
|
||||
|
||||
#define LDBM_SUFFIX ".dbb"
|
||||
#define LDBM_ORDERED 1
|
||||
#define LDBM_SUFFIX ".gdbm"
|
||||
|
||||
/* for ldbm_insert */
|
||||
#define LDBM_INSERT R_NOOVERWRITE
|
||||
#define LDBM_REPLACE 0
|
||||
#define LDBM_INSERT GDBM_INSERT
|
||||
#define LDBM_REPLACE GDBM_REPLACE
|
||||
#define LDBM_SYNC 0x80000000
|
||||
|
||||
extern int errno;
|
||||
|
||||
#else /* end of db btree */
|
||||
|
||||
#ifdef LDBM_USE_NDBM
|
||||
#elif defined( HAVE_NDBM )
|
||||
|
||||
/*****************************************************************
|
||||
* *
|
||||
|
|
@ -157,6 +148,7 @@ extern int errno;
|
|||
*****************************************************************/
|
||||
|
||||
#include <ndbm.h>
|
||||
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
|
|
@ -179,10 +171,7 @@ typedef DBM *LDBM;
|
|||
#define LDBM_REPLACE DBM_REPLACE
|
||||
#define LDBM_SYNC 0
|
||||
|
||||
#endif /* ndbm */
|
||||
#endif /* db hash */
|
||||
#endif /* db btree */
|
||||
#endif /* gdbm */
|
||||
#endif
|
||||
|
||||
int ldbm_errno( LDBM ldbm );
|
||||
LDBM ldbm_open( char *name, int rw, int mode, int dbcachesize );
|
||||
|
|
@ -194,7 +183,7 @@ Datum ldbm_fetch( LDBM ldbm, Datum key );
|
|||
int ldbm_store( LDBM ldbm, Datum key, Datum data, int flags );
|
||||
int ldbm_delete( LDBM ldbm, Datum key );
|
||||
|
||||
#if LDBM_USE_DB2
|
||||
#if HAVE_BERKELEY_DB2
|
||||
void *ldbm_malloc( size_t size );
|
||||
Datum ldbm_firstkey( LDBM ldbm, DBC **dbch );
|
||||
Datum ldbm_nextkey( LDBM ldbm, Datum key, DBC *dbcp );
|
||||
|
|
|
|||
|
|
@ -248,6 +248,9 @@ is provided ``as is'' without express or implied warranty.
|
|||
/* Define if you have the memmove function. */
|
||||
#undef HAVE_MEMMOVE
|
||||
|
||||
/* Define if you have the mkstemp function. */
|
||||
#undef HAVE_MKSTEMP
|
||||
|
||||
/* Define if you have the mktime function. */
|
||||
#undef HAVE_MKTIME
|
||||
|
||||
|
|
|
|||
|
|
@ -99,18 +99,18 @@ do_abandon( LDAP *ld, int origid, int msgid )
|
|||
err = -1;
|
||||
ld->ld_errno = LDAP_NO_MEMORY;
|
||||
} else {
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
if ( ld->ld_sb.sb_naddr > 0 ) {
|
||||
err = ber_printf( ber, "{isti}",
|
||||
++ld->ld_msgid, ld->ld_cldapdn,
|
||||
LDAP_REQ_ABANDON, msgid );
|
||||
} else {
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
err = ber_printf( ber, "{iti}", ++ld->ld_msgid,
|
||||
LDAP_REQ_ABANDON, msgid );
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
}
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
|
||||
if ( err == -1 ) {
|
||||
ld->ld_errno = LDAP_ENCODING_ERROR;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#include "portable.h"
|
||||
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
|
||||
#ifndef lint
|
||||
static char copyright[] = "@(#) Copyright (c) 1990, 1994 Regents of the University of Michigan.\nAll rights reserved.\n";
|
||||
|
|
@ -40,17 +40,14 @@ struct cldap_retinfo {
|
|||
long cri_timeout;
|
||||
};
|
||||
|
||||
#ifdef NEEDPROTOS
|
||||
static int add_addr( LDAP *ld, struct sockaddr *sap );
|
||||
static int cldap_result( LDAP *ld, int msgid, LDAPMessage **res,
|
||||
struct cldap_retinfo *crip, char *base );
|
||||
static int cldap_parsemsg( LDAP *ld, int msgid, BerElement *ber,
|
||||
LDAPMessage **res, char *base );
|
||||
#else /* NEEDPROTOS */
|
||||
static int add_addr();
|
||||
static int cldap_result();
|
||||
static int cldap_parsemsg();
|
||||
#endif /* NEEDPROTOS */
|
||||
static int add_addr LDAP_P((
|
||||
LDAP *ld, struct sockaddr *sap ));
|
||||
static int cldap_result LDAP_P((
|
||||
LDAP *ld, int msgid, LDAPMessage **res,
|
||||
struct cldap_retinfo *crip, char *base ));
|
||||
static int cldap_parsemsg LDAP_P((
|
||||
LDAP *ld, int msgid, BerElement *ber,
|
||||
LDAPMessage **res, char *base ));
|
||||
|
||||
/*
|
||||
* cldap_open - initialize and connect to an ldap server. A magic cookie to
|
||||
|
|
@ -525,4 +522,4 @@ cldap_parsemsg( LDAP *ld, int msgid, BerElement *ber,
|
|||
*res = chain;
|
||||
return(( *res == NULLMSG ) ? rc : ldap_result2error( ld, *res, 0 ));
|
||||
}
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ ldap_err2string( int err )
|
|||
return( "Unknown error" );
|
||||
}
|
||||
|
||||
#ifndef NO_USERINTERFACE
|
||||
#ifdef LDAP_LIBUI
|
||||
void
|
||||
ldap_perror( LDAP *ld, char *s )
|
||||
{
|
||||
|
|
@ -119,7 +119,7 @@ ldap_perror( LDAP *ld, char *s )
|
|||
{
|
||||
}
|
||||
|
||||
#endif /* NO_USERINTERFACE */
|
||||
#endif /* !LDAP_LIBUI */
|
||||
|
||||
|
||||
int
|
||||
|
|
|
|||
|
|
@ -255,10 +255,10 @@ ldap_get_kerberosv4_credentials( LDAP *ld, char *who, char *service, int *len )
|
|||
Debug( LDAP_DEBUG_TRACE, "ldap_get_kerberosv4_credentials\n", 0, 0, 0 );
|
||||
|
||||
if ( (err = krb_get_tf_realm( tkt_string(), realm )) != KSUCCESS ) {
|
||||
#ifndef NO_USERINTERFACE
|
||||
#ifdef LDAP_LIBUI
|
||||
fprintf( stderr, "krb_get_tf_realm failed (%s)\n",
|
||||
krb_err_txt[err] );
|
||||
#endif /* NO_USERINTERFACE */
|
||||
#endif /* LDAP_LIBUI */
|
||||
ld->ld_errno = LDAP_INVALID_CREDENTIALS;
|
||||
return( NULL );
|
||||
}
|
||||
|
|
@ -271,9 +271,9 @@ ldap_get_kerberosv4_credentials( LDAP *ld, char *who, char *service, int *len )
|
|||
|
||||
if ( (err = krb_mk_req( &ktxt, service, krbinstance, realm, 0 ))
|
||||
!= KSUCCESS ) {
|
||||
#ifndef NO_USERINTERFACE
|
||||
#ifdef LDAP_LIBUI
|
||||
fprintf( stderr, "krb_mk_req failed (%s)\n", krb_err_txt[err] );
|
||||
#endif /* NO_USERINTERFACE */
|
||||
#endif /* LDAP_LIBUI */
|
||||
ld->ld_errno = LDAP_INVALID_CREDENTIALS;
|
||||
return( NULL );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ static void merge_error_info LDAP_P(( LDAP *ld, LDAPRequest *parentr, LDAPReques
|
|||
static int read1msg LDAP_P(( LDAP *ld, int msgid, int all, Sockbuf *sb,
|
||||
LDAPMessage **result ));
|
||||
#endif /* LDAP_REFERRALS */
|
||||
#if defined( CLDAP ) || !defined( LDAP_REFERRALS )
|
||||
#if defined( LDAP_CONNECTIONLESS ) || !defined( LDAP_REFERRALS )
|
||||
static int ldap_select1 LDAP_P(( LDAP *ld, struct timeval *timeout ));
|
||||
#endif
|
||||
|
||||
|
|
@ -588,7 +588,7 @@ merge_error_info( LDAP *ld, LDAPRequest *parentr, LDAPRequest *lr )
|
|||
|
||||
|
||||
|
||||
#if defined( CLDAP ) || !defined( LDAP_REFERRALS )
|
||||
#if defined( LDAP_CONNECTIONLESS ) || !defined( LDAP_REFERRALS )
|
||||
#if !defined( MACOS ) && !defined( DOS ) && !defined( _WIN32 )
|
||||
static int
|
||||
ldap_select1( LDAP *ld, struct timeval *timeout )
|
||||
|
|
@ -597,11 +597,13 @@ ldap_select1( LDAP *ld, struct timeval *timeout )
|
|||
static int tblsize;
|
||||
|
||||
if ( tblsize == 0 ) {
|
||||
#ifdef USE_SYSCONF
|
||||
#ifdef HAVE_SYSCONF
|
||||
tblsize = sysconf( _SC_OPEN_MAX );
|
||||
#else /* !USE_SYSCONF */
|
||||
#elif HAVE_GETDTABLESIZE
|
||||
tblsize = getdtablesize();
|
||||
#endif /* !USE_SYSCONF */
|
||||
#else
|
||||
tblsize = FD_SETSIZE;
|
||||
#endif
|
||||
#ifdef FD_SETSIZE
|
||||
if ( tblsize > FD_SETSIZE ) {
|
||||
tblsize = FD_SETSIZE;
|
||||
|
|
@ -782,7 +784,7 @@ ldap_mark_abandoned( LDAP *ld, int msgid )
|
|||
}
|
||||
|
||||
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
int
|
||||
cldap_getmsg( LDAP *ld, struct timeval *timeout, BerElement *ber )
|
||||
{
|
||||
|
|
@ -808,4 +810,4 @@ cldap_getmsg( LDAP *ld, struct timeval *timeout, BerElement *ber )
|
|||
|
||||
return( tag );
|
||||
}
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
|
|
|
|||
|
|
@ -117,19 +117,19 @@ ldap_build_search_req( LDAP *ld, char *base, int scope, char *filter,
|
|||
base = "";
|
||||
}
|
||||
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
if ( ld->ld_sb.sb_naddr > 0 ) {
|
||||
err = ber_printf( ber, "{ist{seeiib", ++ld->ld_msgid,
|
||||
ld->ld_cldapdn, LDAP_REQ_SEARCH, base, scope, ld->ld_deref,
|
||||
ld->ld_sizelimit, ld->ld_timelimit, attrsonly );
|
||||
} else {
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
err = ber_printf( ber, "{it{seeiib", ++ld->ld_msgid,
|
||||
LDAP_REQ_SEARCH, base, scope, ld->ld_deref,
|
||||
ld->ld_sizelimit, ld->ld_timelimit, attrsonly );
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
}
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
|
||||
if ( err == -1 ) {
|
||||
ld->ld_errno = LDAP_ENCODING_ERROR;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#ifdef MACOS
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef MACOS
|
||||
#ifdef THINK_C
|
||||
#include <console.h>
|
||||
#include <unix.h>
|
||||
|
|
@ -31,21 +32,20 @@
|
|||
#include "lber.h"
|
||||
#include "ldap.h"
|
||||
|
||||
/* including the "internal" defs is legit and nec. since this test routine has
|
||||
* a-priori knowledge of libldap internal workings.
|
||||
* hodges@stanford.edu 5-Feb-96
|
||||
*/
|
||||
#include "ldap-int.h"
|
||||
|
||||
#if !defined( PCNFS ) && !defined( WINSOCK ) && !defined( MACOS )
|
||||
#define MOD_USE_BVALS
|
||||
#endif /* !PCNFS && !WINSOCK && !MACOS */
|
||||
|
||||
#ifdef NEEDPROTOS
|
||||
static void handle_result( LDAP *ld, LDAPMessage *lm );
|
||||
static void print_ldap_result( LDAP *ld, LDAPMessage *lm, char *s );
|
||||
static void print_search_entry( LDAP *ld, LDAPMessage *res );
|
||||
static void free_list( char **list );
|
||||
#else
|
||||
static void handle_result();
|
||||
static void print_ldap_result();
|
||||
static void print_search_entry();
|
||||
static void free_list();
|
||||
#endif /* NEEDPROTOS */
|
||||
static void handle_result LDAP_P(( LDAP *ld, LDAPMessage *lm ));
|
||||
static void print_ldap_result LDAP_P(( LDAP *ld, LDAPMessage *lm, char *s ));
|
||||
static void print_search_entry LDAP_P(( LDAP *ld, LDAPMessage *res ));
|
||||
static void free_list LDAP_P(( char **list ));
|
||||
|
||||
#define NOCACHEERRMSG "don't compile with -DNO_CACHE if you desire local caching"
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ main(
|
|||
#endif /* WINSOCK */
|
||||
int argc, char **argv )
|
||||
{
|
||||
LDAP *ld;
|
||||
LDAP *ld = NULL;
|
||||
int i, c, port, cldapflg, errflg, method, id, msgtype;
|
||||
char line[256], command1, command2, command3;
|
||||
char passwd[64], dn[256], rdn[64], attr[64], value[256];
|
||||
|
|
@ -316,11 +316,11 @@ main(
|
|||
while (( c = getopt( argc, argv, "uh:d:s:p:t:T:" )) != -1 ) {
|
||||
switch( c ) {
|
||||
case 'u':
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
cldapflg++;
|
||||
#else /* CLDAP */
|
||||
printf( "Compile with -DCLDAP for UDP support\n" );
|
||||
#endif /* CLDAP */
|
||||
#else /* LDAP_CONNECTIONLESS */
|
||||
printf( "Compile with -DLDAP_CONNECTIONLESS for UDP support\n" );
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
|
|
@ -377,9 +377,9 @@ main(
|
|||
host == NULL ? "(null)" : host, port );
|
||||
|
||||
if ( cldapflg ) {
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
ld = cldap_open( host, port );
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
} else {
|
||||
ld = ldap_open( host, port );
|
||||
}
|
||||
|
|
@ -567,10 +567,10 @@ main(
|
|||
break;
|
||||
|
||||
case 'q': /* quit */
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
if ( cldapflg )
|
||||
cldap_close( ld );
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
#ifdef LDAP_REFERRALS
|
||||
if ( !cldapflg )
|
||||
#else /* LDAP_REFERRALS */
|
||||
|
|
@ -636,7 +636,7 @@ main(
|
|||
attrsonly = atoi( line );
|
||||
|
||||
if ( cldapflg ) {
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
getline( line, sizeof(line), stdin,
|
||||
"Requestor DN (for logging)? " );
|
||||
if ( cldap_search_s( ld, dn, scope, filter, types,
|
||||
|
|
@ -648,7 +648,7 @@ main(
|
|||
handle_result( ld, res );
|
||||
res = NULLMSG;
|
||||
}
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
} else {
|
||||
if (( id = ldap_search( ld, dn, scope, filter,
|
||||
types, attrsonly )) == -1 ) {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include <ctype.h>
|
||||
#include <time.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef MACOS
|
||||
#include "macos.h"
|
||||
#else /* MACOS */
|
||||
|
|
@ -29,41 +30,36 @@
|
|||
#include "ldap.h"
|
||||
#include "disptmpl.h"
|
||||
|
||||
#ifdef NEEDPROTOS
|
||||
static int do_entry2text( LDAP *ld, char *buf, char *base, LDAPMessage *entry,
|
||||
#include "ldapconfig.h"
|
||||
|
||||
static int do_entry2text LDAP_P((
|
||||
LDAP *ld, char *buf, char *base, LDAPMessage *entry,
|
||||
struct ldap_disptmpl *tmpl, char **defattrs, char ***defvals,
|
||||
writeptype writeproc, void *writeparm, char *eol, int rdncount,
|
||||
unsigned long opts, char *urlprefix );
|
||||
static int do_entry2text_search( LDAP *ld, char *dn, char *base,
|
||||
unsigned long opts, char *urlprefix ));
|
||||
static int do_entry2text_search LDAP_P((
|
||||
LDAP *ld, char *dn, char *base,
|
||||
LDAPMessage *entry, struct ldap_disptmpl *tmpllist, char **defattrs,
|
||||
char ***defvals, writeptype writeproc, void *writeparm, char *eol,
|
||||
int rdncount, unsigned long opts, char *urlprefix );
|
||||
static int do_vals2text( LDAP *ld, char *buf, char **vals, char *label,
|
||||
int rdncount, unsigned long opts, char *urlprefix ));
|
||||
static int do_vals2text LDAP_P((
|
||||
LDAP *ld, char *buf, char **vals, char *label,
|
||||
int labelwidth, unsigned long syntaxid, writeptype writeproc,
|
||||
void *writeparm, char *eol, int rdncount, char *urlprefix );
|
||||
static int max_label_len( struct ldap_disptmpl *tmpl );
|
||||
static int output_label( char *buf, char *label, int width,
|
||||
writeptype writeproc, void *writeparm, char *eol, int html );
|
||||
static int output_dn( char *buf, char *dn, int width, int rdncount,
|
||||
writeptype writeproc, void *writeparm, char *eol, char *urlprefix );
|
||||
static void strcat_escaped( char *s1, char *s2 );
|
||||
static char *time2text( char *ldtimestr, int dateonly );
|
||||
static long gtime( struct tm *tm );
|
||||
static int searchaction( LDAP *ld, char *buf, char *base, LDAPMessage *entry,
|
||||
void *writeparm, char *eol, int rdncount, char *urlprefix ));
|
||||
static int max_label_len LDAP_P(( struct ldap_disptmpl *tmpl ));
|
||||
static int output_label LDAP_P((
|
||||
char *buf, char *label, int width,
|
||||
writeptype writeproc, void *writeparm, char *eol, int html ));
|
||||
static int output_dn LDAP_P((
|
||||
char *buf, char *dn, int width, int rdncount,
|
||||
writeptype writeproc, void *writeparm, char *eol, char *urlprefix ));
|
||||
static void strcat_escaped LDAP_P(( char *s1, char *s2 ));
|
||||
static char *time2text LDAP_P(( char *ldtimestr, int dateonly ));
|
||||
static long gtime LDAP_P(( struct tm *tm ));
|
||||
static int searchaction LDAP_P((
|
||||
LDAP *ld, char *buf, char *base, LDAPMessage *entry,
|
||||
char *dn, struct ldap_tmplitem *tip, int labelwidth, int rdncount,
|
||||
writeptype writeproc, void *writeparm, char *eol, char *urlprefix );
|
||||
#else /* NEEDPROTOS */
|
||||
static int do_entry2text();
|
||||
static int do_entry2text_search();
|
||||
static int do_vals2text();
|
||||
static int max_label_len();
|
||||
static int output_label();
|
||||
static int output_dn();
|
||||
static void strcat_escaped();
|
||||
static char *time2text();
|
||||
static long gtime();
|
||||
static int searchaction();
|
||||
#endif /* NEEDPROTOS */
|
||||
writeptype writeproc, void *writeparm, char *eol, char *urlprefix ));
|
||||
|
||||
#define DEF_LABEL_WIDTH 15
|
||||
#define SEARCH_TIMEOUT_SECS 120
|
||||
|
|
@ -475,12 +471,12 @@ do_entry2text_search(
|
|||
|
||||
ocattrs[0] = OCATTRNAME;
|
||||
ocattrs[1] = NULL;
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
if ( LDAP_IS_CLDAP( ld ))
|
||||
err = cldap_search_s( ld, dn, LDAP_SCOPE_BASE,
|
||||
"objectClass=*", ocattrs, 0, &ldmp, NULL );
|
||||
else
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
err = ldap_search_st( ld, dn, LDAP_SCOPE_BASE,
|
||||
"objectClass=*", ocattrs, 0, &timeout, &ldmp );
|
||||
|
||||
|
|
@ -509,12 +505,12 @@ do_entry2text_search(
|
|||
fetchattrs = ldap_tmplattrs( tmpl, NULL, 1, LDAP_SYN_OPT_DEFER );
|
||||
}
|
||||
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
if ( LDAP_IS_CLDAP( ld ))
|
||||
err = cldap_search_s( ld, dn, LDAP_SCOPE_BASE, "objectClass=*",
|
||||
fetchattrs, 0, &ldmp, NULL );
|
||||
else
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
err = ldap_search_st( ld, dn, LDAP_SCOPE_BASE, "objectClass=*",
|
||||
fetchattrs, 0, &timeout, &ldmp );
|
||||
|
||||
|
|
@ -987,7 +983,7 @@ searchaction( LDAP *ld, char *buf, char *base, LDAPMessage *entry, char *dn,
|
|||
struct ldap_tmplitem *tip, int labelwidth, int rdncount,
|
||||
writeptype writeproc, void *writeparm, char *eol, char *urlprefix )
|
||||
{
|
||||
int err, lderr, i, count, html;
|
||||
int err = 0, lderr, i, count, html;
|
||||
char **vals, **members;
|
||||
char *value, *filtpattern, *attr, *selectname;
|
||||
char *retattrs[2], filter[ 256 ];
|
||||
|
|
@ -1047,12 +1043,12 @@ searchaction( LDAP *ld, char *buf, char *base, LDAPMessage *entry, char *dn,
|
|||
timeout.tv_sec = SEARCH_TIMEOUT_SECS;
|
||||
timeout.tv_usec = 0;
|
||||
|
||||
#ifdef CLDAP
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
if ( LDAP_IS_CLDAP( ld ))
|
||||
lderr = cldap_search_s( ld, base, LDAP_SCOPE_SUBTREE, filter, retattrs,
|
||||
0, &ldmp, NULL );
|
||||
else
|
||||
#endif /* CLDAP */
|
||||
#endif /* LDAP_CONNECTIONLESS */
|
||||
lderr = ldap_search_st( ld, base, LDAP_SCOPE_SUBTREE, filter, retattrs,
|
||||
0, &timeout, &ldmp );
|
||||
|
||||
|
|
|
|||
|
|
@ -6,15 +6,260 @@
|
|||
* - DB_DBT_MALLOC ; 1998/03/22, /KSp
|
||||
*/
|
||||
|
||||
#ifdef LDAP_LDBM
|
||||
#include "portable.h"
|
||||
|
||||
#ifdef SLAPD_LDBM
|
||||
|
||||
#include <stdio.h>
|
||||
#include <ac/errno.h>
|
||||
|
||||
#include "ldbm.h"
|
||||
|
||||
#ifdef LDBM_USE_GDBM
|
||||
#if defined( LDBM_USE_DBHASH ) || defined( LDBM_USE_DBBTREE )
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
/*****************************************************************
|
||||
* *
|
||||
* use berkeley db hash or btree package *
|
||||
* *
|
||||
*****************************************************************/
|
||||
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
/*************************************************
|
||||
* *
|
||||
* A malloc routine for use with DB_DBT_MALLOC *
|
||||
* *
|
||||
*************************************************/
|
||||
|
||||
void *
|
||||
ldbm_malloc( size_t size )
|
||||
{
|
||||
return( calloc( 1, size ));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
LDBM
|
||||
ldbm_open( char *name, int rw, int mode, int dbcachesize )
|
||||
{
|
||||
LDBM ret = NULL;
|
||||
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
DB_INFO dbinfo;
|
||||
|
||||
memset( &dbinfo, 0, sizeof( dbinfo ));
|
||||
dbinfo.db_cachesize = dbcachesize;
|
||||
dbinfo.db_pagesize = DEFAULT_DB_PAGE_SIZE;
|
||||
dbinfo.db_malloc = ldbm_malloc;
|
||||
|
||||
db_open( name, DB_TYPE, rw, mode, NULL, &dbinfo, &ret );
|
||||
|
||||
#else
|
||||
void *info;
|
||||
BTREEINFO binfo;
|
||||
HASHINFO hinfo;
|
||||
|
||||
if ( DB_TYPE == DB_HASH ) {
|
||||
memset( (char *) &hinfo, '\0', sizeof(hinfo) );
|
||||
hinfo.cachesize = dbcachesize;
|
||||
info = &hinfo;
|
||||
} else if ( DB_TYPE == DB_BTREE ) {
|
||||
memset( (char *) &binfo, '\0', sizeof(binfo) );
|
||||
binfo.cachesize = dbcachesize;
|
||||
info = &binfo;
|
||||
} else {
|
||||
info = NULL;
|
||||
}
|
||||
|
||||
ret = dbopen( name, rw, mode, DB_TYPE, info );
|
||||
|
||||
#endif
|
||||
|
||||
return( ret );
|
||||
}
|
||||
|
||||
void
|
||||
ldbm_close( LDBM ldbm )
|
||||
{
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
(*ldbm->close)( ldbm, 0 );
|
||||
#else
|
||||
(*ldbm->close)( ldbm );
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
ldbm_sync( LDBM ldbm )
|
||||
{
|
||||
(*ldbm->sync)( ldbm, 0 );
|
||||
}
|
||||
|
||||
void
|
||||
ldbm_datum_free( LDBM ldbm, Datum data )
|
||||
{
|
||||
free( data.dptr );
|
||||
}
|
||||
|
||||
Datum
|
||||
ldbm_datum_dup( LDBM ldbm, Datum data )
|
||||
{
|
||||
Datum dup;
|
||||
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
memset( &dup, 0, sizeof( dup ));
|
||||
#endif
|
||||
|
||||
if ( data.dsize == 0 ) {
|
||||
dup.dsize = 0;
|
||||
dup.dptr = NULL;
|
||||
|
||||
return( dup );
|
||||
}
|
||||
dup.dsize = data.dsize;
|
||||
if ( dup.dptr = (char *) malloc( data.dsize ) )
|
||||
memcpy( dup.dptr, data.dptr, data.dsize );
|
||||
|
||||
return( dup );
|
||||
}
|
||||
|
||||
Datum
|
||||
ldbm_fetch( LDBM ldbm, Datum key )
|
||||
{
|
||||
Datum data;
|
||||
int rc;
|
||||
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
memset( &data, 0, sizeof( data ));
|
||||
|
||||
data.flags = DB_DBT_MALLOC;
|
||||
|
||||
if ( (rc = (*ldbm->get)( ldbm, NULL, &key, &data, 0 )) != 0 ) {
|
||||
if ( data.dptr ) free( data.dptr );
|
||||
#else
|
||||
if ( (rc = (*ldbm->get)( ldbm, &key, &data, 0 )) == 0 ) {
|
||||
data = ldbm_datum_dup( ldbm, data );
|
||||
} else {
|
||||
#endif
|
||||
data.dptr = NULL;
|
||||
data.dsize = 0;
|
||||
}
|
||||
|
||||
return( data );
|
||||
}
|
||||
|
||||
int
|
||||
ldbm_store( LDBM ldbm, Datum key, Datum data, int flags )
|
||||
{
|
||||
int rc;
|
||||
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
rc = (*ldbm->put)( ldbm, NULL, &key, &data, flags & ~LDBM_SYNC );
|
||||
rc = (-1 ) * rc;
|
||||
#else
|
||||
rc = (*ldbm->put)( ldbm, &key, &data, flags & ~LDBM_SYNC );
|
||||
#endif
|
||||
if ( flags & LDBM_SYNC )
|
||||
(*ldbm->sync)( ldbm, 0 );
|
||||
return( rc );
|
||||
}
|
||||
|
||||
int
|
||||
ldbm_delete( LDBM ldbm, Datum key )
|
||||
{
|
||||
int rc;
|
||||
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
rc = (*ldbm->del)( ldbm, NULL, &key, 0 );
|
||||
rc = (-1 ) * rc;
|
||||
#else
|
||||
rc = (*ldbm->del)( ldbm, &key, 0 );
|
||||
#endif
|
||||
(*ldbm->sync)( ldbm, 0 );
|
||||
return( rc );
|
||||
}
|
||||
|
||||
Datum
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
ldbm_firstkey( LDBM ldbm, DBC **dbch )
|
||||
#else
|
||||
ldbm_firstkey( LDBM ldbm )
|
||||
#endif
|
||||
{
|
||||
Datum key, data;
|
||||
int rc;
|
||||
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
DBC *dbci;
|
||||
|
||||
memset( &key, 0, sizeof( key ));
|
||||
memset( &data, 0, sizeof( data ));
|
||||
|
||||
key.flags = data.flags = DB_DBT_MALLOC;
|
||||
|
||||
/* acquire a cursor for the DB */
|
||||
if ( (*ldbm->cursor)( ldbm, NULL, &dbci )) {
|
||||
return( key );
|
||||
} else {
|
||||
*dbch = dbci;
|
||||
if ( (*dbci->c_get)( dbci, &key, &data, DB_NEXT ) == 0 ) {
|
||||
if ( data.dptr ) free( data.dptr );
|
||||
#else
|
||||
if ( (rc = (*ldbm->seq)( ldbm, &key, &data, R_FIRST )) == 0 ) {
|
||||
key = ldbm_datum_dup( ldbm, key );
|
||||
#endif
|
||||
} else {
|
||||
key.dptr = NULL;
|
||||
key.dsize = 0;
|
||||
}
|
||||
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
}
|
||||
#endif
|
||||
|
||||
return( key );
|
||||
}
|
||||
|
||||
Datum
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
ldbm_nextkey( LDBM ldbm, Datum key, DBC *dbcp )
|
||||
#else
|
||||
ldbm_nextkey( LDBM ldbm, Datum key )
|
||||
#endif
|
||||
{
|
||||
Datum data;
|
||||
int rc;
|
||||
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
void *oldKey = key.dptr;
|
||||
|
||||
memset( &data, 0, sizeof( data ));
|
||||
|
||||
data.flags = DB_DBT_MALLOC;
|
||||
|
||||
if ( (*dbcp->c_get)( dbcp, &key, &data, DB_NEXT ) == 0 ) {
|
||||
if ( data.dptr ) free( data.dptr );
|
||||
#else
|
||||
if ( (rc = (*ldbm->seq)( ldbm, &key, &data, R_NEXT )) == 0 ) {
|
||||
key = ldbm_datum_dup( ldbm, key );
|
||||
#endif
|
||||
} else {
|
||||
key.dptr = NULL;
|
||||
key.dsize = 0;
|
||||
}
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
if ( oldKey ) free( oldKey );
|
||||
#endif
|
||||
|
||||
return( key );
|
||||
}
|
||||
|
||||
int
|
||||
ldbm_errno( LDBM ldbm )
|
||||
{
|
||||
return( errno );
|
||||
}
|
||||
|
||||
#elif defined( HAVE_GDBM )
|
||||
|
||||
/*****************************************************************
|
||||
* *
|
||||
|
|
@ -120,257 +365,7 @@ ldbm_errno( LDBM ldbm )
|
|||
return( (int) gdbm_errno );
|
||||
}
|
||||
|
||||
#else
|
||||
#if defined( LDBM_USE_DBHASH ) || defined( LDBM_USE_DBBTREE )
|
||||
|
||||
/*****************************************************************
|
||||
* *
|
||||
* use berkeley db hash or btree package *
|
||||
* *
|
||||
*****************************************************************/
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
/*************************************************
|
||||
* *
|
||||
* A malloc routine for use with DB_DBT_MALLOC *
|
||||
* *
|
||||
*************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
void *
|
||||
ldbm_malloc( size_t size )
|
||||
{
|
||||
return( calloc( 1, size ));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
LDBM
|
||||
ldbm_open( char *name, int rw, int mode, int dbcachesize )
|
||||
{
|
||||
LDBM ret = NULL;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
DB_INFO dbinfo;
|
||||
|
||||
memset( &dbinfo, 0, sizeof( dbinfo ));
|
||||
dbinfo.db_cachesize = dbcachesize;
|
||||
dbinfo.db_pagesize = DEFAULT_DB_PAGE_SIZE;
|
||||
dbinfo.db_malloc = ldbm_malloc;
|
||||
|
||||
db_open( name, DB_TYPE, rw, mode, NULL, &dbinfo, &ret );
|
||||
|
||||
#else
|
||||
void *info;
|
||||
BTREEINFO binfo;
|
||||
HASHINFO hinfo;
|
||||
|
||||
if ( DB_TYPE == DB_HASH ) {
|
||||
memset( (char *) &hinfo, '\0', sizeof(hinfo) );
|
||||
hinfo.cachesize = dbcachesize;
|
||||
info = &hinfo;
|
||||
} else if ( DB_TYPE == DB_BTREE ) {
|
||||
memset( (char *) &binfo, '\0', sizeof(binfo) );
|
||||
binfo.cachesize = dbcachesize;
|
||||
info = &binfo;
|
||||
} else {
|
||||
info = NULL;
|
||||
}
|
||||
|
||||
ret = dbopen( name, rw, mode, DB_TYPE, info );
|
||||
|
||||
#endif
|
||||
|
||||
return( ret );
|
||||
}
|
||||
|
||||
void
|
||||
ldbm_close( LDBM ldbm )
|
||||
{
|
||||
#ifdef LDBM_USE_DB2
|
||||
(*ldbm->close)( ldbm, 0 );
|
||||
#else
|
||||
(*ldbm->close)( ldbm );
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
ldbm_sync( LDBM ldbm )
|
||||
{
|
||||
(*ldbm->sync)( ldbm, 0 );
|
||||
}
|
||||
|
||||
void
|
||||
ldbm_datum_free( LDBM ldbm, Datum data )
|
||||
{
|
||||
free( data.dptr );
|
||||
}
|
||||
|
||||
Datum
|
||||
ldbm_datum_dup( LDBM ldbm, Datum data )
|
||||
{
|
||||
Datum dup;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
memset( &dup, 0, sizeof( dup ));
|
||||
#endif
|
||||
|
||||
if ( data.dsize == 0 ) {
|
||||
dup.dsize = 0;
|
||||
dup.dptr = NULL;
|
||||
|
||||
return( dup );
|
||||
}
|
||||
dup.dsize = data.dsize;
|
||||
if ( dup.dptr = (char *) malloc( data.dsize ) )
|
||||
memcpy( dup.dptr, data.dptr, data.dsize );
|
||||
|
||||
return( dup );
|
||||
}
|
||||
|
||||
Datum
|
||||
ldbm_fetch( LDBM ldbm, Datum key )
|
||||
{
|
||||
Datum data;
|
||||
int rc;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
memset( &data, 0, sizeof( data ));
|
||||
|
||||
data.flags = DB_DBT_MALLOC;
|
||||
|
||||
if ( (rc = (*ldbm->get)( ldbm, NULL, &key, &data, 0 )) != 0 ) {
|
||||
if ( data.dptr ) free( data.dptr );
|
||||
#else
|
||||
if ( (rc = (*ldbm->get)( ldbm, &key, &data, 0 )) == 0 ) {
|
||||
data = ldbm_datum_dup( ldbm, data );
|
||||
} else {
|
||||
#endif
|
||||
data.dptr = NULL;
|
||||
data.dsize = 0;
|
||||
}
|
||||
|
||||
return( data );
|
||||
}
|
||||
|
||||
int
|
||||
ldbm_store( LDBM ldbm, Datum key, Datum data, int flags )
|
||||
{
|
||||
int rc;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
rc = (*ldbm->put)( ldbm, NULL, &key, &data, flags & ~LDBM_SYNC );
|
||||
rc = (-1 ) * rc;
|
||||
#else
|
||||
rc = (*ldbm->put)( ldbm, &key, &data, flags & ~LDBM_SYNC );
|
||||
#endif
|
||||
if ( flags & LDBM_SYNC )
|
||||
(*ldbm->sync)( ldbm, 0 );
|
||||
return( rc );
|
||||
}
|
||||
|
||||
int
|
||||
ldbm_delete( LDBM ldbm, Datum key )
|
||||
{
|
||||
int rc;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
rc = (*ldbm->del)( ldbm, NULL, &key, 0 );
|
||||
rc = (-1 ) * rc;
|
||||
#else
|
||||
rc = (*ldbm->del)( ldbm, &key, 0 );
|
||||
#endif
|
||||
(*ldbm->sync)( ldbm, 0 );
|
||||
return( rc );
|
||||
}
|
||||
|
||||
Datum
|
||||
#ifdef LDBM_USE_DB2
|
||||
ldbm_firstkey( LDBM ldbm, DBC **dbch )
|
||||
#else
|
||||
ldbm_firstkey( LDBM ldbm )
|
||||
#endif
|
||||
{
|
||||
Datum key, data;
|
||||
int rc;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
DBC *dbci;
|
||||
|
||||
memset( &key, 0, sizeof( key ));
|
||||
memset( &data, 0, sizeof( data ));
|
||||
|
||||
key.flags = data.flags = DB_DBT_MALLOC;
|
||||
|
||||
/* acquire a cursor for the DB */
|
||||
if ( (*ldbm->cursor)( ldbm, NULL, &dbci )) {
|
||||
return( key );
|
||||
} else {
|
||||
*dbch = dbci;
|
||||
if ( (*dbci->c_get)( dbci, &key, &data, DB_NEXT ) == 0 ) {
|
||||
if ( data.dptr ) free( data.dptr );
|
||||
#else
|
||||
if ( (rc = (*ldbm->seq)( ldbm, &key, &data, R_FIRST )) == 0 ) {
|
||||
key = ldbm_datum_dup( ldbm, key );
|
||||
#endif
|
||||
} else {
|
||||
key.dptr = NULL;
|
||||
key.dsize = 0;
|
||||
}
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
}
|
||||
#endif
|
||||
|
||||
return( key );
|
||||
}
|
||||
|
||||
Datum
|
||||
#ifdef LDBM_USE_DB2
|
||||
ldbm_nextkey( LDBM ldbm, Datum key, DBC *dbcp )
|
||||
#else
|
||||
ldbm_nextkey( LDBM ldbm, Datum key )
|
||||
#endif
|
||||
{
|
||||
Datum data;
|
||||
int rc;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
void *oldKey = key.dptr;
|
||||
|
||||
memset( &data, 0, sizeof( data ));
|
||||
|
||||
data.flags = DB_DBT_MALLOC;
|
||||
|
||||
if ( (*dbcp->c_get)( dbcp, &key, &data, DB_NEXT ) == 0 ) {
|
||||
if ( data.dptr ) free( data.dptr );
|
||||
#else
|
||||
if ( (rc = (*ldbm->seq)( ldbm, &key, &data, R_NEXT )) == 0 ) {
|
||||
key = ldbm_datum_dup( ldbm, key );
|
||||
#endif
|
||||
} else {
|
||||
key.dptr = NULL;
|
||||
key.dsize = 0;
|
||||
}
|
||||
#ifdef LDBM_USE_DB2
|
||||
if ( oldKey ) free( oldKey );
|
||||
#endif
|
||||
|
||||
return( key );
|
||||
}
|
||||
|
||||
int
|
||||
ldbm_errno( LDBM ldbm )
|
||||
{
|
||||
return( errno );
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#ifdef LDBM_USE_NDBM
|
||||
#elif defined( HAVE_NDBM )
|
||||
|
||||
/*****************************************************************
|
||||
* *
|
||||
|
|
@ -459,6 +454,4 @@ ldbm_errno( LDBM ldbm )
|
|||
}
|
||||
|
||||
#endif /* ndbm */
|
||||
#endif /* db */
|
||||
#endif /* gdbm */
|
||||
#endif /* ldbm */
|
||||
|
|
|
|||
|
|
@ -3,11 +3,14 @@
|
|||
#include "portable.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <ac/ctype.h>
|
||||
#include <ac/string.h>
|
||||
#include <ac/time.h>
|
||||
|
||||
#include <lber.h>
|
||||
#include <ldap.h>
|
||||
|
||||
#include <ldapconfig.h>
|
||||
#include <ldbm.h>
|
||||
|
||||
|
|
@ -558,10 +561,10 @@ diff_centroids(
|
|||
int amax, acur, dmax, dcur;
|
||||
char **vals;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
DBC *ocursorp;
|
||||
DBC *ncursorp;
|
||||
#endif /* LDBM_USE_DB2 */
|
||||
#endif /* HAVE_BERKELEY_DB2 */
|
||||
|
||||
if ( verbose ) {
|
||||
printf( "Generating mods for differential %s centroid...", attr );
|
||||
|
|
@ -607,7 +610,7 @@ diff_centroids(
|
|||
|
||||
olast.dptr = NULL;
|
||||
nlast.dptr = NULL;
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
for ( okey = ldbm_firstkey( oldbm, &ocursorp ),
|
||||
nkey = ldbm_firstkey( nldbm, &ncursorp );
|
||||
okey.dptr != NULL && nkey.dptr != NULL; )
|
||||
|
|
@ -629,7 +632,7 @@ diff_centroids(
|
|||
}
|
||||
nlast = nkey;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
okey = ldbm_nextkey( oldbm, olast, ocursorp );
|
||||
nkey = ldbm_nextkey( nldbm, nlast, ncursorp );
|
||||
#else
|
||||
|
|
@ -648,7 +651,7 @@ diff_centroids(
|
|||
}
|
||||
nlast = nkey;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
nkey = ldbm_nextkey( nldbm, nlast, ncursorp );
|
||||
#else
|
||||
nkey = ldbm_nextkey( nldbm, nlast );
|
||||
|
|
@ -665,7 +668,7 @@ diff_centroids(
|
|||
}
|
||||
olast = okey;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
okey = ldbm_nextkey( oldbm, olast, ocursorp );
|
||||
#else
|
||||
okey = ldbm_nextkey( oldbm, olast );
|
||||
|
|
@ -679,7 +682,7 @@ diff_centroids(
|
|||
return( NULL );
|
||||
}
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
okey = ldbm_nextkey( oldbm, olast, ocursorp );
|
||||
#else
|
||||
okey = ldbm_nextkey( oldbm, olast );
|
||||
|
|
@ -698,7 +701,7 @@ diff_centroids(
|
|||
return( NULL );
|
||||
}
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
nkey = ldbm_nextkey( nldbm, nlast, ncursorp );
|
||||
#else
|
||||
nkey = ldbm_nextkey( nldbm, nlast );
|
||||
|
|
@ -723,7 +726,7 @@ diff_centroids(
|
|||
|
||||
/* generate list of values to add */
|
||||
lastkey.dptr = NULL;
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
for ( key = ldbm_firstkey( nldbm, &ncursorp ); key.dptr != NULL;
|
||||
key = ldbm_nextkey( nldbm, lastkey, ncursorp ) )
|
||||
#else
|
||||
|
|
@ -754,7 +757,7 @@ diff_centroids(
|
|||
|
||||
/* generate list of values to delete */
|
||||
lastkey.dptr = NULL;
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
for ( key = ldbm_firstkey( oldbm, &ocursorp ); key.dptr != NULL;
|
||||
key = ldbm_nextkey( oldbm, lastkey, ocursorp ) )
|
||||
#else
|
||||
|
|
@ -821,7 +824,7 @@ full_centroid(
|
|||
char **vals;
|
||||
int vcur, vmax;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
DBC *cursorp;
|
||||
#endif
|
||||
|
||||
|
|
@ -852,7 +855,7 @@ full_centroid(
|
|||
lastkey.dptr = NULL;
|
||||
vals = NULL;
|
||||
vcur = vmax = 0;
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
for ( key = ldbm_firstkey( ldbm, &cursorp ); key.dptr != NULL;
|
||||
key = ldbm_nextkey( ldbm, lastkey, cursorp ) )
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -19,9 +19,10 @@
|
|||
#include "portable.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include <ac/ctype.h>
|
||||
#include <ac/string.h>
|
||||
|
||||
#include <quipu/commonarg.h>
|
||||
#include <quipu/attrvalue.h>
|
||||
|
|
|
|||
|
|
@ -13,10 +13,12 @@
|
|||
#include "portable.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <dirent.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include <ac/ctype.h>
|
||||
#include <ac/dirent.h>
|
||||
#include <ac/string.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -13,8 +13,10 @@
|
|||
#include "portable.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include <ac/ctype.h>
|
||||
#include <ac/string.h>
|
||||
|
||||
#include <quipu/commonarg.h>
|
||||
#include <quipu/attrvalue.h>
|
||||
#include <quipu/ds_error.h>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
#include "portable.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <ac/ctype.h>
|
||||
#include <ac/socket.h>
|
||||
#include <ac/string.h>
|
||||
|
||||
#include "ldbm.h"
|
||||
#include "../slap.h"
|
||||
|
||||
|
|
@ -26,7 +27,7 @@ main( argc, argv )
|
|||
char *file, *s;
|
||||
int printid = 1;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
DBC *cursorp;
|
||||
#endif
|
||||
|
||||
|
|
@ -48,7 +49,7 @@ main( argc, argv )
|
|||
|
||||
last.dptr = NULL;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
for ( key = ldbm_firstkey( dbp, &cursorp ); key.dptr != NULL;
|
||||
key = ldbm_nextkey( dbp, last, cursorp ) )
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -1,17 +1,22 @@
|
|||
#include "portable.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <ac/string.h>
|
||||
#include <stdlib.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/time.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include <ac/socket.h>
|
||||
#include <ac/string.h>
|
||||
#include <ac/time.h>
|
||||
#include <ac/unistd.h>
|
||||
#include <ac/wait.h>
|
||||
|
||||
#include <sys/resource.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/stat.h>
|
||||
#include <limits.h>
|
||||
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
|
||||
#include "ldapconfig.h"
|
||||
#include "../slap.h"
|
||||
|
|
@ -66,7 +71,7 @@ main( argc, argv )
|
|||
int i;
|
||||
extern char *optarg;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
DBC *cursorp;
|
||||
#endif
|
||||
|
||||
|
|
@ -157,7 +162,7 @@ main( argc, argv )
|
|||
}
|
||||
|
||||
savekey.dptr = NULL;
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
for ( key = ldbm_firstkey( dbc->dbc_db, &cursorp );
|
||||
key.dptr != NULL;
|
||||
key = ldbm_nextkey( dbc->dbc_db, key, cursorp ) )
|
||||
|
|
@ -327,7 +332,7 @@ main( argc, argv )
|
|||
|
||||
last.dptr = NULL;
|
||||
|
||||
#ifdef LDBM_USE_DB2
|
||||
#ifdef HAVE_BERKELEY_DB2
|
||||
for ( key = ldbm_firstkey( dbp, &cursorp );
|
||||
key.dptr != NULL;
|
||||
key = ldbm_nextkey( dbp, last, cursorp ) )
|
||||
|
|
@ -520,10 +525,12 @@ edit_entry( c, data )
|
|||
int fd, pid;
|
||||
char tmpname[20];
|
||||
FILE *fp;
|
||||
#ifndef HAVE_WAITPID
|
||||
WAITSTATUSTYPE status;
|
||||
#endif
|
||||
|
||||
strcpy( tmpname, "/tmp/dbtestXXXXXX" );
|
||||
#ifdef ultrix
|
||||
#ifndef HAVE_MKSTEMP
|
||||
if ( (fd = open( mktemp( tmpname ), O_RDWR, 0600 )) == -1 ) {
|
||||
perror( tmpname );
|
||||
return;
|
||||
|
|
@ -557,8 +564,8 @@ edit_entry( c, data )
|
|||
|
||||
fclose( fp );
|
||||
|
||||
#ifdef USE_WAITPID
|
||||
if ( waitpid( (pid_t) -1, 0, WAIT_FLAGS ) < 0 ) {
|
||||
#ifdef HAVE_WAITPID
|
||||
if ( waitpid( (pid_t) -1, NULL, WAIT_FLAGS ) < 0 ) {
|
||||
#else
|
||||
if ( wait3( &status, WAIT_FLAGS, 0 ) < 0 ) {
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
#include "portable.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <memory.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <ac/string.h>
|
||||
#include <ac/socket.h>
|
||||
|
||||
#include "lber.h"
|
||||
#include "ldap.h"
|
||||
#include "ldif.h"
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
#include "portable.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <ac/string.h>
|
||||
#include <ac/socket.h>
|
||||
|
||||
#include "../slap.h"
|
||||
#include "../back-ldbm/back-ldbm.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
#include "portable.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <ac/string.h>
|
||||
#include <ac/socket.h>
|
||||
|
||||
#include "../slap.h"
|
||||
#include "../back-ldbm/back-ldbm.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
#include "portable.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <ac/string.h>
|
||||
#include <ac/socket.h>
|
||||
|
||||
#include <sys/param.h>
|
||||
|
||||
#include "../slap.h"
|
||||
#include "../back-ldbm/back-ldbm.h"
|
||||
#include "ldapconfig.h"
|
||||
|
|
|
|||
Loading…
Reference in a new issue