Commit Graph

85 Commits

Author SHA1 Message Date
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