Commit Graph

158 Commits

Author SHA1 Message Date
Kurt Zeilenga
6939c53170 Happy new year 2003-01-03 20:20:47 +00:00
Howard Chu
6a903bc1e5 Added new ldap_get_{dn,attribute,values}_ber functions for linearly
processing a search entry. Avoids O(n^2) ldap_get_values() behavior.
2002-09-05 11:33:32 +00:00
Howard Chu
90b1e7bd45 Fix ldap_X509dn2bv, OpenSSL gives us DN attributeTypes in EBCDIC 2002-09-02 13:46:56 +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
2de291ed6e Cut back on the logging... 2002-06-21 19:49:25 +00:00
Kurt Zeilenga
40ef77a8f8 Add error handling cleanup 2002-06-05 15:51:42 +00:00
Kurt Zeilenga
99f5983fb6 Consistently don't check for NULL session handle and other pointers.
Application is responsible for providing valid session pointers.
2002-06-05 15:46:26 +00:00
Howard Chu
e8e7847175 ITS#1797 silence uninit'd var warnings 2002-05-04 10:52:05 +00:00
Howard Chu
c9699c1072 Fix previous commit - must fully init newAVA 2002-04-30 14:43:05 +00:00
Howard Chu
b005540094 Added ldap_ucs_to_utf8s to convert ASN.1 T61STRING, BMPSTRING, and
UNIVERSALSTRING to UTF-8 format.

Rewrote ldap_X509dn2bv to check ASN.1 types and use above function.
2002-04-30 13:57:01 +00:00
Howard Chu
17ae956518 Added ldap_X509dn2bv()
deleted ldap_pvt_tls_get_peer()
  changed ldap_pvt_tls_get_peer_dn() to use ldap_X509dn2bv()
  added ldap_pvt_tls_get_my_dn()
2002-04-18 12:29:30 +00:00
Pierangelo Masarati
4a8ab5dbf2 Mostly based on patches provided by Hallvard B. Furuseth
ITS#1677 - cast away const warnings
ITS#1678 - unsigned char args to ctype funcs
ITS#1682 - don't redefine ldap_debug
ITS#1683 - uninitialized vars
ITS#1703 - ldo_debug initialization
ITS#1705 - unsigned testing
ITS#1706 - socklen_t args
ITS#1719 - back-tcl update (other cleanups/fixes/improvements; yet untested)
ITS#1724 - integerNormalize/integerFilter/integerIndexer bugs
ITS#1725 - libdes not required

Implement back-null (/dev/null style backend)
Cleanup some misc warnings ("%lu" format, unused/uninitialized vars,
        ambiguous operator precedence)

Kurt, please regenerate configure
2002-04-08 09:43:22 +00:00
Julius Enarusai
3921e1b0c2 Added LDAP_LOG messages 2002-03-27 21:38:32 +00:00
Kurt Zeilenga
d50eb2e959 C translator portability changes (ITS#1609) 2002-02-23 23:47:37 +00:00
Pierangelo Masarati
32e48d9e4d disallow unescaped NULs in UTF-8 string values 2002-02-13 22:49:03 +00:00
Kurt Zeilenga
427478a753 Use memchr, not strlen, to look for embedded NULs. 2002-02-13 17:48:39 +00:00
Kurt Zeilenga
dd12660a14 Add embedded NUL check. This is one case where we don't want to
be liberal in what we accept.
2002-02-13 17:23:33 +00:00
Kurt Zeilenga
ee6d1a4d40 Check for NULs in DNs. 2002-02-13 16:41:41 +00:00
Pierangelo Masarati
6913aadcdf minor cleanup 2002-02-13 14:44:08 +00:00
Pierangelo Masarati
33d5f0f8f8 honor the ber_len field to allow to exploit ldap_bv2[r]dn to handle DNs embedded in longer strings ... 2002-02-13 12:09:36 +00:00
Pierangelo Masarati
a117c5eee7 use ldap_bv2[r]dn and turn ldap_str2[r]dn into wrappers 2002-02-13 11:46:33 +00:00
Pierangelo Masarati
959edd88c0 prepare for ldap_bv2dn() 2002-02-13 10:05:22 +00:00
Kurt Zeilenga
f1cc2b7ab2 #if 0 RDN debugging 2002-02-13 08:00:31 +00:00
Kurt Zeilenga
275f3be363 Misc. DN fixes and cleanups, namely don't muck with AVA_BINARY values
Also, pass empty_bv when bv_val is NULL.
2002-02-13 06:35:27 +00:00
Pierangelo Masarati
5c1d9b4fce fix assertion 2002-01-16 10:58:04 +00:00
Pierangelo Masarati
6c5be3006d don't auto-detect DCE form; assert the UTF-8 charlen is legal 2002-01-16 09:57:20 +00:00
Howard Chu
2d51ad52b3 Added LDAP_UTF8_CHARLEN2() to validate shortest possible encoding
of UTF8 string. (Returns charlen if valid, 0 if not.)
2002-01-15 08:07:46 +00:00
Pierangelo Masarati
36f6a1169a make temporary RDN and AVA arrays rescalable if needed 2002-01-14 19:44:04 +00:00
Pierangelo Masarati
2ee2e7a145 quick fix that in pretty mode escapes with hexpair the specials ',', '+' and '\' 2002-01-14 19:33:13 +00:00
Pierangelo Masarati
7887ef7e92 revert previous commit: do accept '\00' 2002-01-14 11:09:14 +00:00
Pierangelo Masarati
3a6676a082 accept '\<special>' anywhere in the string 2002-01-14 10:50:02 +00:00
Pierangelo Masarati
c4164193ad fix behavior on improperly escaped illegal hexpair; do not accept '\00' 2002-01-14 09:56:54 +00:00
Kurt Zeilenga
f80b4ad53e Minor const'ification cleanup 2002-01-08 20:24:56 +00:00
Pierangelo Masarati
e5f503c24a Passes last test (empty value); also passes many of the invalid DN tests if liberal parsing is allowed 2002-01-07 15:23:23 +00:00
Pierangelo Masarati
e15aa7b682 fix non-printable flag detection; improve dn test (passes all but last in http://www.openldap.org/ietf/ldapbis/dn.txt) 2002-01-07 15:10:50 +00:00
Pierangelo Masarati
23cd7e837a fix domain generation for UFN 2002-01-07 13:16:53 +00:00
Kurt Zeilenga
0e2af54a3f Update copyright statements 2002-01-04 21:17:25 +00:00
Howard Chu
da00e5dac1 Use LDAP_FREE instead of free 2002-01-03 23:30:45 +00:00
Kurt Zeilenga
1d4e2342d2 Add LBER DN format flag (no code yet).
Return API result codes, not protocol result codes.
2002-01-03 20:06:29 +00:00
Kurt Zeilenga
fdb62b5650 Even larger TMP_SLOTS 2002-01-03 19:45:34 +00:00
Howard Chu
cc60686c0d Renamed parse_numericoid to ldap_int_parse_numericoid since it is
no longer static. Moved declaration to ldap-int.h and removed extern
from getdn.c
2002-01-02 21:59:26 +00:00
Kurt Zeilenga
763c0de59b Rework filter code
Misc cleanup / lint removal
2002-01-02 17:06:56 +00:00
Howard Chu
81e9e86861 Fix ldap_str2rdn, make sure to update progress pointer; don't
free attrType since we never allocate it
2002-01-02 09:59:37 +00:00
Howard Chu
b7be022824 Minor fix for LDAP_DN_IS_RDN_DC macro 2001-12-30 23:10:31 +00:00
Howard Chu
776ce133e9 More str2rdn tweaks 2001-12-30 09:42:58 +00:00
Howard Chu
5d28b4555e Reorganize LDAPAVA allocation layout 2001-12-30 06:56:57 +00:00
Pierangelo Masarati
754470162d remove useless function 2001-12-29 12:13:11 +00:00
Howard Chu
a191392e2e Changed LDAP_AVA struct berval * to struct berval. 2001-12-29 10:35:24 +00:00
Howard Chu
60510c5e39 Fix memory leak in ldap_explode_dn 2001-12-29 06:37:20 +00:00
Howard Chu
729fe56698 Made LDAP_UTF8_CHARLEN/ldap_utf8_charlen table-driven. 2001-12-29 02:57:32 +00:00
Pierangelo Masarati
2f3f7c6765 ldap_str2rdn() can parse without allocating a LDAPRDN* (not very clean, though); used by dn_rdnlen 2001-12-28 12:50:48 +00:00
Howard Chu
4d7e904404 Added ldap_dn2bv and ldap_rdn2bv 2001-12-28 10:03:39 +00:00
Pierangelo Masarati
1f8e4d3884 cleanup 2001-12-27 13:54:22 +00:00
Kurt Zeilenga
cddf7e0e00 More struct berval DN changes
decrease dependency on dn_validate/dn_normalize
2001-12-27 07:13:13 +00:00
Pierangelo Masarati
5f28673792 hex escape everything requires escape (uncomment #define PRETTY_ESCAPE to revert to previous behavior) 2001-12-24 19:17:10 +00:00
Pierangelo Masarati
4d981f7cc5 better rdn exploding 2001-12-24 15:47:06 +00:00
Pierangelo Masarati
65fad45129 bug in explode dn (caused most test failures when requesting client-side sorted results) 2001-12-24 10:31:11 +00:00
Kurt Zeilenga
450e0d6803 Some minor bugs for dntest "" 2001-12-24 07:22:25 +00:00
Kurt Zeilenga
a2c6a98427 cannot assert la_private == NULL on free 2001-12-24 07:03:14 +00:00
Kurt Zeilenga
04ea760a91 Delete USE_LDAP_DN_PARSING 2001-12-24 06:02:59 +00:00
Kurt Zeilenga
9d56c59d1b Minor cleanup, rename ldapava_free_*() routines and
don't expose symbols of ava helper routines
2001-12-23 22:46:37 +00:00
Pierangelo Masarati
dcc062dce5 least escaping in dnPretty (hope my wife doesn't catch me in front of the laptop :) 2001-12-23 09:26:44 +00:00
Pierangelo Masarati
6620bbff16 small bug exploited by malformed DCE format 2001-12-23 09:04:44 +00:00
Howard Chu
e5eb270e6c from jon@symas.com - misc Windows cleanup 2001-12-17 22:42:55 +00:00
Pierangelo Masarati
f4b21cc7b5 reworked internal stuff 2001-12-10 09:43:31 +00:00
Pierangelo Masarati
67ed3982fb now dnValidate loops thru each value; added private member to LDAPAVA to hold the attribute description 2001-12-06 11:50:17 +00:00
Pierangelo Masarati
9260b22dec liberally accept many LDAPv2/LDAPv3 stuff in DN (quoted parts, ';' as rdn separator and so); enforce exact case match of normalized dn in dnMatch (let's see what happens ...); fix a ldapava_free_rdn bug 2001-12-06 10:01:25 +00:00
Pierangelo Masarati
9004262d95 reimplement dn_validate/normalize/(match) using the ldap_str2dn/dn2str stuff; need to #define USE_LDAP_DN_PARSING 2001-12-04 20:22:26 +00:00
Kurt Zeilenga
95b3e2a97d Minor cleanup 2001-12-03 20:04:08 +00:00
Pierangelo Masarati
598d6e7859 small improvements and fixes; now honors ';' as rdn separator in LDAPv2 mode 2001-12-03 07:55:25 +00:00
Pierangelo Masarati
ea54a1a8e8 fix bug in previous commit 2001-11-12 08:47:09 +00:00
Pierangelo Masarati
6400698d17 struct berval * instead of char * in ldap_ava struct; minor cleanup 2001-11-12 08:10:12 +00:00
Pierangelo Masarati
a2eec74fc1 moved rdn parsing in a dedicated routine, ldap_str2rdn(), that can be used directly; now ldap_rdn2str() handles all the formats 2001-10-30 10:04:24 +00:00
Pierangelo Masarati
64c7e39aa8 More compliant version of str2dn/dn2str;
may need optimization;
uncomment #define USE_LDAP_DN_PARSING in libraries/libldap/getdn.c
to enable its use.
The ava/rdn/dn handling routines (append, insert, free and so) must
be made available thru declaration in some header.
2001-10-29 08:05:23 +00:00
Pierangelo Masarati
0ba03b18e7 enhanced dn parsing; see libraries/libldap/dntest for a 'demo'. Need to define USE_LDAP_DN_PARSING to override usual ldap_dn2ufn and so, and PARSE_UTF8 to parse attribute values as utf-8 2001-10-26 18:10:05 +00:00
Pierangelo Masarati
5b4b535617 handle lead/trail escape chars in LDAPv2/LDAPv3; change misleading name of AVA type modifier 2001-10-22 19:23:37 +00:00
Pierangelo Masarati
fefc29786c skeleton of ldap_str2nd/dn2str; works with most of the simple cases, but there's much to do with unicode, I think 2001-10-18 19:00:07 +00:00
Pierangelo Masarati
93923d4345 honors multiple type/value in rdn when generating ufn 2001-07-11 20:16:25 +00:00
Kurt Zeilenga
778b665242 Fix up some free'ing. 2000-10-02 17:43:39 +00:00
Kurt Zeilenga
efe39c999f modify ldap_dn2ufn() to return completely typeless UFNs
hide rest of UFN code behind #ifdef LDAP_UFN in preparation
for eventual removal.
2000-09-16 04:33:52 +00:00
Kurt Zeilenga
5b856458a2 s/SAFEMEMCPY/AC_MEMCPY/
Use AC_FMEMCPY where appropriate (-llber)
2000-07-28 01:07:07 +00:00
Mark Valence
0715e29ae5 Fix uninitialized var bug. 2000-06-09 06:45:14 +00:00
Kurt Zeilenga
1aa4b07c98 Remove support for DNS DNs (not to be confused with X.500 DN using
domainComponents (DC)).
2000-06-05 20:07:02 +00:00
Kurt Zeilenga
29d9fa20a2 Y2k copyright update 2000-05-13 02:36:07 +00:00
Kurt Zeilenga
21431725fc fix = vs == bug 2000-04-12 01:06:58 +00:00
Kurt Zeilenga
42cc5e5333 Fix bugs in UTF-8 code. Apply to getdn and charray. 2000-01-23 23:07:24 +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
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
f5c2ba7c3e Fix last commit. Should not have deleted assignment to p away. 1999-09-01 05:28:29 +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
5f880ae022 Fix LDAP_CONST->const in explode_name(), it failed when LDAP_CONST was empty. 1999-07-13 06:48:35 +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
21c70857f1 s/<stdlib.h>/<ac/stdlib.h>/ 1999-06-03 00:37:44 +00:00
Kurt Zeilenga
1f52f6e43e Add ber_strdup(), remove ldap_int_strdup(), add LDAP_STRDUP macro
and ripple change through -lldap.
1999-06-02 22:28:22 +00:00
Kurt Zeilenga
1bcec8bf6a Add LBER_ and LDAP_ memory allocators/deallocators for internal
library use:
  LBER_ macros expand to system routines.
  LDAP_ macros expand to new ber_ allocators.

Add ber_ and ldap_ memory allocators/deallocator:
  ber_ routines are wrappers of LBER_ macros.
  ldap_ routines are wrappers of ber_ routines.

Removed safe_realloc() macro from various files.  This issue
(if an issue) should be resolved across whole package.

ldapmodify.c now uses ber_ allocators to resolve ber_bvfree()
vs. WIN32 multiple heaps issue.

These changes should facilate implementation of
  ber_set_option( NULL, LBER_OPT_MEMORY_FN, ...)
and
  ldap_set_option( NULL, LDAP_OPT_MEMORY_FN, ...).
1999-05-29 01:19:14 +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
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
Bart Hartgers
027d2fadc6 Updates regarding threads and names. 1999-01-15 14:49:03 +00:00
Kurt Zeilenga
4d2761a6a6 Add simple copyright notice. 1998-12-28 20:53:15 +00:00
Kurt Zeilenga
0024cf2f4b -lldap reentrantancy improvements from Bart Hartgers <A.Hartgers@phys.tue.nl>
including use of ctime_r, gethostby*_r, etc..  Also reworked ldap_sort_entries
to be reentrant.
Need to add code to properly set LDAP_API_FEATURE_THREAD_SAFE.
1998-12-19 01:27:20 +00:00