Commit Graph

440 Commits

Author SHA1 Message Date
Kurt Zeilenga
7a0b0b2bbf In preparation for adding dn_rewrite()...
s/dn_normalize/dn_validate/
s/dn_normalize_case/dn_normalize/
1999-09-24 01:46:37 +00:00
Kurt Zeilenga
35655c056f Reimplement LDBM_SYNC/LDBM_NOSYNC code (dbnosync).
Old code applied sync flags to store(), however supported DBMs
require such flags to be specified during open().  The new
code now applies flags in ldbm_cache_open (which calls ldbm_open).
ldbm_cache_close() now calls ldbm_sync().  This will force
a updating of on-disk contents after each LDAP operation.
The old code either failed to sync the on-disk contents until
close or synced on every store.   Per LDBM operation syncing
*should* be safe enough... real data safety requires transactions.
Removed nosync option from BDB2 as it is not compatible with
txn support.
Also added code to disable DBM level locking as slapd is only
process acessing the databases (dbnolocking).
1999-09-23 19:49:20 +00:00
Kurt Zeilenga
6b0ccd4a5d Add experimental detection of BerkeleyDB2 DB_THREAD.
If not available, LDBM uses big mutex and BDB2 is disabled.
Should add BerkeleyDB version detection...
1999-09-20 20:55:54 +00:00
Howard Chu
f991ef04e6 Added mixed-case as well as up-cased DN argument. The behavior of back-bdb2
and back-ldbm are preserved, they only use the up-cased DNs. back-passwd
uses the mixed-case DN. All others are using mixed-case DN, may need more
fixing.
1999-09-18 23:40:03 +00:00
Kurt Zeilenga
e642a1b9cd Add OpenLDAP RCSid 1999-09-08 22:52:19 +00:00
Kurt Zeilenga
403f4479bc Add OpenLDAP RCSid to *.[ch] in clients, libraries, and servers.
Replace old Id as needed (back-tcl).
Leave updating of contribWare to contributors (for now).
1999-09-08 19:06:24 +00:00
Kurt Zeilenga
1cfeeaade0 db2 flags should be u_int32_t, not int. 1999-09-08 17:28:02 +00:00
Kurt Zeilenga
2e86c0516b Remove #if 0 used to hide dn subtree index problem. Fixed
by Hallvard's IDL changes!
1999-09-04 01:19:58 +00:00
Hallvard Furuseth
1cde481298 Move `#include "ldap_defaults.h"' into slap.h, which #ifdefs on it. 1999-09-03 23:10:05 +00:00
Hallvard Furuseth
dc6754c781 Remove incorrect use of <matched> entry 1999-09-03 20:25:58 +00:00
Hallvard Furuseth
5b6c6b5855 Fix SAFEMEMCPY bug from revision 1.32 in idl_insert() 1999-09-03 11:01:18 +00:00
Kurt Zeilenga
5bb08cba85 Backout rev 1.37 change which was committed by mistake. 1999-09-03 05:31:43 +00:00
Hallvard Furuseth
7cb866642d Fix Debug printf format 1999-09-02 08:11:54 +00:00
Hallvard Furuseth
c09a2c63e7 Cleanup:
Fix printf formats, remove unused variables, add missing prototypes in slapd,
add static/const, add some return types or change to void return type.
1999-09-02 08:05:17 +00:00
Kurt Zeilenga
41e57c041f Add OpenLDAP RCS id 1999-09-02 00:52:43 +00:00
Kurt Zeilenga
6b80f345a4 Fix idl_insert_key() return codes. 1999-09-01 18:30:13 +00:00
Hallvard Furuseth
8bbaca258f Fix uninitialized variable 1999-09-01 06:54:33 +00:00
Kurt Zeilenga
03ea068193 Disable removal of subtree indices upon delete. This allows
modrdn to run,  but masks the underlying subtree index bug (which
I haven't found yet).
Apply modrdn/dn2id changes to BDB2.
1999-08-26 22:43:08 +00:00
Kurt Zeilenga
4c19272651 Assert ID != NOID when fetching from the datastore.
Add additional abandon point to modrdn.
test005-modrdn still shows error.  Likely in dn2id, index, or idl codes.
1999-08-26 21:00:22 +00:00
Kurt Zeilenga
60033b38ac Use NULL pointer to indicate values need not be freed instead of
relying on developer selecting the right goto label.
1999-08-26 19:12:15 +00:00
Kurt Zeilenga
c71fcf58fa Remove use of uninitialized variable. 1999-08-26 19:10:28 +00:00
Kurt Zeilenga
a40b1f3126 Backout delete before add rdn index change. 1999-08-26 01:48:47 +00:00
Kurt Zeilenga
e455a7d486 Defer updating dn2id until after rdn checks... (test005 still broken) 1999-08-26 01:33:57 +00:00
Kurt Zeilenga
ed3df0a729 Delete old rdn before adding new rdn. 1999-08-26 01:07:24 +00:00
Kurt Zeilenga
68744ced8d fix dn2id delete bug... breaks modrdn. 1999-08-26 00:51:27 +00:00
Kurt Zeilenga
406f33eb12 This fixes dn2id delete bug... but breaks modrdn. 1999-08-26 00:48:24 +00:00
Kurt Zeilenga
255e36df0b Backout fetch_one copy change 1999-08-20 22:37:30 +00:00
Kurt Zeilenga
2a74677799 const'fication 1999-08-20 19:00:44 +00:00
Kurt Zeilenga
e8af46f2a7 More unifdef -DSLAP_CLEANUP 1999-08-19 19:15:45 +00:00
Kurt Zeilenga
e1630c79cd unifdef -DSLAP_CLEANUP 1999-08-19 18:55:01 +00:00
Kurt Zeilenga
0e502ed0b2 Fix dn_parent memory leak. 1999-08-19 16:51:43 +00:00
Kurt Zeilenga
0ced1a9b1e Fix SLAP_CLEANUP (this #ifdef should really be removed) 1999-08-19 16:51:23 +00:00
Kurt Zeilenga
8ead8c5fd9 Clean up debug messages. 1999-08-19 00:40:18 +00:00
Hallvard Furuseth
aad3c488da Add <ac/string.h> 1999-08-17 21:21:43 +00:00
Kurt Zeilenga
b01f6de098 Update MSVC project and remove lint 1999-08-17 21:10:52 +00:00
Kurt Zeilenga
e4f6d54877 New dn2id format with base/one/subtree indices (ldbm/bdb2)
New id2entry (id-less) format (ldbm/bdb2)
Removed id2children (ldbm/bdb2)
Added nextid database (ldbm)
Broke ldbmtest
Removed ldif2* tools (ldbm/bdb2)
Added slap tools (slapadd, slapcat, slapindex)
1999-08-17 19:00:59 +00:00
Howard Chu
d620793b6f Make init_module return a success/fail value. 1999-08-17 00:28:01 +00:00
Hallvard Furuseth
3b5b9e1e5f back-ldbm: Kill ldbm_ignore_nextid_file, replace with slapMode==SLAP_TOOL_MODE 1999-08-16 07:09:28 +00:00
Kurt Zeilenga
aec2f1f17e Fix add to topless root. 1999-08-14 01:19:29 +00:00
Kurt Zeilenga
7015167974 Add DN_INDICES search filter and has_children support. Move id2children
behind -UDN_INDICES.
1999-08-13 00:55:08 +00:00
Kurt Zeilenga
00ba798bd4 Left DN_INDICES defines by mistake... it's not ready for prime time yet.
Change prefixes to make eyeballing .dbb files easier
1999-08-12 01:05:33 +00:00
Kurt Zeilenga
1ffe5122b7 Implement DN_PARENT_PREFIX and framework for DN_SUBTREE_PREFIX. 1999-08-11 20:59:28 +00:00
Kurt Zeilenga
49207930cf Modify replace_values not to merge in new values when no value is
was provided.
1999-08-11 19:05:40 +00:00
Kurt Zeilenga
82ac9547c9 Removed redundant dn_normalization(strdup(ndn)) from dn2id codes.
Added initial DN_INDICES code behind #ifdef DN_INDICES.
  Generates only equality index.  Will add parent and subtree indices next.
1999-08-11 02:57:07 +00:00
Kurt Zeilenga
65ed23a120 limit maxindirect to 9
ifdef CONT_POSTFIX, swap index and old key in new key.  Not defined as
it would cause more grief than good (but should be enabled on next major
index change).
1999-08-09 18:51:02 +00:00
Howard Chu
638f37743b Fix explicit backend dependencies. Wildcard was unreliable. 1999-08-09 01:29:27 +00:00
Hallvard Furuseth
9f67a2e6c9 Separate put_nextid() out from next_id_write() in back-ldbm/nextid.c.
Use it in tools/ldif2id2entry.c instead of making the NEXTID file "by hand".
1999-08-08 07:28:44 +00:00
Kurt Zeilenga
5ecf77c034 Eliminate a bubble move. 1999-08-07 23:25:48 +00:00
Kurt Zeilenga
136bb9c231 Use a cursor to step through ID_BLOCKS. 1999-08-07 21:14:24 +00:00
Howard Chu
366e8fd5ad Final round of module changes 1999-08-07 11:37:43 +00:00
Kurt Zeilenga
9c3ed0310b Add copyright notices. 1999-08-06 23:07:46 +00:00
Howard Chu
03b58cc9cf For dynamic modules, must explicitly zero BackendInfo structure in
init_module. Since it's a local var, you have no idea what kind of
garbage is sitting in important function pointers...
1999-08-06 13:16:26 +00:00
Kurt Zeilenga
9ea7a42b99 Add copyright notice and a few comments here and there 1999-08-04 23:59:13 +00:00
Kurt Zeilenga
df8f7cbb9b s/exit(1)/exit(EXIT_FAILURE)/
s/exit(0)/exit(EXIT_SUCCESS)/
add <ac/stdlib.h> where needed and other minor header adjustments
1999-08-03 18:14:24 +00:00
Hallvard Furuseth
a49590eab7 Missed an instance of s/struct attrinfo/AttrInfo/ 1999-08-01 20:25:15 +00:00
Kurt Zeilenga
6fb50094d8 Experimental fix to ITS#179 fix. 1999-07-31 03:37:40 +00:00
Kurt Zeilenga
79e28bda6f Fix modlist bug in last commit 1999-07-29 18:19:06 +00:00
Kurt Zeilenga
51d16c18a9 Save attributes until we've completed schema check and
modified indices.
1999-07-29 04:41:49 +00:00
Kurt Zeilenga
de8a1d518a Slightly better ITS#238 fix than last commit... has Debug
message, doesn't bother to open/close index files...
1999-07-28 23:19:16 +00:00
Kurt Zeilenga
0e4e5c7a13 Fix index_change_vals NULL vals bug (ITS#238) 1999-07-28 22:57:52 +00:00
Kurt Zeilenga
9c61bc561f Return LDAP_CONSTRAINT_VIOLATION if user attempts to modify
a non-user-mod attribute (such as timeStamps).
Move generation of add_modify_attrs to frontend.
update of add_modify_attrs on modrdn needs work (currently
not updated to maintain consistency with replicas).
1999-07-27 20:00:31 +00:00
Kurt Zeilenga
44e15153e7 Fix "dn" index. Only "sub" was being generated instead of "eq,sub". 1999-07-27 00:51:19 +00:00
Kurt Zeilenga
a39cf6f93d Add support for LDAP_ALL_OPERATIONAL_ATTRIBUTES ("+") (based on
LDAPext discussions).
Add attrs and attrsonly support to monitor/config info.
Add rdn attributes to schema/monitor/config.
Add extensibleObject objectclass to schema/monitor/config.
Add top objectclass to rootdse/monitor/config.
Remove opattrs option from send_search_entry().
1999-07-24 03:39:23 +00:00
Kurt Zeilenga
766b78765f Typo made all missed all aliasedobjectname values. 1999-07-22 19:17:16 +00:00
Kurt Zeilenga
68d561a97b Add limited LDAP_INVALID_DN_SYNTAX support. dn_normalize{,_case}() now returns
NULL does not meet basic syntax rules.
1999-07-22 17:14:42 +00:00
Kurt Zeilenga
0ed1a76d27 Release writer lock on new parent. 1999-07-22 03:42:02 +00:00
Kurt Zeilenga
170836751a Namespace changes
added slap_ and ldbm_ to many structures
  added typedefs to many structures
  used typedefs
New main.c argument parsing with ldap url support (replacing -a address).
New sockaddr_in handling and support for multiple listeners.
1999-07-19 19:40:33 +00:00
Kurt Zeilenga
12f481d657 Import patches mistakenly applied to OPENLDAP_DEVEL_REFERRALS.
ldap_modify: delete of last attribute value should delete attribute (ITS#229)
thr_nt: use sleep to yield
1999-07-18 00:33:30 +00:00
Kurt Zeilenga
f92d01c2bb fix substring_comp_candidates logic if intersection of candidates
is ever empty.  See ITS#228.
1999-07-16 22:26:57 +00:00
Kurt Zeilenga
73276e84ae Import experimental referral implementation from OPENLDAP_DEVEL_REFERRALS.
Includes support for update referral for each replicated backend.
	Reworked replication test to use update referral.
Includes major rewrite of response encoding codes (result.c).
Includes reworked alias support and eliminates old suffix alias codes
(can be emulated using named alias).
Includes (untested) support for the Manage DSA IT control.
Works in LDAPv2 world.  Still testing in LDAPv3 world.
Added default referral (test009) test.
1999-07-16 02:45:46 +00:00
Kurt Zeilenga
e9c2895472 Add support for unsolicited notifications. 1999-07-07 18:51:39 +00:00
Kurt Zeilenga
b8edef2b2c Copy LDBM bind "ACL_AUTH" and SASL framework to bdb2. 1999-07-07 18:47:51 +00:00
Kurt Zeilenga
51d1c90887 unifdef -DSLAPD_ACLGROUPS -DSLAPD_ACLAUTH 1999-07-05 06:26:26 +00:00
Kurt Zeilenga
49f39bc4cf o_dn/o_ndn must not be NULL. Set to "" upon receiving bind request. 1999-07-04 19:37:25 +00:00
Kurt Zeilenga
106eef41d8 HEADS UP: connections are forced to "anonymous" status upon receiving
of a bind request and, upon failure, are left "anonymous."

Rework ACL code to hide access testing within macros to facilate additions
and eventual redesign.

Addition of #ifdef SLAPD_ACLAUTH to conditional include EXPERIMENTAL
"auth" access controls.  Adds ACL_AUTH "auth" access level (above none,
below "compare").  bind requires anonymous access at this level or above access
to "entry"/"userPassword"/"krbName".  This allows administrators to restrict
which entries can be bound to.  (This will likely become default behavior
after testing has completed).
1999-07-04 18:46:24 +00:00
Kurt Zeilenga
9225707a06 Modify lutil_passwd to accept a third argument char** methods to
specific which methods may be used.  This will facilate development
of a slapd config directive "passwordMethod ..." to specify which
methods should be allowed.
1999-06-29 22:24:53 +00:00
Kurt Zeilenga
fe00263875 expose oc_check_operational from schema.c
Use everywhere.
Apply search ACLs to operational attributes.
Only provide operational attributes when explicitly requested.
1999-06-29 04:52:55 +00:00
Kurt Zeilenga
a7dfc2aada Add sasl "mech" argument to backend bind routines. 1999-06-29 03:29:26 +00:00
Kurt Zeilenga
1ee85df297 Add framework for sasl and controls. 1999-06-29 03:17:22 +00:00
Bastiaan Bakker
5a470f8959 Merged dynamic module support patch (see ITS #196). To enable, run ./configure w
ith --enable-modules. GLib v1.2 or higher is required.
1999-06-24 17:06:34 +00:00
Bastiaan Bakker
e2b5b21155 Added connection initialisation and destruction notification. Now backends can register functions in backend_info.bi_connection_init and backend_info.bi_connection_destroy that will be called when a connection is initialized or destroyed. 1999-06-23 12:31:35 +00:00
Kurt Zeilenga
f9a560114a Allow adding of dn: o=foo if suffix is "" and rootdn. 1999-06-19 04:26:17 +00:00
Kurt Zeilenga
669b8f4047 ber_int_t, ber_tag_t, ber_socket_t, ber_len_t
added lber_types.h.nt, lber_types.h.in
removal of NULLxxx internal macros (in favor of NULL).
ch_free added to slapd,slurpd/ch_malloc.c
#define free ch_free (should be removed after s/free/ch_free/g) in proto-slap.h
ch_malloc and friends use ber_memalloc and friends
1999-06-18 23:53:05 +00:00
Gary Williams
e2a1216bda change DIRSEP to LDAP_DIRSEP 1999-06-18 21:21:32 +00:00
Kurt Zeilenga
21e081dc5b Separate autoconf generated values from "defaults".
ldap_defaults.h incorporates non-generated ldapconfig.h values.
	ldap_config.h.in is new template for autoconf generated defaults
		(namely directories and paths)
	ldap_config.h.nt, NT template (must be manually copied)
	s/<ldapconfig.h>/<ldap_defaults.h>/
	s/DIRSEP/LDAP_DIRSEP/ & s/DEFAULT_/LDAP_/
1999-06-17 03:54:25 +00:00
Juan Gomez
4a683c204d Replaced add/delete_value() by change_value() and index_add/delete_value()
by index_change_values(). The functions were exactly the same but for
one call.
1999-06-15 23:56:28 +00:00
Juan Gomez
5b0e434d93 Enabled deletion of stale index entries. (EXPERIMENTAL) 1999-06-15 20:06:16 +00:00
Juan Gomez
e1819eaff9 Added function delete_value() to remove entries from the index files
when necessary.
1999-06-15 19:50:20 +00:00
Juan Gomez
499b8fdc04 Added index_delete_values() in preparation for changes that will keep
index files clean.
1999-06-14 18:16:05 +00:00
Juan Gomez
bf49544833 s/official/canonical/ & s/at_on/at_cn/ 1999-06-14 16:36:00 +00:00
Juan Gomez
7d8330fd40 Added code for uniform naming of index files. 1999-06-11 20:42:48 +00:00
Kurt Zeilenga
21c70857f1 s/<stdlib.h>/<ac/stdlib.h>/ 1999-06-03 00:37:44 +00:00
Kurt Zeilenga
e44c8504f3 value_normalize can change the length of value. Fixed
use in index_add_value(), but should modify value_normalize
to use a struct berval * instead of a char* pointer...
1999-06-02 20:29:35 +00:00
Kurt Zeilenga
fbc0bd013e Minor adjustments to better handle NT vs UNIX. 1999-05-29 18:57:23 +00:00
Kurt Zeilenga
4e5ed2dffc Changed lc_conn to be a pointer to a BerElement to aid in state management.
Added validation to exposed opaque data structures (BerElement, Sockbuf,
and LDAP).  Added macros BER_VALID, SOCKBUF_VALID, LDAP_VALID.
Added ber_pvt_ber_bytes() and ber_pvt_ber_remaining() macros to hide
some ber internals.  These really should be handled by ber_get_option().
1999-05-28 19:33:05 +00:00
Julio Sánchez Fernández
7f357399cf First step in new schema support. 1999-05-28 14:27:07 +00:00
Kurt Zeilenga
0ce6ddb80c Make a copy of "dn" to avoid modification of string literal. 1999-05-27 23:04:28 +00:00
Juan Gomez
128f31dc3c Added fix to allow modrdn whose new rdn was already an attr value. 1999-05-26 11:59:54 +00:00
Juan Gomez
03740bd1f4 Added support for LDAP_MOD_SOFTADD. 1999-05-26 11:45:17 +00:00
Juan Gomez
5a16e3b9e9 Fixed index file naming bug and added support for LDAP_MOD_SOFTADD. 1999-05-26 11:41:14 +00:00
Kurt Zeilenga
6b45dde2e6 Removed too much LINT. 1999-05-22 00:31:36 +00:00
Kurt Zeilenga
e05688d25e Remove LINT. 1999-05-21 23:15:47 +00:00
Kurt Zeilenga
450b02ca58 s/WIN32/HAVE_WINSOCK/
remove old Version.c
1999-05-21 03:53:37 +00:00
Juan Gomez
1426f2b1bd Do code reuse through ldbm_modify_internal(). 1999-05-19 18:27:25 +00:00
Juan Gomez
150e105f41 Fixed a memory leak and getting ready to reuse some code between
modify and modrdn.
1999-05-19 04:00:58 +00:00
Kurt Zeilenga
dc07e765f2 Vienna Bulk Commit
This commit includes many changes.  All changes compile under NT but
have not been tested under UNIX.

A Summary of changes (likely incomplete):

NT changes:
	Removed lint.
	Clean up configuration support for "Debug", "Release", "SDebug",
		and "SRelease" configurations.
	Share output directories for clients, libraries,
		and slapd.  (maybe they should be combined further
		and moved to build/{,S}{Debug,Release}).
	Enable threading when _MT is defined.
	Enable debuging when _DEBUG is defined.
	Disable setting of NDEBUG under Release/SRelease.  Asserts
		are disabled in <ac/assert.h> when LDAP_DEBUG is not
		defined.
	Added 'build/main.dsp' Master project.
	Removed non-slapd projects from slapd.dsp (see main.dsp).
	Removed replaced many uses of _WIN32 macro with feature based
		macros.

ldap_cdefs.h changes
	#define LDAP_CONST const
		(see below)
	#define LDAP_F(type) LDAP_F_PRE type LDAP_F_POST
		To allow specifiers to be added before and after
		the type declaration.  (For DLL handling)

LBER/LDAP changes
	Namespace changes:
		s/lber_/ber_/ for here and there.
		s/NAME_ERROR/LDAP_NAME_ERROR/g
	Deleted NULLMSG and other NULL* macros for namespace reasons.
	"const" libraries.  Installed headers (ie: lber.h, ldap.h)
		use LDAP_CONST macro.  Normally set to 'const' when
		__STDC__.  Can be set externally to enable/disable
		'constification' of external interface.  Internal
		interface always uses 'const'.  Did not fix warnings
		in -lldif (in lieu of new LDIF parser).

	Added _ext API implementations (excepting search and bind).
		Need to implement ldap_int_get_controls() for reponses
		with controls.

	Added numberous assert() checks.

LDAP_R
	_MT defines HAVE_NT_THREADS
	Added numberous assert() checks.
	Changed ldap_pthread_t back to unsigned long.  Used cast
	to HANDLE in _join().

LDBM
	Replaced _WIN32 with HAVE_SYSLOG

ud
	Added version string if MKVERSION is not defined.  (MKVERSION
		needs to be set under UNIX).

slapd
	Made connection sockbuf field a pointer to a sockbuf.  This
		removed slap.h dependency on lber-int.h.  lber-int.h now only
		included by those files needing to mess with the sockbuf.
	Used ber_* functions/macros to access sockbuf internals whenever
		possible.
	Added version string if MKVERSION is not defined.  (MKVERSION
		needs to be set under UNIX).
	Removed FD_SET unsigned lint

slapd/tools
	Used EXEEXT to added ".exe" to routines.  Need to define EXEEXT
		under UNIX.

ldappasswd
	Added ldappasswd.dsp.  Ported to NT.  Used getpid() to seed rand().

nt_debug
	Minor cleanup.  Added "portable.h" include and used <ac/*.h> where
	appropriate.  Added const to char* format argument.
1999-05-19 01:12:33 +00:00
Ben Collins
d4f4f8f197 Moved db1/db.h check to the db1 marco in openldap.m4. Also added check for HAVE_DB1_DB_H for which header to include since it's only defined when using db1 1999-05-07 01:27:16 +00:00
Hallvard Furuseth
ca7dba5182 ITS#141: Add ldbm_ignore_nextid_file, since tools/ldif2* handles it privately 1999-04-30 05:24:16 +00:00
Kurt Zeilenga
d8aef04224 Modify meaning of SLAPD_CHILD_MODIFICATION_ENTRY_ACL to augment
"children" ACLs with "entry" ACLs (versus replacement of children
ACLs with "entry" ACLs).
1999-04-30 02:34:46 +00:00
Hallvard Furuseth
786bbe4fc1 enclose macro arguments in () 1999-04-30 00:35:27 +00:00
Hallvard Furuseth
de810942e1 ITS#141: move body of next_id_save() into new function next_id_get_save(),
so the (read id, write id) sequence is protected by li_nextid_mutex.
1999-04-29 22:26:58 +00:00
Hallvard Furuseth
e4c84b9d36 Fix typos SLAPD_NEXTID_CHUCK/SLAPD_NEXTID_CHUNCK -> SLAPD_NEXTID_CHUNK 1999-04-29 18:26:25 +00:00
Kurt Zeilenga
af26f023e7 Ignore idl_delete_key errors. LDBM isn't transactional, state
indexes could be hosed.
1999-04-29 01:42:43 +00:00
Kurt Zeilenga
dba57a312c Add mkversion script to generate version.c files. mkversion generates
identification strings compatible with ident(1) and what(1).
Uses $(VERSION) generated from configure.in.  rm build/version
rm old version .c files
1999-04-28 05:40:17 +00:00
Juan Gomez
a88bf50b31 Updates index for rdn attribute type avoiding the 'dissapearing entry'
problem reported in IT78. Index files will still be stale if the modrdn
uses deleteoldrdn.
1999-04-20 03:36:00 +00:00
Gary Williams
6bfc4ec022 adjust projet settings 1999-04-14 17:10:56 +00:00
Gary Williams
af423fd393 fix Release configuration 1999-04-14 15:12:19 +00:00
Kurt Zeilenga
a3f9a59e4b Add XXX comment to cache modified from underneath kludge. 1999-04-13 22:41:14 +00:00
Hallvard Furuseth
169d6d0200 Add entry.c to complete previous change 1999-04-13 06:15:03 +00:00
Hallvard Furuseth
62aa401bd7 Add struct backend_info->bi_entry_release_rw and related functions.
Move cache_return_entry_w() out of ldbm_back_add when the add is successful.
This change breaks back-bdb2, it needs equvalent changes of those in back-ldbm.
1999-04-13 06:08:28 +00:00
Kurt Zeilenga
ad35a9d4a6 Add trace message when found entry is busy. 1999-04-11 22:16:30 +00:00
Hallvard Furuseth
59e7798448 Fix typo ldap_pvt_thread_mutex_lock -> ldap_pvt_thread_mutex_unlock 1999-04-11 19:36:19 +00:00
Kurt Zeilenga
f16846eb15 Apply LDBM cache changes (c_mutex streamlining) to BDB2 and back. 1999-04-10 04:28:02 +00:00
Kurt Zeilenga
0317638cf6 Addition streamlining of code behind c_mutex. 1999-04-10 01:35:19 +00:00
Kurt Zeilenga
f34bd50e30 Streamline code during finds to reduce contention on c_mutex.
Move Debug messages outside of c_mutex.  Other LDBM cache codes
also should be streamlined.  Resultant approaches should then
be applied to back-bdb2.
1999-04-09 18:33:52 +00:00
Kurt Zeilenga
a28f9e03be More errno handling changes for FreeBSD LinuxThreads. 1999-04-08 04:17:32 +00:00
Hallvard Furuseth
d9d11a315f ifdef SLAP_CLEANUP: close db files, free memory, some other cleanup before exit 1999-04-06 01:55:11 +00:00
Kurt Zeilenga
cf4371d108 Backout last change... finish my first coke... try again later... 1999-04-05 18:30:56 +00:00
Kurt Zeilenga
66164a1b58 Share unlock and return between true and false paths. 1999-04-05 18:21:31 +00:00
Hallvard Furuseth
dae494e45d Delay free(e.e_ndn) in cache_find_entry_dn2id() to after "goto try_again" 1999-04-05 18:01:11 +00:00
Hallvard Furuseth
2915ed56db plug memory leak of li->li_nextid_file 1999-04-04 21:53:39 +00:00
Hallvard Furuseth
db859cee36 strdup/free li->li_directory when chaning, so unmalloced version won't be freed 1999-04-04 21:49:56 +00:00
Hallvard Furuseth
47f9f7e79d fix typo in comment in ldbm_back_close 1999-04-04 21:39:24 +00:00
Hallvard Furuseth
2b32e6afd7 Plug memory leaks 1999-04-04 21:34:33 +00:00
Hallvard Furuseth
f172f7ee9c Remove superfluous \ at end of lines outside macros; DEC cc doesn't like them. 1999-04-03 09:20:41 +00:00
Kurt Zeilenga
e46877f89f cache: implement try_again loop if cache entry is not ready.
id2entry: when an error occurs attempting to insert fetched
entry into cache, check to see if entry was added by another
thread.  If so, return the entry added by the other thread.
The concurrency tests now run without the dreaded "no such object"
error messages!
1999-04-02 19:09:59 +00:00
Hallvard Furuseth
815a62930c UNDO LAST COMMIT. 1999-04-02 03:45:33 +00:00
Hallvard Furuseth
45118be88e Fix wait4child change: Prefer wait3 over wait. Use SIGNAL instead of signal. 1999-04-02 03:23:20 +00:00
Hallvard Furuseth
d5938af750 Enclose `DB_ENV li_db_env' declaration in #ifdef HAVE_BERKELEY_DB2 1999-04-01 22:18:09 +00:00
Kurt Zeilenga
dda1fb4ba0 Updates for NT4 (MSVC5++).
Removed external include/library paths from projects.  External paths should
be set via Tools | Options | Directories.  This allows each developer the
freedom to install external libraries where they desire.
Used libdb.lib instead of libdbs.lib to avoid thread conflicts.
Added hs_regex.lib to library input.  We require some form of regex, this
library works (and is relatively easy for the user to install).
Removed a little lint which MCVC5 detected.
Need to sort out single-threaded vs multithreaded library generation.
1999-04-01 20:26:09 +00:00
Gary Williams
e6b47355f9 NT port 1999-04-01 14:50:34 +00:00
Kurt Spanier
1c7ebc514f Some minor clean-up; checking bdb2 for sync with ldbm. 1999-04-01 09:58:36 +00:00
Will Ballantyne
4fbc5ed92c check for NULL newDN prior to final deref check 1999-03-26 05:36:26 +00:00
Juan Gomez
90ebcb8bd9 Added support for newSuperior. 1999-03-24 21:45:15 +00:00
Kurt Zeilenga
8f02beada9 PROTOTYPE: New connection management infrastructure designed to
remove race conditions on connection close.
BROKEN: various counters for dn=monitor.
Initial testing on FreeBSD (with and without pthreads) was successfull.
Have not yet tested preemptive threading environments.
Have not built against backends other than LDBM.
1999-03-22 07:14:54 +00:00
Juan Gomez
f8a0a67e5f Fixed a bug related to the deallocation of memory for new_dn and new_ndn,
They must not be deallocated since they are used by the cache entry.
1999-03-10 22:17:54 +00:00
Juan Gomez
c2a0632e63 Added support for deleteoldrdn. 1999-03-09 08:07:57 +00:00
Juan Gomez
b9f9b8805a Fixed type by changing rdn_type to new_rdn_type. 1999-03-09 00:42:57 +00:00
Juan Gomez
23b3217b66 Added software to add the new rdn as an attribute to the entry.
(First step towards full LDAPv2 support).
1999-03-07 09:31:54 +00:00
Hallvard Furuseth
3277a27b10 Remove unused variables 1999-03-06 16:29:05 +00:00
Juan Gomez
3ba99a75ef Added parameter newSuperior in preparation to support
LDAP v3 MODDN request.
1999-03-05 03:38:12 +00:00
Juan Gomez
ddf04f5900 Made add_values(), delete_values(), and replace_values() so they can be
used in implementing modrdn v3.
1999-03-03 22:00:16 +00:00
Juan Gomez
98c2a61313 Made add_values(), delete_values(), replace_values() so they can be used
for implementing modrdn v3.
1999-03-03 21:58:51 +00:00
Hallvard Furuseth
69a93a0582 function pointers are incompatible with `void *'; remove NULL or replace with 0 1999-03-03 17:02:10 +00:00
Bart Hartgers
e0fdd89432 Annoying little son of a `free' BUG fixed. 1999-03-02 20:14:11 +00:00
Kurt Zeilenga
4e160e83b6 Replace IFP() with appropriate full prototypes:
AVL_CMP, AVL_DUP, AVL_FREE, AVL_APPLY.
Apply casts as needed.
Change data pointer from caddr_t to void *.
1999-03-02 00:32:59 +00:00
Kurt Zeilenga
a8a05cbe48 Update NT port with support for -lldap_r and -lldbm.
Also add initial slapd .dsw/.dsp files.  Still needs work (mainly syslog).
1999-03-01 22:37:05 +00:00
Kurt Zeilenga
3984323bf9 Fix minor memory leak and remove redundant be_isroot_pw() checks.
Suggested by Pierangelo Masarati <pmasarati@bci.it> in post to -bugs.
1999-03-01 19:42:06 +00:00
Kurt Spanier
6e63b58a3e Update of back-bdb2 to KDZ's new entry lock schema.
Fix of a back-bdb2 --> back-ldbm leakage (==> new bdb2-specific DB file suffix).
1999-02-12 12:13:03 +00:00
Kurt Zeilenga
2a20131eaa Consistently use %ld for printing IDs. %lu was used in many cases.
I rather have NOID printed as "-1".  It it could argued that ID
should be signed.
1999-02-11 18:19:52 +00:00
Kurt Zeilenga
c2c0d9687f Complete entry_cmp() migration (remove rename macros). 1999-02-11 17:52:28 +00:00
Kurt Zeilenga
745a10f080 Update LDBM cache so that it manages it's own state.
cache_set_state() and state args are no history.
Move cache_entry_cmp() and friends to slapd/entry.c to allow sharing
of functions between backends..  Renamed to entry_cmp().
1999-02-11 17:46:56 +00:00
Kurt Zeilenga
88c43a1e6e Move LDBM-backend specific fields of Entry struct into a private struct.
The new e_private field can be used for any backend purpose.  In LDBM,
it's used to point th the private entry info struct.  The LDBM entry
info struct is only visible to the LDBM cache.
WARNING: This change has not be ported to other backends!  Breakage is likely.
1999-02-10 18:28:25 +00:00
Kurt Zeilenga
fc022ed0d4 Patch modrdn to remove extra space. 1999-02-09 17:58:13 +00:00
Kurt Spanier
42f6e78dd4 Integration of the BDB2 backend into the new init/startup/shutdown schema.
Integration into ./configure ( --enable-bdb2 ).
Adaptation of the test-suite ( 'make' -> ldbm; 'make bdb2-local' -> bdb2 ).
Minor fixes in slapd/libldbm.
1999-02-08 11:42:14 +00:00
Kurt Zeilenga
587535a310 Really fix those reader/writer lock asserts... 1999-02-07 17:57:50 +00:00
Kurt Zeilenga
7eaae29f6f Fix cache asserts on entry writer locks. 1999-02-07 02:50:10 +00:00
Kurt Zeilenga
dde7e3dfa6 Don't call idl_free() unless necessary. 1999-02-05 23:46:03 +00:00
Kurt Zeilenga
63f5ec8f8b remove ;; typo 1999-02-05 17:39:38 +00:00
Kurt Spanier
d92b9d3c9e Introduction of a new Berkeley DB version 2 (!) specific backend.
BEWARE: the backend will be compiled.
        the backend will NOT be invoked, yet.
        the backend CANNOT be invoked, yet, because it is NOT yet
            integrated into the new initialization/startup environment
            of the slapd server.
1999-02-05 16:23:03 +00:00
Kurt Spanier
8107ec91f0 Fix braindead signal handling in linux kernal threads.
First version with waiting on int to become 0; should be implemented
  via conditional variable...
Fix of typos.
First anchor for new bdb2 backend.
1999-02-05 13:20:57 +00:00
Kurt Zeilenga
216049bd12 New Frontend->Backend Interface
Separates per backend type from per backend database initialization
	and startup.  Also supports per type / per backend shutdown.
New frontend startup/shutdown routines are also provided:
	slap_init() slap_startup() slap_shutdown() slap_destroy()
New frontend->backend startup/shutdown is managed by:
	backend_init() backend_startup() backend_shutdown backend_destroy
backend_init() now calls bi_init() to initial all function pointers
for the backend (excepting bi_init() which is now the only hardcoded
entry point).  New entry points are detailed in slap.h struct
backend_info.  backend_info is a per database type structure.
Besides the new startup/shutdown entry points, the new interface
also supports per backend type configuration options.  One could have:

	backend bdb2	(new Berkeley DB 2 backend)
	bdb2_home	/directory

	database bdb2
	...

	*** This code is fairly experimental ***
	*** Much cleanup and testing is still needed ***

see slap.h for details on struct backend_db and backend_info.
1999-02-05 09:03:47 +00:00
Will Ballantyne
44c5c21078 additional checks around derefAlias_r call:
check for alias problem
check for alias != entry
check for null entry in subsequent switch statement
1999-02-04 18:55:58 +00:00
Kurt Zeilenga
366701bdf7 Fix dbcache/entry lock deadlock. If dbcache lock is held, it's
okay to read and write LDBM specific fields (state, refcnt,
LRU.  The id field, though is read-only once set.
cache_find_entry_dn2id(), hence, does not require any entry locks.
cache_find_entry_id() must do a entry_rdwr_trylock() and back
off if busy.
Add new rdwr lock code with trylock() functionality.
Implement entry_rdwr_trylock().
1999-02-04 18:00:50 +00:00
Kurt Zeilenga
fc44d42c53 Backout startup/initialization changes in preparation for new
frontend->backend interface.
1999-02-04 17:28:49 +00:00
Kurt Zeilenga
c6882d4670 Remove rwlock diag messages. 1999-02-04 17:24:26 +00:00
Kurt Zeilenga
efce9cffb4 Use LDAP_ALIAS_DEREF_PROBLEM for all problem dereferencing aliases.
LDAP_ALIAS_PROBLEM is now only used if the alias itself is mangled.
1999-02-04 17:23:34 +00:00
Will Ballantyne
be9e28907e inserted additional checks for null values, comments
fixed deadlocks
1999-02-04 00:21:57 +00:00
Kurt Zeilenga
7903584911 Use idl_fetch_one() to fetch single id_blocks instead of separate
ldbm_cache_fetch() codes.
1999-02-03 17:14:01 +00:00
Kurt Zeilenga
ace9fb68c5 Fix ALLIDS bugs
Fix memory leaks
1999-02-03 04:45:08 +00:00
Kurt Zeilenga
16b3111ac7 Got that logic backwards... 1999-02-03 03:50:11 +00:00
Kurt Zeilenga
0c2ce661fb first arg of ldbm_db_errcall could be a const char * instead of char *. 1999-02-02 23:15:45 +00:00
Kurt Zeilenga
40ba9bc80b Don't try to free NULL idl. Did not cause a problem, though, as
idl_free() had insurance.
1999-02-02 22:46:21 +00:00
Kurt Zeilenga
92e71b459b Hack up a quick bandaid to make things compile. Startup/Initialization
needs work.
1999-02-02 19:26:00 +00:00
Kurt Spanier
442c7e7a7b Added startup/shutdown routine for slapd back-ends. 1999-02-02 08:03:03 +00:00
Kurt Zeilenga
433e8ad645 Add a few comments to help detail some of these functions. 1999-02-02 03:40:19 +00:00
Kurt Zeilenga
3e48937ac8 Fix idl_firstid to return NOID when !(nids > 1) instead of when (nids == 1)
Fix idl_nextid not to skip an ID if ID not in list.
Both of these should not occur if used correctly, but cheap insurance
against incorrect usage is welcomed.
1999-02-02 02:46:18 +00:00
Kurt Spanier
314f3f6ed7 Introduction of a backend startup/shutdown function to make backend-specific
initialization after reading slapd.conf, and before starting the daemon
1999-02-01 17:37:43 +00:00
Kurt Zeilenga
59a288abb5 Rewrite IDL block code to use simple array and accessor macros
instead of array with overlayed struct fields.  (which is inherently
non-portable).
Change maxid check in insert to be greater than or equal instead
of equal.
Use SAFEMEMCPY.
1999-01-31 07:55:53 +00:00
Kurt Zeilenga
1d70b89234 Make sure e_ndn is used! 1999-01-28 17:32:59 +00:00
Kurt Zeilenga
72ba4cfb71 Use -lldap_r instead of -lldap -lthread.
Likely broke things for non-posix threadings....

Update -lldap_r implementation to:
	remove attribute support
	hide thread detachment
	provide concurrency accessors
	provide initialization function
	fix gethostby{addr,name}_r codes (not coverred by HAVE_REENTRANT_FUNCTIONS)
Update servers/libraries to use ldap_pvt_thread_ calls.
Cleanup server codes (no #ifdef HAVE_PTHREAD_THIS or _THATs)!
Removed -llthread
1999-01-28 04:34:55 +00:00
Kurt Zeilenga
bd6dfe333d LDBM/back-ldbm locking reworked!
back-ldbm was using a cache specific lock to protect non-reentrant
	database routines from being reenterred.  This is inadequate.
	Also, reentrant database systems calls were serialized unnecessarily.

	Non-reentrant database calls must have a big_mutex.  Implemented
	this within -lldbm itself.  library requires ldbm_initialize()
	be called before any other ldbm call to initialize the big_mutex
	and to do any other db specific initialization (ie: such as
	required for DB2).

The dbc_mutex, dbc_cv, & dbc_readers fileds of dbcache are history.
The "reentrant_database" (REENTRANT_DATABASE) define is also axed.
1999-01-26 20:55:54 +00:00
Kurt Zeilenga
f1e934effb Hide allocate of reentrant_database cond varible and reader count
behind REENTRANT_DATABASE.  rename reentrant_database -> REENTRANT_DATABASE.
When REENTRANT_DATABASE is defined, the simple lock is replaced
with a simple reader/writer lock.  This functionality should be removed
from back-ldbm to libldbm.
1999-01-26 17:23:50 +00:00
Kurt Zeilenga
3c67248a65 cache_set_state( cache, e, 0) cannot occur before lock on parent/root
is released.  Some other thread may have cache locked but blocking
on parent.  Must give up parent lock before acquiring cache lock.
1999-01-26 05:22:58 +00:00
Kurt Zeilenga
4194c3ee85 If dn2id returns ID but id2entry returns NULL, log it.
Assume entry was deleted from underneath the dn2entry call,  hence
processing is same as if NOID had been returned.
1999-01-23 19:33:53 +00:00
Kurt Zeilenga
0f17fac37d Implement NEXTID chunking. Obtain IDs in chunks of size
SLAPD_NEXTID_CHUNK.  Code protects NEXTID file to ensure
its equal to or greater than nextid.  Updated on close
to actual nextid.  next_id_save() could be called periodically
if desired.  Default chunk size is 32.  Define to 1 to disable
chunking.
1999-01-22 02:26:19 +00:00
Kurt Zeilenga
5389e40ba5 initialize nextid with NOID not -1. 1999-01-22 01:53:39 +00:00
Kurt Zeilenga
2318ea0fd6 Don't return nextid on failed add operations for safety. 1999-01-22 01:51:53 +00:00
Kurt Zeilenga
5bfb3ac221 nextid cleanup in preparation to disable next_id_return(). 1999-01-22 01:40:39 +00:00
Kurt Zeilenga
ecdf9a354d Entry must be locked before adding it to the cache.
This removes a race condition upon the entry.
1999-01-22 00:27:50 +00:00