Commit Graph

4563 Commits

Author SHA1 Message Date
Nathaniel McCallum
29f6260364 ITS#7532 - Add new function ldap_connect().
This function is used to manually establish a connection after
a call to ldap_initialize(). This is primarily so that a file
descriptor can be obtained before any requests are sent for the
purposes of polling for writability.
2017-10-11 14:31:22 -07:00
Jan Vcelak
cbf5f03476 ITS#7389 - MozNSS: load certificates from certdb, fallback to PEM
If TLS_CACERT pointed to a PEM file and TLS_CACERTDIR was set to NSS
certificate database, the backend assumed that the certificate is always
located in the certificate database. This assumption might be wrong.

This patch makes the library to try to load the certificate from NSS
database and fallback to PEM file if unsuccessfull.
2017-10-06 13:59:07 -07:00
Ian Puleston
46c93e41f4 ITS#8167 Fix non-blocking TLS with referrals 2017-10-06 13:57:13 -07:00
Quanah Gibson-Mount
35a880c53e ITS#8687 - EGD is disabled by default in OpenSSL 1.1. We need to comment out this block if it is not detected. Particularly affects cross compilation. 2017-10-06 13:48:40 -07:00
sca+openldap@andreasschulze.de
90835da72f ITS#8578 - remove unused-variables in RE24 testing call (2.4.45) 2017-10-06 10:45:08 -07:00
Jan Vcelak
19fd969d21 ITS#7374 - MozNSS: better file name matching for hashed CA certificate directory
CA certificate files in OpenSSL compatible CACERTDIR were loaded if the
file extension was '.0'. However the file name should be 8 letters long
certificate hash of the certificate subject name, followed by a numeric
suffix which is used to differentiate between two certificates with the
same subject name.

Wit this patch, certificate file names are matched correctly (using
regular expressions).
2017-10-06 10:44:13 -07:00
Jan Vcelak
acc5b88661 ITS#7373 - TLS: do not reuse tls_session if hostname check fails
If multiple servers are specified, the connection to the first one
succeeds, and the hostname verification fails, *tls_session is not
dropped, but reused when connecting to the second server.

This is a problem with Mozilla NSS backend because another handshake
cannot be performed on the same file descriptor. From this reason,
hostname checking was moved into ldap_int_tls_connect() before
connection error handling.
2017-10-06 10:44:07 -07:00
Hallvard Furuseth
ff2d7cc798 ITS#8733 Allow a raw integer to be decoded from a berval 2017-09-28 14:15:06 +01:00
Hallvard Furuseth
62811e8f65 ITS#8733 Allow extraction of the complete ber element 2017-09-28 14:14:55 +01:00
Quanah Gibson-Mount
43a039eba4 ITS#7428 - Non-blocking TLS is not compatible with MOZNSS 2017-09-26 10:59:08 -07:00
Ondřej Kuzník
a8f01cc885 ITS#8638 Add a recursive mutex to libldap_r for libevent
Most thread implementations suppport a native recursive mutex, use that
where possible (especially when a regular mutex is recursive already).

Also provide a macro for applications to test whether they can use the
lock functions interchangeably.
2017-09-26 16:26:33 +01:00
Quanah Gibson-Mount
c1512eea58 Fix typo "errror" -> "error" 2017-09-08 12:03:02 -07:00
Howard Chu
01a5eeac1d ITS#8727 plug ber leaks 2017-09-08 16:35:32 +01:00
Howard Chu
738723866e ITS#8717 call connection delete callbacks
When TLS fails to start
2017-09-06 21:46:09 +01:00
Howard Chu
af92b8d2ca ITS#8705 fix service pathname
Strip trailing space of last pathname component, if any. Not first.
2017-08-03 12:42:21 +01:00
Howard Chu
a58c01317c Merge remote-tracking branch 'origin/mdb.RE/0.9' 2017-06-01 17:52:15 +01:00
Howard Chu
60d500206a Release 0.9.21 2017-06-01 17:51:10 +01:00
Ryan Tandy
431c4af526 ITS#8648 init SASL library in global init 2017-05-07 21:29:44 +00:00
Ryan Tandy
e437b12277 ITS#8648 check result of ldap_int_initialize in ldap_{get,set}_option 2017-05-07 20:16:25 +00:00
Ryan Tandy
7b5181da8c ITS#8650 retry gnutls_handshake after GNUTLS_E_AGAIN 2017-05-06 22:50:13 +00:00
Howard Chu
38ac129e3a Fix pool_retract signature
Omitted from e12ca8b6fe
2017-04-21 14:39:17 +01:00
Quanah Gibson-Mount
42bc6ed991 ITS#8634 - Fix DES API function calls to current DES API 2017-04-14 12:27:14 -07:00
Howard Chu
9e051001d4 Add GnuTLS support for direct DER config of cacert/cert/key
Followon to b402a2805f
2017-04-10 00:21:08 +01:00
Howard Chu
13c39b98b5 Fixup handle_pause()
Return -1 if running on the main thread - which means there
are no worker threads to pause.
2017-04-09 15:39:44 +01:00
Howard Chu
2e011eeb67 Fixup cacert option 2017-04-09 15:39:13 +01:00
Howard Chu
83fb515555 Fixup cacert/cert/key options
Add get_option support, allow delete by setting a NULL arg.
2017-04-09 14:49:48 +01:00
Howard Chu
b402a2805f Add options to use DER format cert+keys directly
Instead of loading from files.
2017-04-09 00:13:42 +01:00
Quanah Gibson-Mount
eb8f1a7247 ITS#8353, ITS#8533 - Cleanup for libldap_r 2017-04-07 13:39:11 -07:00
Quanah Gibson-Mount
6ced84af79 ITS#8353, ITS#8533 - Fix libldap_r compilation 2017-04-06 15:12:02 -07:00
Quanah Gibson-Mount
01cbb7f4c6 ITS#8353, ITS#8533 - Ensure that the deprecated API is not used when using OpenSSL 1.1 or later 2017-04-06 11:47:06 -07:00
Ondřej Kuzník
e56a849e5d ITS#8625 Separate Avlnode and TAvlnode types
Switch AVL_CHILD/AVL_THREAD values and set Avlnode bits to AVL_CHILD for
better compatibility between avl and tavl as suggested by Howard.
2017-03-29 14:52:44 +01:00
Howard Chu
8b780915d9 ITS#8622 fix xcursor after cursor_del
Re-fix 6b1df0e4c7 from ITS#8406
2017-03-23 21:11:07 +00:00
Howard Chu
e12ca8b6fe Fixes for multiple threadpool queues
Remove poolq_hash, it wasn't distributing work evenly to the queues.
Just walk through all queues and use the one with smallest
active+pending count. Since pool_retract also relied on the hash,
a different means of locating the thread to retract was needed.
Add pool_submit2 which returns the threadpool task structure,
and record which poolq this task lives on.
2017-03-15 11:13:09 +00:00
Howard Guo
4962dd6083 ITS#8529 Avoid hiding the error if user specified CA does not load
The TLS configuration deliberately hid the error in case that
user specified CA locations cannot be read, by loading CAs from default
locations; and when user does not specify CA locations, the CAs from default
locations are not read at all.

This patch corrects the behaviour so that CAs from default location are used
if user does not specify a CA location, and user is informed of the error if
CAs cannot be loaded from the user specified location.
2017-02-22 09:56:17 -08:00
Howard Chu
9773f43b11 ITS#8585 Fail ldap_result if handle is already bad 2017-02-07 13:00:05 +00:00
Howard Chu
e8c7a365b9 Merge remote-tracking branch 'origin/mdb.RE/0.9' 2017-01-14 19:24:33 +00:00
Howard Chu
a87c8fd8c9 Further fix f8ce8a8271
Fully revert the change to GET_MULTIPLE
2017-01-14 19:23:22 +00:00
Howard Chu
2e1d10472c 0.9.20 still baking 2017-01-12 13:36:35 +00:00
Howard Chu
6a1ee5feec Fix f8ce8a8271
GET_MULTIPLE was broken
2017-01-12 13:36:12 +00:00
Howard Chu
7036dce36e Merge remote-tracking branch 'origin/mdb.RE/0.9' 2017-01-11 16:23:54 +00:00
Howard Chu
65b4c49dd3 Release 0.9.20 2017-01-11 16:19:33 +00:00
Howard Chu
aa5c04aba8 Happy New Year 2017-01-11 16:18:03 +00:00
Howard Chu
2bf650d95e ITS#8533 OpenSSL 1.1.0c compat 2017-01-11 14:12:45 +00:00
Howard Chu
6f7dbb65a6 ITS#8557 2017-01-11 11:23:26 +00:00
Howard Chu
ab18b27d7b Tweak cursor_next C_EOF check
Allow C_EOF flag to be stale
2017-01-11 11:22:26 +00:00
Howard Chu
c97f4ed1ae ITS#8557 fix mdb_cursor_last
Optimize mdb_page_search_root(PS_LAST) when cursor is already near
last position, ignoring C_EOF flag for now.
2017-01-11 11:21:34 +00:00
Howard Chu
307a2e02cd RE 0.9.20 2017-01-06 19:50:36 +00:00
Howard Chu
4f61f42810 ITS#8558 fix mdb_load with escaped plaintext 2017-01-06 19:50:09 +00:00
Quanah Gibson-Mount
1df85d3427 Happy New Year! 2017-01-03 12:36:47 -08:00
Howard Chu
cdfc9dc8a9 Merge remote-tracking branch 'origin/mdb.RE/0.9' 2016-12-28 18:37:40 +00:00