From 2cf9690f9f3b8dc4c3ef3d70e2fd416b279637d8 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Thu, 20 Aug 1998 00:05:08 +0000 Subject: [PATCH] Added support for SLEEPYCAT DB2. Modified main makefile to support local Make-common. Builds file from Make-common.dist. --- Make-common => Make-common.dist | 5 + Make-common.um | 200 ------------------------------ Makefile | 10 ++ include/ldbm.h | 13 +- libraries/libldap/os-ip.c | 19 ++- libraries/libldap/result.c | 18 ++- libraries/msdos/winsock/wsockip.c | 14 +-- 7 files changed, 46 insertions(+), 233 deletions(-) rename Make-common => Make-common.dist (98%) delete mode 100644 Make-common.um diff --git a/Make-common b/Make-common.dist similarity index 98% rename from Make-common rename to Make-common.dist index 8fabb11693..c880481571 100644 --- a/Make-common +++ b/Make-common.dist @@ -145,6 +145,11 @@ LDBMBACKEND?=-DLDBM_USE_NDBM LDBMINCLUDE?= LDBMLIB?= +#undef these if you have SLEEPYCAT DB2 installed +#LDBMBACKEND=-DLDBM_USE_DBBTREE -DHAVE_SLEEPYCAT_DB2 +#LDBMINCLUDE=-I/usr/local/include +#LDBMLIB=-L/usr/local/lib -ldb + # if you want to use a non-default threads package change the defines below # to one of: # -DPOSIX_THREADS (draft 10 or standard) diff --git a/Make-common.um b/Make-common.um deleted file mode 100644 index 6fa3121e69..0000000000 --- a/Make-common.um +++ /dev/null @@ -1,200 +0,0 @@ -#----------------------------------------------------------------------------- -# Copyright (c) 1994 Regents of the University of Michigan. -# All rights reserved. -# -# Redistribution and use in source and binary forms are permitted -# provided that this notice is preserved and that due credit is given -# to the University of Michigan at Ann Arbor. The name of the University -# may not be used to endorse or promote products derived from this -# software without specific prior written permission. This software -# is provided ``as is'' without express or implied warranty. -# -# LDAP common Make defines (included in all but top-level Makefile) -# -#----------------------------------------------------------------------------- - -############################################################################# -## Edit the following variables to have appropriate values for your system ## -############################################################################# - -############################################################################# -## LDAP install paths ## -############################################################################# -# -# by default, everything is installed below INSTROOT -# servers, config files, etc. are put in ETCDIR -# include files get put in INCLUDEDIR -# libraries are put in LIBDIR -# man pages are put under MANDIR -# programs end-users will run are put in BINDIR -# -INSTROOT=/usr/local -ETCDIR= $(INSTROOT)/etc -INCLUDEDIR= $(INSTROOT)/include -LIBDIR= $(INSTROOT)/lib -MANDIR= $(INSTROOT)/man -BINDIR= $(INSTROOT)/bin -# -# if you want things to run in a different directory from where they -# are installed, set this accordingly (this path gets compiled into a -# few binaries). otherwise, leave it alone. -RUNTIMEETCDIR= $(ETCDIR) - -############################################################################# -## General compiler options ## -############################################################################# -# Passed to every compile (cc or gcc). This is where you put -O or -g, etc. -EXTRACFLAGS=-g -# Passed to every link (ld). Include -g here if you did in EXTRACFLAGS. -EXTRALDFLAGS=-g - -############################################################################# -## If you are NOT using Kerberos authentication, you can skip this section.## -############################################################################# -# -# Otherwise, to enable kerberos authentication, uncomment KERBEROS (and -# AFSKERBEROS if you are running the AFS version of kerberos). Also -# uncomment and change the various KRB* lines to point to where the -# kerberos libraries and include files are installed at your site. -# -KERBEROS=-DKERBEROS -AFSKERBEROS=-DAFSKERBEROS -KRBINCLUDEFLAG = -I/usr/local/kerberos/include -KRBLIBFLAG = -L/usr/local/kerberos/lib -KRBLIBS = -lkrb -ldes - -############################################################################# -## ISODE is required ONLY to build the ldap <-> X.500 server (ldapd) ## -## If you don't want to build it, you can skip this section. ## -############################################################################# -# -# To build the ldap server, uncomment the HAVEISODE line, -# and the section describing build settings for your version of isode. -# -HAVEISODE = yes -# If you compiled ISODE with TURBO_DISK defined, uncomment this -#ISODETURBOLIBS = -lgdbm -# uncomment these to have ldapd "pretty print" protocol elements w/debugging -PEPSY_DUMP=-DPEPSY_DUMP -PEPSY=/usr/local/ic/bin/pepsy -# uncommment this line to have ldapd load PP syntax handlers -# you'll also need to add -lpp to ISODEBASELIBS below -#LDAP_USE_PP=-DLDAP_USE_PP -# uncomment NO_SETPROCTITLE to have ldapd NOT change its title -#NO_SETPROCTITLE=-DNOSETPROCTITLE -# -# ISODE Consortium release build settings -# You should change the next line so that ICRELEASE matches the (integer) -# version number of whatever IC release you have, e.g. 1, 2, or 3 and -# also uncomment the next 5 lines. -ICRELEASE=-DICRELEASE=2 -ISODEPACKAGE=-DISODEPACKAGE=IC -ISODEINCLUDEFLAG= -I/usr/local/ic/include -ISODELIBFLAG = -L/usr/local/ic/lib -ISODEBASELIBS = -lisode -# -# Freely available ISODE 8.0 release build settings (uncomment the next 4 lines) -#ISODEPACKAGE=-DISODEPACKAGE -#ISODEINCLUDEFLAG= -I/usr/local/isode/include -#ISODELIBFLAG = -L/usr/local/isode/lib -#ISODEBASELIBS = -ldsap -lisode -# -# NEXOR ISODE release build settings (uncomment the next 4 lines) -#ISODEPACKAGE=-DISODEPACKAGE=XT -#ISODEINCLUDEFLAG= -I/usr/include/isode -#ISODELIBFLAG = -L/usr/local/lib -L/usr/sunlink/osi/lib -#ISODEBASELIBS = -lxtpp -lresolv -lxtdsap -lxtisode -losi - -############################################################################# -## If you don't want to run slapd, skip this section. ## -############################################################################# -# -# To build slapd (the stand-alone ldap daemon), uncomment the MAKESLAPD -# line and select the SLAPD_BACKENDS you want to use. If you enable the -# LDBM backend, also select one of the LDBM backends. -MAKESLAPD= yes -# -# remove the defines for backends you don't want to enable -SLAPD_BACKENDS= -DLDAP_LDBM -DLDAP_SHELL -DLDAP_PASSWD -# -# If you have included -DLDAP_LDBM in the SLAPD_BACKENDS line you need -# to specify which low-level database package to use. There are -# four choices: Berkeley db b-tree, Berkeley db hash, GNU dbm, or ndbm. -# -# berkeley db btree package -LDBMBACKEND=-DLDBM_USE_DBBTREE -LDBMINCLUDE=-I/usr/local/include -LDBMLIB=-ldb -# berkeley db hash package -#LDBMBACKEND=-DLDBM_USE_DBHASH -#LDBMINCLUDE=-I/usr/local/include -#LDBMLIB=-ldb -# gnu dbm (gdbm) -#LDBMBACKEND=-DLDBM_USE_GDBM -#LDBMINCLUDE=-I/usr/local/include -#LDBMLIB=-lgdbm -# standard unix ndbm -#LDBMBACKEND=-DLDBM_USE_NDBM -# -# if you want to use a non-default threads package change these lines -#THREADS=-DNO_THREADS -#THREADSLIB= - -############################################################################# -## The following options are used by the xax500 client. If you haven't ## -## retrieved the xax500 source and dropped it into the "clients" ## -## directory, you can skip this section. ## -############################################################################# -# -# location of your X include files -#XINCLUDES= -I/usr/local/X11/include -# -# location of your X libraries -#XLIBDIRS=-L/usr/local/X11/lib -# -# include any extra X libraries you need here -# the following works with sunos 4 and X11R5 -#XLIBS = $(XLIBDIRS) -lXm -lXt -lX11 -# the following has been known to work with Solaris 2.4 and X11R6 -#XLIBS = $(XLIBDIRS) -lXm -lXext -lSM -lICE -lXpm -lXt -lX11 - -############################################################################# -## If you don't want to do auto-translation of character sets, skip this ## -############################################################################# -# -# Otherwise, uncomment this line and set the following options. -#STR_TRANSLATION=-DSTR_TRANSLATION -# -# remove the defines for LDAP client library T.61 character translation -# you do not need. If you use LDAP_CHARSET_8859, replace the '1' in "88591" -# with the number of the particular character set you use. E.g., use "88594" -# if you use the ISO 8859-4 chracter set. -#LIBLDAP_CHARSETS=-DLDAP_CHARSET_8859="88591" -# -# uncomment one these lines to enable automatic T.61 translation by default -#LIBLDAP_DEF_CHARSET=-DLDAP_DEFAULT_CHARSET=LDAP_CHARSET_8859 - -############################################################################# -## General options ## -############################################################################# -# uncomment this line to enable debugging code (a good idea) -LDAP_DEBUG=-DLDAP_DEBUG - -# uncomment this line to turn on a few U of Michigan specific things -UOFM=-DUOFM - -# uncomment this line to delete a few printfs in the lber and ldap libraries. -#NO_USERINTERFACE=-DNO_USERINTERFACE - -# uncomment this line to include Connectionless LDAP support -CLDAP=-DCLDAP - -# uncomment this line to eliminate local caching support in the libldap -#NO_CACHE=-DNO_CACHE - -# uncomment this line to enable support for LDAP referrals in libldap -LDAP_REFERRALS=-DLDAP_REFERRALS - -# uncomment this line to use soundex for approximate matches in slapd. -# the default is to use the metaphone algorithm. -#PHONETIC=-DSOUNDEX diff --git a/Makefile b/Makefile index 3b313842d3..be002db16b 100644 --- a/Makefile +++ b/Makefile @@ -318,6 +318,16 @@ makeconfig: .makefiles buildtools echo "** Set platform to $$PLATFORM with compiler $$CC..."; \ echo "" +Make-common: Make-common.dist + @if [ -f Make-common ]; then \ + echo "Make-common.dist newer than Make-common, check for new options" ;\ + echo "or touch Make-common to ignore."; \ + exit 1; \ + fi; \ + cp Make-common.dist Make-common; \ + echo "Make-common installed from distribution." ; \ + echo " Edit as needed before making!" ; \ + exit 1 # # rule to build Makefiles by concatenating Make-template file in each # subdirectory with global Make-common, .make-platform, and diff --git a/include/ldbm.h b/include/ldbm.h index 95bd55ffa7..1e3c61410c 100644 --- a/include/ldbm.h +++ b/include/ldbm.h @@ -46,7 +46,12 @@ extern gdbm_error gdbm_errno; #include #include #include -#include + +#ifdef HAVE_SLEEPYCAT_DB2 +# include +#else +# include +#endif typedef DBT Datum; #define dsize size @@ -85,7 +90,11 @@ extern int errno; #include #include #include -#include +#ifdef HAVE_SLEEPYCAT_DB2 +# include +#else +# include +#endif typedef DBT Datum; #define dsize size diff --git a/libraries/libldap/os-ip.c b/libraries/libldap/os-ip.c index d7ae408a82..c4c3cd6dbb 100644 --- a/libraries/libldap/os-ip.c +++ b/libraries/libldap/os-ip.c @@ -314,20 +314,17 @@ do_ldap_select( LDAP *ld, struct timeval *timeout ) Debug( LDAP_DEBUG_TRACE, "do_ldap_select\n", 0, 0, 0 ); if ( tblsize == 0 ) { -#ifdef FD_SETSIZE - /* - * It is invalid to use a set size in excess of the type - * scope, as defined for the fd_set in sys/types.h. This - * is true for any OS. - */ - tblsize = FD_SETSIZE; -#else /* !FD_SETSIZE*/ #ifdef USE_SYSCONF tblsize = sysconf( _SC_OPEN_MAX ); -#else /* USE_SYSCONF */ +#else /* !USE_SYSCONF */ tblsize = getdtablesize(); -#endif /* USE_SYSCONF */ -#endif /* !FD_SETSIZE*/ +#endif /* !USE_SYSCONF */ + +#ifdef FD_SETSIZE + if( tblsize > FD_SETSIZE ) { + tblsize = FD_SETSIZE; + } +#endif /* FD_SETSIZE*/ } sip = (struct selectinfo *)ld->ld_selectinfo; diff --git a/libraries/libldap/result.c b/libraries/libldap/result.c index 77929120eb..8d4900f71a 100644 --- a/libraries/libldap/result.c +++ b/libraries/libldap/result.c @@ -638,20 +638,16 @@ ldap_select1( LDAP *ld, struct timeval *timeout ) static int tblsize; if ( tblsize == 0 ) { -#ifdef FD_SETSIZE - /* - * It is invalid to use a set size in excess of the type - * scope, as defined for the fd_set in sys/types.h. This - * is true for any OS. - */ - tblsize = FD_SETSIZE; -#else /* !FD_SETSIZE*/ #ifdef USE_SYSCONF tblsize = sysconf( _SC_OPEN_MAX ); -#else /* USE_SYSCONF */ +#else /* !USE_SYSCONF */ tblsize = getdtablesize(); -#endif /* USE_SYSCONF */ -#endif /* !FD_SETSIZE*/ +#endif /* !USE_SYSCONF */ +#ifdef FD_SETSIZE + if ( tblsize > FD_SETSIZE ) { + tblsize = FD_SETSIZE; + } +#endif /* FD_SETSIZE */ } FD_ZERO( &readfds ); diff --git a/libraries/msdos/winsock/wsockip.c b/libraries/msdos/winsock/wsockip.c index 5c86cd771f..9ac0417326 100644 --- a/libraries/msdos/winsock/wsockip.c +++ b/libraries/msdos/winsock/wsockip.c @@ -446,14 +446,6 @@ do_ldap_select( LDAP *ld, struct timeval *timeout ) Debug( LDAP_DEBUG_TRACE, "do_ldap_select\n", 0, 0, 0 ); if ( tblsize == 0 ) { -#ifdef FD_SETSIZE - /* - * It is invalid to use a set size in excess of the type - * scope, as defined for the fd_set in sys/types.h. This - * is true for any OS. - */ - tblsize = FD_SETSIZE; -#else /* !FD_SETSIZE*/ #ifdef USE_SYSCONF tblsize = sysconf( _SC_OPEN_MAX ); #else /* USE_SYSCONF */ @@ -463,7 +455,11 @@ do_ldap_select( LDAP *ld, struct timeval *timeout ) tblsize = getdtablesize(); #endif #endif /* USE_SYSCONF */ -#endif /* !FD_SETSIZE*/ +#ifdef FD_SETSIZE + if( tblsize > FD_SETSIZE ) { + tblsize = FD_SETSIZE; + } +#endif /* FD_SETSIZE*/ } sip = (struct selectinfo *)ld->ld_selectinfo; -- 2.39.5