Commit Graph

373 Commits

Author SHA1 Message Date
Howard Chu
808cb504ce More memory context tweaks 2003-04-11 03:57:10 +00:00
Howard Chu
ece7452b05 More memory context tweaks 2003-04-11 01:29:28 +00:00
Howard Chu
374d919fc0 More memory context tweaks 2003-04-10 06:21:53 +00:00
Howard Chu
f897519d11 Minor cleanups 2003-04-09 23:37:00 +00:00
Howard Chu
ebecca7379 Eliminate getkey search 2003-04-09 17:34:58 +00:00
Howard Chu
065116c3a3 Just use a fixed size slab for now 2003-04-09 17:05:46 +00:00
Howard Chu
813d5c8ed8 First cut at thread-local malloc. Only used by search() for now...
Needs work in normalizers, etc.
2003-04-09 16:52:03 +00:00
Pierangelo Masarati
5f342a8431 silence warning 2003-04-03 23:08:47 +00:00
Howard Chu
9355dca9af Consolidated slap_callbacks into one function. Removed send_search_result. 2003-04-01 04:12:18 +00:00
Howard Chu
e8c58b4e7f Major API change - (SLAP_OP_BLOCKS) All request parameters are
consolidated into the Operation structure. All reply parameters
are consolidated into the new SlapReply structure. Most operations
now have identical call signatures... Changes are not #ifdef'd,
revert to -r NO_SLAP_OP_BLOCKS if necessary to back out.
2003-03-30 09:03:54 +00:00
Howard Chu
3a71bddbc4 ITS#2389 - added conn_max_pending/auth config keywords to cap the number
of outstanding requests on a connection. Set rate limits for request
execution:
   no connection can have more than maxthreads/2 ops executing at once.
   a connection that is write-blocked will not execute any new ops.
   queued ops must drain before any new ops can execute.
If the queue exceeds the max_pending limit, the connection is closed.
...also fixed a bug where a connection was not marked active if it never
received a Bind.
2003-03-27 03:35:46 +00:00
Howard Chu
a5a71d4e6c Cleanup previous commit 2003-03-26 17:42:27 +00:00
Howard Chu
13aafa46d8 struct co_arg is redundant, removed 2003-03-25 18:44:00 +00:00
Howard Chu
a63b8908cd ITS#2389 - stop reading requests on a conn if it has more than
connection_pool_max/2 operations already executing. May want to tune
this to a higher value, e.g. connection_pool_max - XX, etc. Fix in
result.c throttles the connection too late, all threads are already
consumed by the time the send buffer blocks.
2003-03-20 12:40:11 +00:00
Howard Chu
d18e0989d9 ITS#2382 use ch_calloc 2003-03-16 12:34:40 +00:00
Howard Chu
0423ec0bd6 Fix ITS#2335, RFC1798 sequence layout was wrong. 2003-02-28 13:04:16 +00:00
Howard Chu
507781eeb3 Partial fix of ITS#2335, restore proper CLDAP msg format for LDAPv2 2003-02-28 08:34:31 +00:00
Kurt Zeilenga
282f6bc32d Cancel exop updates 2003-02-09 05:54:45 +00:00
Kurt Zeilenga
48d47954a6 Rework #ifdef'ing of expermental controls to ease release engineering
using LDAP_DEVEL (to indicate experimental) to enable experimental features
(true for HEAD unless LDAP_REL_ENG is defined)
2003-02-08 21:53:05 +00:00
Jong Hyuk Choi
85b1783d5c LDAP Sync Operation (draft-zeilenga-ldup-sync) as a groundwork for an LDAP replication design 2003-02-05 07:37:02 +00:00
Jong Hyuk Choi
e1bf8cc437 Intermediate Response 2003-02-03 17:28:19 +00:00
Jong Hyuk Choi
4f64bd9402 LDAP cancel misc patch 2003-01-27 17:08:51 +00:00
Jong Hyuk Choi
0c43007e55 LDAP cancel operation 2003-01-25 00:36:50 +00:00
Luke Howard
eec370af52 LDAPv3 over UDP disposition is now compatible with Active Directory
Stubs for PermitModify/NoReferrals controls; implementation coming soon
2003-01-23 15:12:53 +00:00
Kurt Zeilenga
6939c53170 Happy new year 2003-01-03 20:20:47 +00:00
Howard Chu
870c3cb5c6 Revert previous, it was only masking the real problem. And caused more... 2002-12-17 04:56:41 +00:00
Howard Chu
b40e40ec3c undef CONNECTION_INPUT_LOOP, use DATA_READY_LOOP. Seems to help prevent
hangs in heavy load situations.
2002-12-11 18:36:02 +00:00
Pierangelo Masarati
1b70e16448 SLAPI - Netscape plugin API for slapd - based on patch contributed by Steve Omrani <somrani@us.ibm.com> as ITS#2073 2002-12-07 17:19:29 +00:00
Howard Chu
322a800c26 Fix ITS#2157, server should never attempt to unlink the client's socket.
It likely has no name anyway, and the client owns it after all.
2002-10-26 22:41:26 +00:00
Jong Hyuk Choi
15c5943edd Addition of servers/slapd/lcup.c and servers/slapd/back-bdb/lcup.c for persistent search 2002-10-25 17:57:03 +00:00
Jong Hyuk Choi
8074294f1d LCUP persistent search code drop 2002-10-25 17:51:30 +00:00
Pierangelo Masarati
956f1d16aa listener:
- use bervals for url and sockname
- pass connection_init() the listener struct pointer instead of each value
- don't copy them in the Connection struct 'cause they're not going to change
- define macros for legacy usage of c_listener_url and c_sockname
2002-10-24 10:03:52 +00:00
Kurt Zeilenga
3eb21d8a6c Misc cleanup 2002-09-16 21:50:55 +00:00
Howard Chu
9f5b28baf3 Remove c_sasl_bindmutex, Binds are already serialized. 2002-08-26 22:20:30 +00:00
Kurt Zeilenga
1c5725010e Add a Connection pointer to the Operation. 2002-08-26 19:29:34 +00:00
Howard Chu
925714ceef Experimental cruft to propagate valid Operation to SASL callbacks.
If you have a better way, jupm on in...
2002-08-24 07:34:50 +00:00
Howard Chu
8c30114d84 Added thread-pool getkey/setkey functions 2002-08-24 05:39:43 +00:00
Howard Chu
50d490be6c Revert previous commit 2002-08-07 06:37:11 +00:00
Howard Chu
6862cfd97c Don't strdup conn->authz into op, just reference directly. (Conn cannot
be freed until after all associated ops are freed.)
2002-08-07 05:19:55 +00:00
Julius Enarusai
6107ba67d2 Coverted LDAP_LOG macro to use subsystem ID int values instead of string values 2002-07-11 20:33:24 +00:00
Kurt Zeilenga
0fffad53c3 get data if ready 2002-07-10 22:03:32 +00:00
Howard Chu
c5c1ddb1ca Deleted Connection->c_cdn. Use conn->c_dn instead... 2002-06-12 08:38:59 +00:00
Kurt Zeilenga
d6e7f0f630 Rework c_authzid_backend in preparation for sasl_setpass() support 2002-06-11 22:56:47 +00:00
Howard Chu
ef678b179c ITS#1795 authid is uninit'd if tls_get_cert fails 2002-05-04 01:28:56 +00:00
Kurt Zeilenga
8c152396b9 Matched Values implementation (ITS#1776) based upon submission
form Mikhail Sahalaev <M.Sahalayev@pgr.salford.ac.uk>.
Further work needed:
	add testxxx-matchedvalues
	rework ldapsearch(1) portion of patch to generalize use of options
---
Copyright 2001, Mikhail Sahalaev, All rights reserved.
This software is not subject to any license of University Of
Salford.

Redistribution and use in source and binary forms are permitted
without restriction or fee of any kind as long as this notice
is preserved.
2002-05-02 18:56:56 +00:00
Howard Chu
0f966d2fdb Changed ldap_pvt_tls_get_my_dn and ldap_pvt_tls_get_peer_dn to store result
in dn parameter and return a result code.

Changed dnX509peerNormalize as above. Added debug message on failure to
retrieve client DN.
2002-04-30 13:52:49 +00:00
Howard Chu
0aa7c83a0e Fix memory leak in previous commit 2002-04-18 15:55:05 +00:00
Howard Chu
8a5423ea8d deleted sasl_external_x509dn_convert; X509 DNs are always converted to
normalized LDAP DNs now.

Changed dnDCEnormalize to dnX509normalize, added dnX509peerNormalize,
based on new ldap_X509dn2bv() etc.
2002-04-18 12:26:36 +00:00
Howard Chu
efecf4e121 ITS#1733 eliminate o_abandonmutex 2002-04-11 08:03:40 +00:00
Howard Chu
5c4a924f81 ITS#1735 unused conn.c_uthc_backend, include ldap_pvt.h 2002-04-11 07:42:57 +00:00
Pierangelo Masarati
c22f10f4ca don't count operations per request if back-monitor is not built 2002-04-08 19:13:13 +00:00
Pierangelo Masarati
51e33154b3 count initiated/completed operations divided per request 2002-04-08 18:41:15 +00:00
Howard Chu
5c70106657 ITS#1708 ldap_pvt_tls_sb_ctx() et al 2002-04-05 06:48:03 +00:00
Pierangelo Masarati
af3a65b924 do not print -1 as %lu 2002-03-30 08:45:21 +00:00
Kurt Zeilenga
0be4d842bc Update control framework
Misc cleanup
NT updates
2002-03-24 02:17:21 +00:00
Pierangelo Masarati
49f324a1fa fix ITS#1671 and more 2002-03-23 16:53:44 +00:00
Pierangelo Masarati
fa654ae447 fix ITS#1660 (issue 1) 2002-03-23 16:06:22 +00:00
Howard Chu
f181388a5e Fix ITS#1655, don't retrieve sd until we've checked for valid c_sb. 2002-03-20 23:47:08 +00:00
Howard Chu
35554dadf3 use ber_str2bv() instead of ch_strdup/strlen. 2002-03-18 08:57:59 +00:00
Kurt Zeilenga
a4635f3ada CLDAP fixes 2002-03-06 20:58:20 +00:00
Kurt Zeilenga
0a31400d63 Some misc cleanup 2002-01-29 06:06:20 +00:00
Howard Chu
5e522ca882 Changed Access.a_sockurl_pat, Connection.c_listener_url etc.
to struct bervals
2002-01-28 11:41:07 +00:00
Howard Chu
4191f39037 Changed slap_authz_info.sai_mech to struct berval.
Changed sasl_* to use struct bervals.
2002-01-26 13:57:41 +00:00
Kurt Zeilenga
9a3dcc376c Zap connection_internal_* 2002-01-13 18:05:16 +00:00
Howard Chu
f0cd9956ed readahead is only needed on UDP, don't use it on TCP. (Save unneeded memcpy) 2002-01-10 22:00:17 +00:00
Howard Chu
ce7d8d26f2 Changed conn->c_cdn to struct berval. 2002-01-06 03:26:09 +00:00
Kurt Zeilenga
0e2af54a3f Update copyright statements 2002-01-04 21:17:25 +00:00
Howard Chu
029306a5be Use ldap_queue.h instead of <ac/queue.h> 2002-01-03 00:12:46 +00:00
Howard Chu
743c402265 Changed search attrs from struct berval ** to AttributeName * 2001-12-31 11:35:52 +00:00
Howard Chu
10961151ef Use queue-compat for Connection->c_ops,c_pending_ops 2001-12-31 04:08:29 +00:00
Howard Chu
776ce133e9 More str2rdn tweaks 2001-12-30 09:42:58 +00:00
Howard Chu
2f3399265c Changed sai_dn, sai_ndn to struct berval. (Affects op->o_dn,o_ndn,
conn->c_dn,c_ndn, Access->a_dn_pat)
2001-12-24 15:11:01 +00:00
Howard Chu
773b3aff16 more cleanup from jon@symas.com 2001-12-18 04:52:55 +00:00
Howard Chu
45aadbbbba Eliminate unnecessary per-operation dn_normalize(o_ndn); it's already
done in do_bind() and there's space in the connection structure for c_ndn
already, just copy it.
2001-12-09 14:46:29 +00:00
Kurt Zeilenga
b5504a1c36 Clean up some misplaced 'extern' declarations (should be headers) 2001-12-04 19:57:09 +00:00
Pierangelo Masarati
aee3600276 minor cleanup 2001-11-17 16:18:07 +00:00
Mark Adamson
8c16d30087 optimize number of calls to slap_get_time() 2001-11-13 01:38:30 +00:00
Howard Chu
a0a24d73dc Added backend_group result caching. 2001-11-12 19:25:41 +00:00
Howard Chu
693a81e1db More CLDAP tweaks, to differentiate between real LDAPv2 CLDAP and "other"
LDAP/UDP messages. Slapd marks received CLDAP messages as LDAP_VERSION2.
The client library can generate CLDAP queries if -Protocol 2 is chosen,
otherwise not. LDAPv2 CLDAP cannot query the slapd rootDSE, gets no reply.
2001-10-02 01:02:23 +00:00
Howard Chu
926b454765 Set protocol to LDAP_VERSION2 on UDP session. 2001-09-28 00:49:01 +00:00
Howard Chu
647b5f84ee Resurrection/rewrite of CLDAP (RFC1798 Connectionless LDAP).
Compile with -DLDAP_CONNECTIONLESS to use this code.
For slapd, use "-h cldap://" to listen on UDP.
For ldapsearch, use "-H cldap://" to query on UDP.
Client-side support is very minimal:
  no automatic timeout/retries
  no basedn wildcard expansion on results
  no support for specifying multiple servers at once.
2001-09-28 00:18:40 +00:00
Kurt Zeilenga
77f776dfd1 Another round of TLS updates to support secure referral chasing 2001-06-25 19:17:42 +00:00
Kurt Zeilenga
cc6fab319e Add support for separate max incoming for anonymous and authenticated
sessions (defaults: 256K and 16M respectively).
2001-05-29 20:00:55 +00:00
Kurt Zeilenga
4055077607 Add simple configure support for sockbuf max incoming 2001-05-05 07:29:21 +00:00
Kurt Zeilenga
abce5abf34 Quick sb_max_incoming hack, should be configurable (likely
with differing anonymous vs authenticated values).
2001-05-04 21:55:07 +00:00
Gary Williams
f49fd8a98e fix format 2001-01-17 16:35:53 +00:00
Gary Williams
d531a20f52 more new logging (finally), behind NEW_LOGGING 2001-01-11 17:11:23 +00:00
Mark Adamson
466ff113e1 ITS#897, internal connections need to free their single operation struct. 2000-12-08 22:34:22 +00:00
Kurt Zeilenga
82e7b2e049 label io as "ldap_" 2000-10-14 00:12:39 +00:00
Kurt Zeilenga
f164e69baa Don't recursive lock connections_mutex in idle timeout routine 2000-09-22 18:18:39 +00:00
Kurt Zeilenga
2b82d4f486 remove lint
update bdb codes
2000-09-22 01:40:57 +00:00
Kurt Zeilenga
d78a515860 Fix build issues 2000-09-21 23:00:51 +00:00
Mark Adamson
bf1ee530ea Implementation of SASL authorization. 2000-09-21 17:32:54 +00:00
Kurt Zeilenga
2e13824d0d Add "allow tls_2_anon" to allow StartTLS to force session to anonymous.
Add "disallow tls_authc" to disallow StartTLS when session is authenticated.
Create and use connection2anonymous routine for consistency.
2000-09-08 22:59:01 +00:00
Kurt Zeilenga
2c342e894c Minor change to connection error handling 2000-09-08 18:46:18 +00:00
Kurt Zeilenga
f97482e10f Fix authz bug introduced by last change 2000-09-05 19:45:06 +00:00
Kurt Zeilenga
c8c969a184 Rework connection lock code to avoid unnecessary lock reaquire 2000-09-05 19:11:27 +00:00
Kurt Zeilenga
488189aed2 Fix SSF ACLs 2000-09-05 18:48:09 +00:00
Kurt Zeilenga
309c458ed4 Experimental fix for deadlock 2000-09-02 00:19:06 +00:00
Kurt Zeilenga
553a78e2ee Don't drain after TLS failure.... causes busy forever loop 2000-08-30 22:08:19 +00:00
Kurt Zeilenga
bf3df2f7a6 restrictops, requires, disallow knobs; ssf acls; and misc other changes
man pages to follow...
2000-08-28 18:38:48 +00:00
Kurt Zeilenga
1c328aa9c7 Minor typedef and other clean ups 2000-08-26 01:14:05 +00:00
Kurt Zeilenga
20a67a2dbc needs ldap_pvt.h 2000-08-17 04:20:12 +00:00
Howard Chu
0f8047b95e Implemented ldap_pvt_tls_get_peer() for use with SASL/EXTERNAL.
Added ldap_pvt_tls_get_strength() - return encryption strength, for
use as a SASL session security factor.
2000-08-16 23:27:41 +00:00
Kurt Zeilenga
a50f391bb3 Working SASL security layers! 2000-07-28 00:04:07 +00:00
Kurt Zeilenga
b213ce3a69 Remove cruft 2000-07-27 20:12:16 +00:00
Kurt Zeilenga
e7e7bca4c0 Fix typo 2000-07-23 21:22:19 +00:00
Kurt Zeilenga
5bca08d716 Store sasl callbacks in session handle so that they can properly freed. 2000-07-15 00:01:09 +00:00
Kurt Zeilenga
5fc22599e2 Update SASL code to reuse context through life of session.
Replace 'negotiated' with 'interactive' bind
Add hooks for SASL/EXTERNAL
Disable SASL security layers
Rework SASL command line and config file parameters
2000-07-13 22:54:38 +00:00
Kurt Zeilenga
1f1993989a s/enable-unix/enable-local/
s/LDAP_PF_UNIX/LDAP_PF_LOCAL/
s/AF_UNIX/AF_LOCAL/
s/PF_UNIX/PF_LOCAL/
2000-07-09 21:49:36 +00:00
Kurt Zeilenga
b7d1b10bca Minor cleanup 2000-06-14 21:11:56 +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
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
88848d3aea ~ NULL was a bad idea. 2000-06-08 03:12:14 +00:00
Kurt Zeilenga
61be4bd0c8 remove pointer v. int lint from ber_sockbuf_ctrl. 2000-06-08 01:08:01 +00:00
Mark Valence
7ec6a4363f Use thread pool for operation threads. 2000-06-07 19:27:33 +00:00
Mark Valence
bac87c2562 Bug fix for new sockbuf code under NT. Added mutex protection against
deadlock in connection_resched.
2000-06-04 04:29:07 +00:00
Kurt Zeilenga
c23536faa9 remove lint 2000-06-01 22:01:00 +00:00
Kurt Zeilenga
2e0912622b ITS#537: lber io rewrite from Gambor Gombas.
Copyright 2000 Gábor Gombás. All rights reserved.
This is free software. You may redistribute and use it under the same
terms as OpenLDAP itself.
2000-06-01 20:59:21 +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
b2f56a7318 SLAPD_SCHEMA_NOT_COMPAT: framework for value_match() and value_find() 2000-05-21 22:46:51 +00:00
Kurt Zeilenga
4bc786f34b Y2k copyright update 2000-05-13 02:47:56 +00:00
Howard Chu
f0c4f83ea2 libldap/tls.c: change tls_verify_cb to no longer ignore verification errors.
This means a ldaps connection may drop before any LDAP protocol exchange
occurs (due to expired cert, unrecognized CAs, etc.).
  Change ldap_pvt_tls_connect to copy any TLS error string to ld_error upon
connection failure, otherwise client just sees "can't contact LDAP server."

slapd/connection.c: add flush/delay when SSL_accept fails, to allow any
TLS alerts we generated to propagate back to the client. (Which will then
be picked up by ldap_pvt_tls_connect on the client...)
2000-05-10 17:07:09 +00:00
Kurt Zeilenga
42a20681cc SASL closer to working from frontend only, need to work through
states.
2000-04-25 17:23:54 +00:00
Kurt Zeilenga
55ae3cffd8 SASL code without backend support. Should work with
external store, but not yet tested.  [Intent is to support
both in same server... may not be doable]
2000-04-25 16:03:17 +00:00
Kurt Zeilenga
10588da3c5 Print tag with SASL in progress operations error. 2000-03-02 01:20:00 +00:00
Kurt Zeilenga
ddb9755ba7 Move handling of operations errors due to submission of
non-bind requests while a multi-step SASL bind process
is under to connection.c.  Return LDAP_OPERATIONS_ERROR,
not LDAP_SASL_BIND_IN_PROGRESS.
2000-03-02 00:59:10 +00:00
Kurt Zeilenga
ac7f6c2e37 Replace do_*() return -1 with return SLAPD_DISCONNECT.
Only return SLAPD_DISCONNECT with a send_ldap_disconnect()
was called.
Add initial code for support predetermined filter results
when filter is undefined (or known to be true or false).
2000-02-29 23:48:01 +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
Mark Valence
bb693fd1b5 Bug fix: re-used Connection have TLS value for previous conn. 1999-12-09 21:06:42 +00:00
Kurt Zeilenga
64e8eeaa95 Slight modification to last commit to cast %ld args to long 1999-10-20 00:25:04 +00:00
Howard Chu
f0b0fe9f94 Fix stupid "got <garbage> of 0 so far" debug message after ber_get_next. 1999-10-19 12:15:42 +00:00
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
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
4a5e2febed Some constification & lint removal 1999-09-04 21:15:49 +00:00
Howard Chu
193d30bf84 In previous commit - change strerror() to STRERROR().
Use strerror() if available.
1999-08-29 02:59:29 +00:00
Howard Chu
a60406860f Use strerror() 1999-08-29 01:50:12 +00:00
Kurt Zeilenga
0afcadc4dd Remove misplaced asserts. connection_resched changes connection state
to UNUSED without holding connections mutex.  It's not safe for
connection_init to check connection state until after acquires the
c_mutex.
1999-08-27 19:31:42 +00:00
Kurt Zeilenga
9bf50242c3 Plug ber leakage:
result was leaking ber's in some error cases.  ber_flush now called
with no freeing so that caller of send_ldap_ber() can free its own ber.
c->c_currentber was also being leaked if connection was destory
current when a PDU input was outstanding.
Fixed ber_flush to free ber upon write only to file.
1999-08-27 05:45:53 +00:00
Kurt Zeilenga
9e82379b6e More CSRI malloc debugging support and destroy sockbuf fix.
Test008 now runs without leak.
1999-08-19 18:48:17 +00:00
Kurt Zeilenga
8ead8c5fd9 Clean up debug messages. 1999-08-19 00:40:18 +00:00
Kurt Zeilenga
34647dd8d7 Force to LDAPv3 until BIND 1999-08-13 06:09:48 +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
b67eb8e2be Don't have time to finish SASL right now... this is a work in progress
but is safely tucked away behind --with-cyrus-sasl.
1999-08-04 00:11:22 +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
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
Julio Sánchez Fernández
f0f29cd82e Backout the input exhaustion change, it loops. Still looking for
the right way.
1999-07-21 13:22:35 +00:00
Julio Sánchez Fernández
76227acb1f Move the input data exhaustion loop to connection.c from daemon.c
Let transport (TLS or somesuch) force reading or writing on
sockets even if the higher layers think otherwise.
1999-07-20 18:02:44 +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
059ee8c86d (re)introduce o_connid such that STATS doesn't need c_mutex (which it
didn't bother to acquire)...
1999-07-16 22:24:32 +00:00
Julio Sánchez Fernández
ea8669c37d Clear c_needs_tls_acccept on ldap_pvt_tls_accept errors 1999-07-16 18:48:13 +00:00
Julio Sánchez Fernández
68b508d2f0 Move calls to ldap_pvt_tls_accept to connection_read instead of
connection_init so that we get into the select() logic.
Make use of new flags in the connection.
BTW, and before I forget, it sort of works.  I have connected with
a Netscape client using a secure connection and did a failed
search (my test database is empty), but the trace looked correct.
Make sure you have your CA certificate in your Netscape preinstalled.
Otherwise, the connection fails with error 0xFFFFFFFF that is rather
uninformative.
1999-07-16 15:52:17 +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
Kurt Zeilenga
e9c2895472 Add support for unsolicited notifications. 1999-07-07 18:51:39 +00:00
Kurt Zeilenga
daf40a51c1 Abandon all operations upon receiving a BindRequest. 1999-07-02 21:42:53 +00:00
Kurt Zeilenga
b7bbc7504d More bind changes to support SASL/DIGEST.
Added configuration support for "digest-realm <realm>" configure directive.
Added connection state and bind_in_progress fields to cn=monitor connection
attribute.
1999-07-02 19:48:07 +00:00
Kurt Zeilenga
6f8fad20f2 Add conn/op bind_in_progress flags such that operations can detect
if multiple step SASL binds are in progress.
1999-07-02 00:04:47 +00:00
Kurt Zeilenga
f9db1ea889 Rework BER decoding with lieu of LDAPv3 controls (coming soon).
Add place holder for handling LDAPv3 extended operations (coming soon).
1999-06-30 22:43:27 +00:00
Kurt Zeilenga
14820afdd9 Reimplement connection counters. Format of "connection" attribute
changed significantly.
1999-06-30 02:50:40 +00:00
Kurt Zeilenga
1ee85df297 Add framework for sasl and controls. 1999-06-29 03:17:22 +00:00
Kurt Zeilenga
2660d0b42f Remove old U-Mich v3.0 and OLD_LDAP_* crud.
Leave only LDAPv2+ and LDAPv3.
1999-06-29 00:03: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
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
Kurt Zeilenga
7e4b3bc2e7 initial commit of idletimeout code... everything but the actual timeout. 1999-06-18 22:54:19 +00:00
Kurt Zeilenga
36cb034611 Add test for resched state change in connection_get 1999-06-17 00:48:51 +00:00
Gary Williams
2ffc4b19ea check addr for NULL before copying 1999-06-16 19:15:03 +00:00
Kurt Zeilenga
61eaffeed2 connection_get forgot to unlock c_mutex in not used case! 1999-06-14 20:33:21 +00:00
Kurt Zeilenga
18e5e729ac Resched changes struct state without lock to avoid deadlock.
Hence connection_get must recheck struct state after obtaining
c_mutex to detect close.
1999-06-12 00:29:41 +00:00
Kurt Zeilenga
35e91be482 connection_get:
Connection could be closed before acquiring connections_mutex.
	if c->c_struct_state == SLAP_C_UNUSED, return NULL.
1999-06-12 00:03:39 +00:00
Kurt Zeilenga
0dda34c9e4 Add additional assert in connection get for race debugging. 1999-06-11 23:19:31 +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
35eff96dad Add Debug to help sort out race condition. 1999-06-10 22:21:51 +00:00
Kurt Zeilenga
9a0caa6258 Initialize connection pointer to NULL else won't be able to
detect connection table full properly.
1999-06-04 22:57:19 +00:00
Kurt Zeilenga
95889bc7d8 Fix typo in previous commit. 1999-06-04 22:15:35 +00:00
Kurt Zeilenga
d3181b56b8 Add diagnostics. 1999-06-04 21:43:06 +00:00
Kurt Zeilenga
2d1cf97a56 move connection_close call from connection_input to connection_resched
to avoid accessing c_conn_state after close.
1999-05-27 06:22:59 +00:00
Kurt Zeilenga
5936f97edc Make connection_first/next/done reentrant. 1999-05-27 05:52:38 +00:00
Kurt Zeilenga
f9219d3368 remove redundant memset 0 of connection entry after calloc. 1999-05-27 02:44:13 +00:00
Kurt Zeilenga
1ee8cc51a8 Add comment concerning connections mutex. Need to analysis
locking requires and possibly restructure locking.
1999-05-27 02:29:18 +00:00
Kurt Zeilenga
77cc20be52 Lock (connections_mutex) should be acquired by caller. 1999-05-27 02:16:39 +00:00
Kurt Zeilenga
22d98c85c3 ldap.h:
added comments
 removed LDAP_MAX_ATTR_LEN
 removed LDAP_COMPAT* from <ldap.h> but not code.
 move LDAP_DEFAULT_REFHOPCOUNT to ldap-int.h
 added experimental options macros
 added LDAP_CONTROL_REFERRALS macros
libldap:
 Replace ld_attrbuffer with per use allocated attributed.
 ldap_first/next_attribute attributes now must be freed (as per draft).
 unifdef -DLDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS
1999-05-22 06:11:48 +00:00
Kurt Zeilenga
60a068ae89 don't free connections[i] 1999-05-21 03:52:08 +00:00
Kurt Zeilenga
d8cb38c2ef method tag should be unsigned long.
connection assert should use s, not i.
1999-05-19 07:15:16 +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
Gary Williams
e72b5e5c61 use mutex to protect connection in connection_destroy until task is complete 1999-05-11 13:42:57 +00:00
Gary Williams
628f679f0b move socket.h before errno.h so EWOULDBLOCK is defined on NT 1999-05-06 14:46:48 +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
5dbb2e760f Don't destroy uninitialized connections... 1999-04-28 20:33:25 +00:00
Kurt Zeilenga
c9a2802669 Don't have connection_state_closing() lock connection. Already locked
by callers.
1999-04-26 23:56:02 +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
866f82409c Should clear the write flag upon closing. 1999-04-23 20:47:32 +00:00
Kurt Zeilenga
8082760c0c Update state to closing early. 1999-04-23 20:34:09 +00:00
Kurt Zeilenga
3e05f28963 Modify connection_closing() to abandon operations and wake blocked writer.
Modify send_result to return if connection state is closing.
Modify do_abandon() to remove abandon'ed operation if pending.
1999-04-23 20:22:18 +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
Gary Williams
e5635b2662 NT port 1999-04-01 16:32:11 +00:00
Kurt Zeilenga
668c8da980 Reenable counters. 1999-03-26 02:51:33 +00:00
Kurt Zeilenga
f3774d6ea3 Fix unlock bug in connection_read/write. Fix connection_read() to
ignore input when connection is closing.
1999-03-23 01:57:48 +00:00