Commit Graph

40 Commits

Author SHA1 Message Date
Kurt Zeilenga
f999e1350d Provide global assert solution. <ac/assert.h> (new) is now included
by portable.h with NDEBUG undefined.  This makes assert() is always
available and automatically disables itself when LDAP_DEBUG is undefined.
I've included a basic assert() for pre-STDC compilers.  It relies on
abort() which may not actually be available.  (well replace abort()
with whatever is appropriate if and when we're faced with a pre-STDC
compiler that doesn't have assert()).
1999-03-20 03:13:24 +00:00
Kurt Zeilenga
4f60044d29 First cut at bind race fix. Passes our test suite at least. 1999-03-16 23:33:30 +00:00
Kurt Zeilenga
fa81f43f04 Initial check of connection states. Have only implemented
SLAP_C_ACTIVE vs SLAP_C_INACTIVE.  Need to implement BINDING and CLOSING.
Added fields tracking pending (on bind) ops.  Could also be used to
implement per-connection thread limits.
1999-03-16 02:59:59 +00:00
Juan Gomez
3ba99a75ef Added parameter newSuperior in preparation to support
LDAP v3 MODDN request.
1999-03-05 03:38:12 +00:00
Kurt Spanier
5d2699b7ce Introduction of first version of transaction processing (TP) into BDB2. 1999-03-01 11:30:18 +00:00
Kurt Spanier
2cf83d84ee Server timing as a private feature of the bdb2 backend. 1999-02-12 14:36:16 +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
eb8dcb6e21 Add a field to count the number of databases per type (bi_nDB) to
the backend type info structure.  Use this filed to control open
and close such that backend's without databases are skipped.
1999-02-09 17:41:56 +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 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
Kurt Zeilenga
d27b2f811e Backout recent initialization/startup changes in prep for new
frontend->backend interface.
1999-02-04 17:33:46 +00:00
Kurt Zeilenga
2b29521596 Fix statlog... debugging change got commit by mistake. 1999-02-02 14:06:23 +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
8981a52ed3 Rebuild configure using autoconf 1.3 (with aclocal from automake 1.4). 1999-02-01 01:36:42 +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
0181892175 Change o_private from int to void*. Use it to hold a pid_t (and hope it fits).
Have forkandexec() return pid_t instead of int.
1999-01-26 04:32:26 +00:00
Kurt Zeilenga
09421a74db Add c_protocol to slap_conn to track protocol version used by client.
Is initialized to 0 (unknown) and then set to 2 or 3 on bind.  Should
also be 0->3 if a special (or any) operation occurs before the bind.
1999-01-21 02:21:39 +00:00
Kurt Zeilenga
b3d383bbf5 *** empty log message *** 1999-01-21 01:12:35 +00:00
Kurt Zeilenga
0daa8c1f06 Recode suffixAlias to implement simple check to see if part to aliased
is at a DNSEPARATOR.  Moved DNSEPARATOR macro from dn.c to slap.h
1999-01-19 19:26:09 +00:00
Kurt Zeilenga
029069d84a Removed o_suffix and o_suffixalias as they were 1) leaked and 2) unused
(suffixAliasing only maps input dn's, not output dn).
1999-01-19 18:54:19 +00:00
Kurt Zeilenga
e2a15115b0 Update slap_conn to maintain client provided dn and bound dn.
Update slap_op to maintain dn and ndn (derived from conn->c_dn).
Update ldbm_back_bind to return actual bound dn (including rootdn)
	for use in slapd_conn.  Other backends use client dn.
Modify other codes to use ndn (normalized uppercase dn) most everywhere.
Aliasing, Suffixing and modrdn could use more work.
Applied suffixing to compare and modrdn.
1999-01-19 05:10:50 +00:00
Kurt Zeilenga
b39fdc0bcd Add normalized dn to Entry structure as field e_ndn. Entry
creation codes to provide this field.  Update cache_entrydn_cmp
to strcasecmp() the e_ndn instead of e_dn.  Note: strcasecmp()
is still used as e_ndn isn't in uppercase.  Maybe it should
be.  Did not update other codes to use e_ndn.  Hence, there
are lots of dn_normalize() calls that could be eliminated.
(The case determination of e_ndn should be made first).
1999-01-13 01:17:22 +00:00
Kurt Zeilenga
d0516836b5 rename 'struct op' to 'struct slap_op'
rename 'struct conn' to 'struct slap_conn'
rename op_function to slap_op_func for functions add/delete/free
This change is need to avoid clashing with perl internals.
1999-01-10 02:16:48 +00:00
Kurt Zeilenga
64cd7d3346 Preliminary Fixes for ITS#24, ITS#26, and ldbm_back_add race condition.
Resolved deadlock by passing target entry to be_group and using
this if dn same as bdn.  It might actually be safer to check
entry ids instead of dns.
Resolved bogus add to cache after failed acl check by deferring
cache add until after parent/acl checks have successful been
completed.
Eliminated race condition caused by concurrent adds
of same dn by adding 'li_add_mutex' around the critical section
of code (most of ldbm_back_add).
This code is preliminary and still needs significant testing.
1998-12-30 03:35:23 +00:00
Kurt Zeilenga
a3ac3be6a7 Added lber_get/set_option. Removed lber_debug/ldap_debug.
Updated other codes as needed.
1998-12-22 01:34:01 +00:00
Kurt Zeilenga
2d15a94d16 LDAP C-API changes
struct friendly (Friendly) changed to ldap_friendly (LDAPFriendly)
	  ldap_friendly friend prefix changed to 'lf_' from 'f_'
	removed mod_next field from LDAPMod (struct ldapmod)
	modified slapd to use new LDAPModList (struct ldapmodlist) struct.
Added LDAPv3 result codes to ldap.h
1998-12-21 00:21:58 +00:00
Kurt Zeilenga
362d6cbf2a Add configure code for setting LDAP_SYSLOG but actually use hardcoded
LDAP_SYSLOG in slap.h/slurp.h.
1998-12-20 21:56:44 +00:00
Hallvard Furuseth
7e6ad5100c Protoized, moved extern definitions to .h files, fixed related bugs.
Most function and variable definitions are now preceded by its extern
definition, for error checking.  Retyped a number of functions, usually
to return void.  Fixed a number of printf format errors.

API changes (in ldap/include):
  Added avl_dup_ok, avl_prefixapply, removed ber_fatten (probably typo
  for ber_flatten), retyped ldap_sort_strcasecmp, grew lutil.h.

A number of `extern' declarations are left (some added by protoize), to
be cleaned away later.  Mostly strdup(), strcasecmp(), mktemp(), optind,
optarg, errno.
1998-11-15 22:40:11 +00:00
Kurt Zeilenga
e03d88fcc4 Don't include portable.h. Headers can and should assume portable.h
has been included.
1998-11-11 01:38:02 +00:00
Hallvard Furuseth
c91e7dd285 Avoid f_next name conflict 1998-11-05 02:46:29 +00:00
Kurt Zeilenga
8333a03346 struct ldap is now opaque to clients.
updated clients to use ldap_get/set_options
ld_options is renamed ld_booleans.  ldap-int.h has accessor macros.
updated libldap to use new accessor macros.
1998-11-04 01:41:00 +00:00
Stuart Lynne
7c52060c67 1. extend aclgroup's to be able to specify objectClassValue and groupAttrName
2. update print_acl() a bit and call it during aclparse if LDAP_DEBUG_ACL
1998-10-27 02:07:12 +00:00
Kurt Zeilenga
43f29c3cb8 More header work toward draft-ietf-ldapext-ldap-c-api-01. 1998-10-26 01:49:56 +00:00
Kurt Zeilenga
2a869f5a99 merged with autoconf branch 1998-10-25 01:41:42 +00:00
Kurt Zeilenga
bf6c1e0ad2 Added Will Ballantyne's General Aliasing code.
Not quite sure if the entry lock handling is correct yet.
1998-10-24 02:42:38 +00:00
Kurt Zeilenga
4a5d740e2e Merged in per cache entry reader/writer locks from OPENLDAP_DEVEL_THREAD 1998-09-20 20:22:46 +00:00
Kurt Zeilenga
2ec25ef881 Merged files from branch REGEX_REMOVAL. Despite name, this merge
adds POSIX RegEx (and removes BSD re_comp/re_exec) support.
* POSIX RegEx is not currently included in the distribution, however
	we will probably add Henry Spencer's REGEX library soon.
* ACL Group functionality is also included in this merge!
1998-08-21 06:33:42 +00:00
Kurt Zeilenga
7df4daffcd Merged in LASTMOD changes from Allan Stuart.
Protects createtimestamp and creatorsname.
1998-08-19 01:30:57 +00:00
Kurt Zeilenga
42e0d83cb3 Initial revision 1998-08-09 00:43:13 +00:00