Commit Graph

298 Commits

Author SHA1 Message Date
Kurt Zeilenga
5f20cf1ed5 Modify ldapsearch(1) significantly. Now handles LDAPv3 search
references, extended results, and extended partial results.  LDIF
extended to support these new features and reported version 2.
-L now limits output to LDIFv1 for compatibility reasons.  No
-L is now LDIFv2.  Old alternative form is no longer supported.

Use LDAP_TMPDIR (in ldap_config.h) instead of hardcoded /tmp
Use LDAP_FILE_URI_PREFIX (in ldap_config.h) instead of hardcoded
	file://tmp/
2000-06-25 00:35:17 +00:00
Kurt Zeilenga
ec426532b2 Reworked thread code to better support thread-library specific
r/w locks and thread pools.  Hide internal structures (using
pthread'ish technics).  Place common code in threads.c.  Move
no-thread code to thr_stub.c.  Move thread pool code to tpool.c.
Removed setconcurrency call from initializer, added 'concurrency'
directive to slapd.  Tested code under pthreads, pth, and no-threads.
2000-06-13 02:42:13 +00:00
Kurt Zeilenga
1ef14875db Thought I fixed these errors previously... oh well. 2000-06-10 23:06:08 +00:00
Mark Valence
3cad129608 Removed active_threads count and associated mutex/cond. Replaced with
ldap_pvt_thread_pool_backload() as needed.  All tests run OK on pthre
ads (linux), cthreads, NT threads, and Pth.
2000-06-10 06:40:03 +00:00
Kurt Zeilenga
55dba4395f Update PF_INET6 and PF_UNIX detection, both default to auto 2000-06-09 23:09:51 +00:00
Kurt Zeilenga
140a579e32 Additional IPv6 changes from Stig Venaas
Copyright 2000 Stig Venaas, UNINETT
All rights reserved.

Redistribution and use in source and binary forms are permitted
without restriction or fee of any kind as long as this notice is
preserved. The name of UNINETT 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.
2000-06-09 17:00:22 +00:00
Kurt Zeilenga
bb9d8a0f20 Initialize peername with EOS. 2000-06-08 23:12:52 +00:00
Mark Valence
7ec6a4363f Use thread pool for operation threads. 2000-06-07 19:27:33 +00:00
Kurt Zeilenga
60d6c13d73 Use ldap_pvt_url_scheme2tls() to test for ldaps:// 2000-06-07 17:50:58 +00:00
Mark Valence
185641cb12 ldap_is_ldaps_url takes a char *. Is there a better fix, since the ur
l is already parsed?
2000-06-07 17:28:01 +00:00
Kurt Zeilenga
e5ebc553ac Rework URI parser to provide true scheme not proto/properties.
Plus more pthread rwlock code
2000-06-07 01:09:40 +00:00
Kurt Zeilenga
64d7227821 Basic IPv6 support...
Copyright 2000 Stig Venaas, UNINETT
All rights reserved.

Redistribution and use in source and binary forms are permitted
without restriction or fee of any kind as long as this notice is
preserved. The name of UNINETT 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.
2000-06-06 20:23:22 +00:00
Kurt Zeilenga
60802201e3 Const'ification
SASL mech removed from backend bind callback (as SASL is managed by frontend)
Changes to some backends are untested (as I don't have all dependent
  software install)
2000-05-22 03:46:57 +00:00
Kurt Zeilenga
4bc786f34b Y2k copyright update 2000-05-13 02:47:56 +00:00
Howard Chu
2e5e4c3f20 More fixes for NT support:
liblutil/ntservice.c change registry key path used for non-default
  	service names.
  slapd/Makefile.in change to generate slapd.syms dynamically
  slapd/daemon.c fix to make NT service ignore SIGBREAK
  slapd/main.c fix to allow NT to retrieve listening url from registry
  slapd/nt_svc.c fix for exported symbols
  slapd/result.c change use of strerror to sock_errstr
  slapd/slapd.syms no longer needed
2000-05-11 20:50:20 +00:00
Kurt Zeilenga
a16943d645 Per ITS#419, don't require SLAPD_RLOOKUPS when HAVE_TCPD 2000-01-11 01:12:08 +00:00
Luke Howard
9b4e3b2234 Merged in preliminary support for Cyrus SASL library;
support for DCE slash-delimited, left-to-right DNs;
support for a domain socket transport (enable with
--enable-ldapi); and extensions to URL parsing to
support the latter transport.
2000-01-02 01:21:25 +00:00
Kurt Zeilenga
b1639dadd6 Remove lint
Add copyrights
1999-12-13 04:53:59 +00:00
Kurt Zeilenga
7c28aa058c Add password check and generation check.
Modify tests to use -h "ldap://localhost:port/" instead of -p port.
1999-12-12 18:45:06 +00:00
Mark Valence
31eea5f43c On Windows, WSAENOTSOCK is treated the same as EBADF. This is needed because of a race condition (sock is selected just after another thread closes it), which needs a proper fix. 1999-12-09 22:05:00 +00:00
Howard Chu
d1841b5c1f Fix WAKE_LISTENER hang in single-threaded server 1999-12-02 03:45:54 +00:00
Howard Chu
7eec31c8f6 Don't call FD_SET for an fd if it is already set. This causes major problems
on NT due to their fd_set implementation.
1999-12-02 03:21:06 +00:00
Howard Chu
e63364baac Read a full buffer from wake_sds whenever we wake up from select(). 1999-11-28 04:05:59 +00:00
Kurt Zeilenga
b7af076fee Use centralized output directories.
Update single debug/release not to use service manager nor event manager.
Likely breaks MINGW32 port.
1999-11-01 21:25:22 +00:00
Kurt Zeilenga
baa34f752b Do not attempt to obtain sizeof(sin_addr.s_addr) or &sin_addr.s_addr
as s_addr member of in_addr may be a bitfield.
1999-10-30 04:58:06 +00:00
Howard Chu
f68db53909 Fix Winsock-related warnings and/or bugs.
See README 1.27 log
1999-10-28 07:14:25 +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
Hallvard Furuseth
f3880e5633 Remove lint 1999-09-06 04:42:20 +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
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
5b8d286d40 Fix idle timeout code. 1999-09-01 06:37:46 +00:00
Kurt Zeilenga
ac8b5468aa Clean up soctpair for NT. Add USE_PAIR to allow pair(2) use. 1999-08-31 16:47:42 +00:00
Kurt Zeilenga
b509dd4d8c sockpair cleanup including:
provide prototype in lutil.h
use LBER_SOCKET_T instead of int in prototype.  (didn't use
	ber_socket_t so all of lber.h wouldn't have be dragged in)
rename signal handlers, use RETSIGTYPE, and make SIGHUP wake
rename fd to sd to reflect descriptor must be usable as a socket.
renamed sel_exit_fds to wake_sds to reflect current use
improve readability of sockpeer.c including removing obtuse goto.
1999-08-31 05:18:06 +00:00
Howard Chu
0319dcad17 Use lutil_pair(), WAKE_LISTENER now uses this socket. 1999-08-31 03:26:35 +00:00
Kurt Zeilenga
9826f704b5 Back out to simple sock_errno sock_errstr macros and use WSAGetErrorString
instead of WSAGetLastErrorString to preserve errno like semantics.
1999-08-29 23:33:35 +00:00
Howard Chu
3925d53ccd Replaced sock_errno()/sock_errstr() macros with SOCK_ERR(num,str) 1999-08-29 23:09:27 +00:00
Kurt Zeilenga
32aa582abe Make sock_errstr expect an error value instead of relying on current
errno.
1999-08-29 20:32:34 +00:00
Howard Chu
74543e6c68 Defined tcp_read and tcp_write. Use them in daemon.c 1999-08-29 04:01:16 +00:00
Howard Chu
801bac51c9 per Hallvard's advice: fixed definition of sock_errstr(). 1999-08-29 02:54:58 +00:00
Howard Chu
d75975edf8 Use sock_errno() and sock_errstr() in socket debug messages.
Use a UDP socket connected to itself to allow signals to terminate the
select() in slapd_daemon_task().
1999-08-29 01:51:45 +00:00
Kurt Zeilenga
5c63fd55b5 Implement ldap_dn_normalize and friends. Should be used by clients
to validate input dn's BEFORE sending dn's to server.
Also fixed getfilter to use REG_EXTENDED|REG_NOSUB.  (and fixed one
case where REG_BASIC was still used).
s/strdup/LDAP_STRDUP/
Added ldap_pvt_str2lower/upper
1999-08-25 06:44:08 +00:00
Hallvard Furuseth
2d6460f880 plug memory leak 1999-08-19 11:44:44 +00:00
Kurt Zeilenga
8ead8c5fd9 Clean up debug messages. 1999-08-19 00:40:18 +00:00
Hallvard Furuseth
6054463eeb Minor cleanup:
Fix Statlog() formats, remove an implicit int, include <ctype.h> for isspace().
1999-08-07 05:36:48 +00:00
Kurt Zeilenga
9c3ed0310b Add copyright notices. 1999-08-06 23:07:46 +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
2b79ff2c48 Initial inet_aton() detection. 1999-08-03 20:02:44 +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
Kurt Zeilenga
008bbf56db Fix -USLAPD_RLOOKUPS 1999-07-27 18:49:32 +00:00
Kurt Zeilenga
d147e609d2 Implement TCP_NODELAY on both client and server side. 1999-07-22 21:49:35 +00:00
Kurt Zeilenga
f0c1fc37f5 Fix IP: typo in peername 1999-07-22 20:37:56 +00:00
Kurt Zeilenga
933908f72f ACL CHANGES:
by <who> <access> changed to by <who>+ <access> (joined with AND)
  added peername=<regex> sockname=<regex> url=<regex>
  removed addr=<regex> (use peername instead).
replace dn_upcase with str2upper and str2lower.  Use where needed.
1999-07-21 20:54:23 +00:00
Gary Williams
f4eb2feba5 use rd instead of i looking for listeners (line 848) 1999-07-20 21:55:06 +00:00
Julio Sánchez Fernández
504038ffac Move the input data exhaustion loop to connection.c from daemon.c 1999-07-20 18:03:29 +00:00
Julio Sánchez Fernández
535cc34421 If we did gethostbyname, we need no further address manipulation. 1999-07-20 11:26:44 +00:00
Kurt Zeilenga
cb94e155ae Don't call Debug inside a signal handler 1999-07-20 07:11:56 +00:00
Kurt Zeilenga
6847e329bc Fix new URL startup code. 1999-07-19 20:48:19 +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
Hallvard Furuseth
425bab2c47 Add comment thatPass socklen_t* instead of int* to getsockopt, accept, getpeername, recvfrom 1999-07-16 18:57:11 +00:00
Julio Sánchez Fernández
0053b27ce0 Look on connection_read() if it returns positive so it has a chance
to exhaust all protocol units received from the transport layer.
I think this is the necessary fix for the TLS-data-ready/
socket-not-ready issue, but I have not experimented that problem
yet, so I am unsure about its effectiveness.
Now, do we need something like that for connection_write?  How would
we go about implementing it?
1999-07-16 18:53:30 +00:00
Julio Sánchez Fernández
6d75d0f8fb connection_init now takes one more argument that indicates whether to
use TLS right away or not on that connection.
1999-07-14 19:44:18 +00:00
Julio Sánchez Fernández
c18d6e7ecf Only bind on TLS port if explicitly requested with -T, otherwise all
kind of conflicts happen when running tests.
1999-07-14 13:39:30 +00:00
Julio Sánchez Fernández
5b7babdee4 Bind and listen on TLS port too 1999-07-14 13:16:13 +00:00
Kurt Zeilenga
2fda53f375 Add missing arguments to Debug() calls... and adapt nt_debug for general
use.
1999-06-21 22:36:13 +00:00
Kurt Zeilenga
13ac82621b Limit the check to a 4 tries every timeout. 1999-06-19 03:23:49 +00:00
Kurt Zeilenga
2d720643be experimental connections_timeout_idle() implementation. 1999-06-19 03:20:01 +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
1971837778 fix comments (remove // style), free(ptr) in slapd_daemon_task was causing heap failure 1999-06-18 21:31:53 +00:00
Kurt Zeilenga
b0aea66d1d Recommit NT service changes (untested) with changes to resolve
compiling errors on other platforms.  Will need to update NT projects.
1999-06-17 18:46:02 +00:00
Kurt Zeilenga
bbc568b21f ldapconfig.h vs ldap_config.h changes
backout previous nt changes (actually, just don't include nt_svc.c)
1999-06-17 04:43:24 +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
Kurt Zeilenga
23c4b81819 Backout NT Service changes.... breaks Unix builds... 1999-06-17 00:51:12 +00:00
Gary Williams
4d13d4071a add code to support slapd as NT service 1999-06-16 19:15:35 +00:00
Kurt Zeilenga
e2e1cb76cb Remove check for inactive streams before connection_read/_write
calls.  Such checks are ineffective it protecting connection_read/_write
from being called inactive streams.  connection_read/_write have their
own protection against such (in connection_get()).
1999-06-14 20:28:30 +00:00
Kurt Zeilenga
3cfd58eed8 EXPERIMENTAL: move slapd_remove to connections_read/_write as they
acquire c_mutex.
1999-06-11 19:10:45 +00:00
Kurt Zeilenga
368628e9d5 Close inactive streams instead of asserting condition. 1999-06-10 22:06:05 +00:00
Kurt Zeilenga
571e8c098d Add cheap EBADF loop protection. 1999-06-10 21:11:21 +00:00
Kurt Zeilenga
9c793f15f4 Fix typo in last commit. 1999-06-10 15:55:00 +00:00
Kurt Zeilenga
446ef413f6 Don't shutdown when select() returns EBADF. 1999-06-10 03:11:22 +00:00
Kurt Zeilenga
64bb1a99f4 Fix unprotected (and bad) FD_SET asserts. 1999-06-10 02:52:51 +00:00
Kurt Zeilenga
22e981eef3 Close hit socket. 1999-06-04 21:42:25 +00:00
Kurt Zeilenga
5b218b7671 Move WAKE_LISTENER call behind &connection_mutex to eliminate
race condition on file descriptor sets.
1999-06-04 01:05:29 +00:00
Kurt Zeilenga
1a7d72e629 setsockopt( SO_KEEPALIVE ) on the listen() socket. Will be
inherited on accept().
1999-05-24 22:20:34 +00:00
Kurt Zeilenga
42c5a40b78 Implement keep alives. Probably should be a configuration option. 1999-05-24 21:57:26 +00:00
Kurt Zeilenga
450b02ca58 s/WIN32/HAVE_WINSOCK/
remove old Version.c
1999-05-21 03:53:37 +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
74fa98dfa3 Missing # in front of else in the sockinit #if's 1999-05-07 01:10:03 +00:00
Gary Williams
fe924b727c ldap_pvt_thread_kill doesn't work on NT, so use hit_socket to break select. Also move WSAStartup so it gets called before _any_ socket calls 1999-05-06 16:32:11 +00:00
Kurt Zeilenga
b06c4a5576 Winsock changes:
Centralize #define EWOULDBLOCK WSAEWOULDBLOCK to ac/errno.h
Move WSAStartup to slapd_daemon(), add WSACleanup() to match.
1999-04-28 21:21:14 +00:00
Kurt Zeilenga
fa6fec3c9c Implement "quick" shutdown (similiar in behavior to shutdown
prior to connection management changes).  No "normal" (wait
for pending operations to complete) shutdown mode (yet).
Changes:
 Add connections_destroy() implementation to connections.c.
 Move connections_init() call to slap_daemon().
 Add connections_destroy() call to slap_daemon().
 Add connections_shutdown() implementation to connections.c.
	calls connection_closing()/connection_close() for each
	"in use" connection.
 Add connections_shutdown() call to slap_daemon_task().
1999-04-23 22:50:28 +00:00
Kurt Zeilenga
3041aafc2c Protect listener_tid from being killed after the listener has exited. 1999-04-17 05:21:30 +00:00
Kurt Zeilenga
c10bb54be0 Fix typo in write select. Fix errors in WINSOCK handling.
Add test listener no-thread_create experiment (behind ifdef).
1999-04-16 18:56:42 +00:00
Gary Williams
3a1aba86ab put conditions on hp so we don't get unreferenced variable warning 1999-04-14 15:11:57 +00:00
Kurt Zeilenga
6743aebf3d Changes to support FreeBSD LinuxThreads port. Namely don't rely
on errno not getting changed by Debug().  Likely a problem elsewhere.
Tests run okay, excepting concurrency has "no such object" problems.
1999-04-08 03:57:25 +00:00
Hallvard Furuseth
730d267465 Add missing \n's in Debug statements 1999-04-03 03:28:17 +00:00
Hallvard Furuseth
9ebd9a0289 Add -U and -G options to set user and group id.
Move socket setup to set_socket(), called before the uid/gid change.
1999-04-03 03:19:07 +00:00
Hallvard Furuseth
1e836c56bc Factor }' out of #if/...}/#else...}/#endif, so Emacs can match {' against `}' 1999-04-02 09:11:26 +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
e5635b2662 NT port 1999-04-01 16:32:11 +00:00
Kurt Zeilenga
db721ca821 Add ioctl_t for arg type (Unix requires 'int', Winsock requires 'u_long'). 1999-03-29 05:28:29 +00:00
Kurt Zeilenga
ff23537bcb Rework ac/socket.h for HAVE_WINSOCK:
tcp_close -> closesocket
  ioctl -> ioctlsocket
Modify codes to use tcp_close() instead of close() for sockets.
Modify ioctl codes to be compatible with WINSOCK.
1999-03-29 05:15:59 +00:00
Kurt Zeilenga
f1e15ddfa2 Improved "closing" handling. Remove fd from read set when state
changes to closing.  Need to add protection against read set races.
1999-03-23 00:38:57 +00:00
Kurt Zeilenga
c9eacbdc64 Round 2 of connection management changes.
Mainly updated back-bdb2, back-passwd, back-shell to use slap_get_time().
1999-03-22 07:38:27 +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
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
ab64c237f7 Use calloc properly... could result in too few bytes being allocated.
calloc(1, nelem*size) -> calloc(nelem, size)
1999-03-20 01:25:11 +00:00
Kurt Zeilenga
3550bc48c0 Add slapd -a address support. Allows you to bind to a specific
address.  Useful for running multiple servers in a virtual hosting
environment.
Modified test001-ldif2ldbm to verify this functionality.  Assumes
localhost is 127.0.0.1.
1999-03-17 03:56:25 +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
Hallvard Furuseth
5ef648a109 Silence warnings: Remove unused variables. Enclose some initializers in in {}. 1999-03-09 07:15:35 +00:00
Kurt Zeilenga
aa38035780 Add protect against new connection descriptor being to large for
our connection table.
1999-03-02 21:06:42 +00:00
Bart Hartgers
8153a4039b The new&improved Sockbuf. This adds the infrastructure on which
support for TLS and SASL will be build.

Please inform me of any problems.
1999-03-02 20:23:14 +00:00
Hallvard Furuseth
73db912500 Cast char' arguments to ctype.h functions to unsigned char'.
These functions require their arguments to be in the range of `unsigned char'.
1999-02-22 17:57:22 +00:00
Kurt Zeilenga
e6e28362a1 Move SIGNAL() calls to main so that any thread can accept async
signals aimed at the process.
1999-02-06 16:00:00 +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
6b05425d0f Minor fixes to complete backout of initialization/startup changes. 1999-02-04 17:45:59 +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
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
163077ec93 Don't leak slap_op when op not in list.
Don't leak abandon mutex.
Use ch_malloc and friends.
1999-01-29 05:46:12 +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
a928abeb9e incorrect args to tcpd statslog 1999-01-24 01:29:23 +00:00
Kurt Spanier
68a8798594 Definition of slapd pid and args files as slapd.conf general parameters;
introduction of pid/agrs parameters to the test-suite slapd.conf files;
creation of sub-directory test/var for storage of pid/args files during test;
update of the slapd and slapd.conf man pages.
(The change reduces dependency on ldapconfig.h, since SLAPD_PIDEXT
 and SLAPD_ARGSEXT are deleted from the code.)
1999-01-21 15:53:54 +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
15fb73a473 ITS#44 fix. denied connections should not be added to connections. 1999-01-18 18:40:12 +00:00
Kurt Zeilenga
82b94e2258 Change SLAPD shutdown to do a cond wait on active threads instead
of a busy wait and allow the pthread_yield within the loop to be
removed.  This was the only pthread_yield which was necessary
when usng non-preemptive threads.  As such, the configure.in
sched_yield/pthread_yield missing error can be removed from
configure.in.  If explicit yield function is missing, just provide
a no-op replacement.
Moved declaration of various slapd globals from main.c to init.c
so they can be shared with ldbm tools.
1999-01-11 18:36:40 +00:00
Kurt Zeilenga
de8c07c62c Updated SLAPD args/pid file codes to use DEFAULT_RUNDIR and DEFAULT_DIRSEP.
Removed old defines.
1999-01-07 18:16:40 +00:00
Kurt Zeilenga
dd351c3a17 Apply fix suggested by Ben Collins <bmc@visi.net>
pass STRING_UNKNOWN if !client_name
	pass STRING_UNKNOWN if !client_addr
1999-01-07 05:47:25 +00:00
Kurt Spanier
9c6d384b9a - Make install creates $(RUNDIR)/var for pid and args files of slapd.
- slapd's pid/args file names are based on the servers binary file names,
  providing for multiple servers beeing run on one host.
- slapd supports the -l command line parameter for selection of a
  syslog LOCAL user (-lLOCAL0 .. -lLOCAL7)
- db_appinit() is called during first ldbm_open() in DB 2.x to initialize
  DB debugging features (good to find bugs in the DB code :-)
- a patch for a non-initialized variable in DB's 2.x db_open is provided.
1999-01-05 15:40:58 +00:00
Kurt Zeilenga
b5973eba5d Minor change to signal handler. Changed _shutdown flag to
type 'sig_atomic_t' and marked it volatile.  Add detection to
configure to ensure sig_atomic_t and volatile are supported.
1998-12-20 18:16:03 +00:00
Kurt Zeilenga
e2ee741ea8 Replace strdup() with ch_strdup() such that exit() will be called
if strdup fails.  This is better than not checking, but we should
add orderly shutdown.
1998-11-27 20:21:54 +00:00
Kurt Zeilenga
04d91569e1 Replaced PREEMPTIVE_THREADS with HAVE_YIELDING_SELECT to clarify
the exact nature of the functionality being tested.  -DNO_THREADS
does NOT have a yield select, hence the macro is not defined.
The slapd/daemon code has been changed to test both no threads
and yielding select before using a timeout of NULL.
1998-11-22 20:08:14 +00:00
Kurt Zeilenga
3111cfa3bd Update LinuxThread signal handling. Hide #ifdef hell in ac/signal.h. 1998-11-18 17:45:32 +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
2a869f5a99 merged with autoconf branch 1998-10-25 01:41:42 +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
7963420cde Add NO_THREADS fix from tih@nhh.no 1998-08-27 21:44:45 +00:00
Kurt Zeilenga
adc2134f03 Modified build environment to correctly support bin,sbin,libexec,etc
and setting of variables from Make-platform with defaults in Make-common.
1998-08-19 18:19:39 +00:00
Kurt Zeilenga
f51765eead Changed FD_SETSIZE checks for consistency. Added checks where needed. 1998-08-18 18:19:49 +00:00
Kurt Zeilenga
fa2da63ca4 Merge from LAMBERT branch 1998-08-17 23:26:25 +00:00
Kurt Zeilenga
e66aa92102 Added support for TCP_WRAPPERS (ldapd code not tested, don't have isode here).
Cleaned up LDAP_CRYPT support.
1998-08-15 23:03:09 +00:00
Kurt Zeilenga
412f44afa3 Fixed "faled" typo in debug message 1998-08-15 18:39:15 +00:00
Kurt Zeilenga
cf1d3904a4 fix SIGUNUSED typo 1998-08-15 18:18:43 +00:00
Kurt Zeilenga
efc5e2d0e4 daemon -> slapd_daemon 1998-08-13 20:20:13 +00:00
Kurt Zeilenga
f3e9bc606c integrated changed from rage.net glibc.patch 1998-08-13 19:32:43 +00:00
Kurt Zeilenga
fcbca73f90 Merged LDAPworldCurrent (P1-10,13,15,16,19-22)
Cleaned up old rcs keyworld subs
1998-08-09 04:13:55 +00:00
Kurt Zeilenga
860038cff1 LDAPworld P1: DEC and other portability issues 1998-08-09 02:28:45 +00:00
Kurt Zeilenga
8b2170bcf4 Import of FreeBSD LDAP 3.3 Port 1998-08-09 01:05:15 +00:00
Kurt Zeilenga
42e0d83cb3 Initial revision 1998-08-09 00:43:13 +00:00