Ondřej Kuzník
b4afe00942
ITS#9576 Put the used table in ConfigArgs
2021-06-21 16:36:06 +00:00
Ondřej Kuzník
3138c8d5db
ITS#9363 Some missed MAGIC defaults
2021-06-21 16:36:06 +00:00
Ondřej Kuzník
2d78b6274f
ITS#8747 Allow olcBkLloadClientMaxPending in cn=config
2021-06-21 16:36:06 +00:00
Ondřej Kuzník
f016d88786
ITS#9575 Warn when specifying olcPasswordHash in the cn=config entry
2021-06-21 15:32:03 +00:00
Quanah Gibson-Mount
362fbedc51
ITS#8333 - Update internationalISDNNumber for RFC4519
2021-06-15 18:18:03 +00:00
Tero Saarni
3e45c71d29
ITS#9468 do not arm expire timer for connections that are already tainted
2021-06-08 15:41:40 +00:00
Howard Chu
2f880087c9
ITS#9468 always init lc_time and lc_create_time
...
Doesn't cost us anything and guarantees expiry will work if conn_ttl
or idletimeout are configured at a later time.
2021-06-08 15:41:40 +00:00
Howard Chu
4de2314555
ITS#9561 slapd init.c: fix copy/paste error
...
Added in 629cafc98d for ITS#8707
2021-06-03 21:28:36 +01:00
Ondřej Kuzník
0ea78fde20
ITS#6467 Indicate which operation is lost if we fail to add log entry
2021-06-03 10:23:43 +01:00
Ondřej Kuzník
726a203133
ITS#6467 Free uuid list after we're finished
2021-06-03 10:22:14 +01:00
Howard Chu
3ca790514f
ITS#9557 back-mdb: fix mdb_waitfixup for candidate-based searches
...
Off-by-one left last scope unrefreshed
2021-05-27 12:48:36 +01:00
Nadezhda Ivanova
b92b03373b
ITS#9555 Changed alignment in the default definitions block to tabs instead of spaces
2021-05-25 15:01:51 +00:00
Nadezhda Ivanova
915e515970
ITS#9555 Introduce a default operations timeout for back-asyncmeta
2021-05-25 15:01:51 +00:00
Ondřej Kuzník
5943a33456
ITS#6467 Adjust log message
2021-05-15 10:01:51 +01:00
Ondřej Kuzník
c216ef53cd
ITS#6467 Reset avl root after releasing the tree
2021-05-15 10:01:18 +01:00
Ondřej Kuzník
6977635c3e
ITS#6467 Deal with modRDNs
2021-05-13 20:14:55 +00:00
Ondřej Kuzník
c2edf41fff
ITS#9552 Record reqNewDN for modRDNs
2021-05-13 20:14:55 +00:00
Ondřej Kuzník
df27b2bbfd
ITS#6467 Plug a shutdown leak
2021-05-13 20:14:55 +00:00
Ondřej Kuzník
b0b0fc8c67
ITS#9551 Handle empty DN in extended filters
2021-05-13 18:33:25 +00:00
Howard Chu
07e79471f9
ITS#9534,#9324 fix refresh startup
...
Partially revert 5aa7e0f69b
Use an explicit timeout for Refresh response. Need to give time
for the provider to reply.
2021-05-13 18:29:22 +01:00
Ondřej Kuzník
efb84b3e9b
ITS#6467 Handle syncrepl searches with base of ""
2021-05-11 18:19:22 +00:00
Tero Saarni
255a37461e
ITS#9468 fixed typos
2021-05-11 15:05:50 +00:00
Tero Saarni
06ed787137
ITS#9468 summarize discussion about rebind-as-user
2021-05-11 15:05:50 +00:00
Tero Saarni
97217da5e3
ITS#9468 back-ldap: Return disconect if rebind cannot be done
2021-05-11 15:05:50 +00:00
Ondřej Kuzník
cba03e49a4
ITS#8747 Protect shutdown code while workers are still alive
2021-05-10 18:49:13 +00:00
Ondřej Kuzník
8e4d7ffe79
ITS#8747 Remove c_private from LloadConnection
2021-05-10 18:49:13 +00:00
Ondřej Kuzník
1cb65102ce
ITS#8747 Keep an explicit backend pointer
2021-05-10 18:49:13 +00:00
Ondřej Kuzník
3802fa9217
ITS#8747 Fix lloadd builds --without-tls
2021-05-10 18:49:13 +00:00
Ondřej Kuzník
a186fd70ab
ITS#8747 Do not continue reading if connection is dying
2021-05-10 18:49:13 +00:00
Ondřej Kuzník
4f4997551d
ITS#8747 Avoid epoch recursion in connection_write_cb
2021-05-10 18:49:13 +00:00
Ondřej Kuzník
2c1bb42f01
ITS#8747 Do not observe an epoch while calling dispose_cb
2021-05-10 18:49:13 +00:00
Ondřej Kuzník
c472639170
Report mbe->register_entry() errors
2021-05-10 18:49:13 +00:00
Ondřej Kuzník
de0caafe96
ITS#8721 Do not update ri_last unless we're actually retrying
2021-05-07 19:26:19 +00:00
Quanah Gibson-Mount
5c8bd550dd
ITS#9548 - Ensure modules in the pwmods directory get installed
2021-05-07 16:08:58 +00:00
Howard Chu
4993b34365
ITS#9544 fix #9511 patch
...
Include was erroneously deleted. partially reverts 6cdfc85fc5
2021-05-04 10:04:20 +01:00
Howard Chu
7b2c9aed3c
ITS#9541 fix typo in daemon.c
...
From commit ee49c83976
2021-04-30 09:24:32 +01:00
Howard Chu
145325dcc1
ITS#9537 slap_op_time: avoid duplicates across restarts
...
Initialize last_ times with current time sec & usec
2021-04-27 17:10:51 +01:00
Howard Chu
0c90b8c001
ITS#9531 back-mdb: fix delete of context entry
...
We already checked if attempting to delete the suffix, but
didn't skip the parent check as we should have.
2021-04-26 18:27:40 +01:00
Howard Chu
2cda679e3b
ITS#9534 fix prev commit
2021-04-24 15:47:03 +01:00
Howard Chu
87099f8e0d
ITS#9534 additional
...
Partially revert 0b20b92ec1
Reuse the client conn for delta-sync startup
2021-04-24 15:45:58 +01:00
Howard Chu
8a72584bd1
ITS#9534 fix delta-sync startup
...
When transitioning from plain refresh to delta mode, don't
wait for a reschedule, go immediately.
Partially reverts f2740c79b3
2021-04-24 15:38:02 +01:00
Ondřej Kuzník
9bbbbf5f6a
ITS#9502 TCP_USER_TIMEOUT for lloadd
2021-04-22 21:52:12 +00:00
Nadezhda Ivanova
6e3f6639b9
ITS#9502 Implement tcp-user-timeout support for back-ldap/(async)meta
2021-04-22 21:52:12 +00:00
Howard Chu
c63216abdc
ITS#9529 pcache: update refresh_time after query refresh
2021-04-21 22:32:42 +01:00
Howard Chu
6d285a33f8
ITS#9529 pcache: fix consistency_check locking
2021-04-21 22:15:27 +01:00
Ondřej Kuzník
72caa56a8c
ITS#8707 systemd notifications from lloadd
2021-04-20 22:54:19 +00:00
SATOH Fumiyasu
f3501534d4
ITS#8707 - Add slapd.service and lloadd.service for systemd
2021-04-20 22:54:19 +00:00
Ondřej Kuzník
629cafc98d
ITS#8707 Add systemd service notification support
2021-04-20 22:54:19 +00:00
Howard Chu
8f392914ca
ITS#9526 slapd-mdb tools: fix cursor init check
2021-04-18 17:51:30 +01:00
Ondřej Kuzník
ae77343d67
ITS#9520 Refuse parallelism if not compiled with libargon2
2021-04-14 18:17:59 +01:00
Ondřej Kuzník
8b353df0e2
ITS#9517 Add module args support to slappaswd and relevant docs
2021-04-14 18:17:59 +01:00
Ondřej Kuzník
d0eae40961
Expose slapTool for use elsewhere
2021-04-14 18:17:59 +01:00
Ondřej Kuzník
c29f0315c2
ITS#7786 Allow parsing of invalid entries when schema checking off
2021-04-12 16:28:49 +00:00
Ondřej Kuzník
afa19de2cb
ITS#9295 Handle add+delete on a single-value attr
2021-04-12 15:15:02 +00:00
Ondřej Kuzník
932cc56817
ITS#9519 Add namedObject draft and schema
2021-04-09 18:33:48 +00:00
Ondřej Kuzník
dde1bdf48f
ITS#9511 Fix terminator comment
2021-04-07 16:07:36 +01:00
Quanah Gibson-Mount
6cdfc85fc5
ITS#9511 - Stop plugin.c from generating an error when running make depend even if slapi is not enabled
2021-04-02 21:12:53 +00:00
Quanah Gibson-Mount
cd7127309e
Cleanup on example slapd.conf that's shipped to highlight the ability to temporarily modify a running slapd process even when using a slapd.conf file
2021-04-01 23:28:28 +00:00
Quanah Gibson-Mount
0ad73f8717
ITS#9437 - Fix slapo-otp overlay name
2021-03-31 23:12:00 +00:00
Howard Chu
94fbd96826
ITS#9513 Change all lutil time structs to use nanoseconds
...
Instead of microseconds
2021-03-31 18:53:50 +00:00
Howard Chu
9ac3909ead
ITS#9513 Intercept liblber error printer
...
And add time and thread ID prefix to all debug output
2021-03-31 18:53:50 +00:00
Howard Chu
01e5664c7c
ITS#9513 Cleanup debug output
...
Avoid splitting single lines across multiple Debug invocations
2021-03-31 18:53:50 +00:00
Ondřej Kuzník
80cfd8117b
ITS#7786 Try to synthesize missing attribute types
2021-03-31 16:14:25 +00:00
Ondřej Kuzník
fe7e4697e9
ITS#9437 Implement TOTP drift correction
2021-03-31 14:57:56 +00:00
Ondřej Kuzník
87f3bad8bb
ITS#9437 Add otp_2fa overlay
2021-03-31 14:57:56 +00:00
Ondřej Kuzník
e36d1e31c5
ITS#9001 manual changes
2021-03-30 15:46:40 +01:00
Ondřej Kuzník
51c444b065
ITS#8698 Defer policy checker cleanup if it's a pw extop
2021-03-30 02:10:19 +00:00
Ondřej Kuzník
0df931b98b
ITS#8698 Only remove our own callback
2021-03-30 02:10:19 +00:00
Quanah Gibson-Mount
adb16cbd64
ITS#9470 - Fix typos
2021-03-26 16:28:39 +00:00
Howard Chu
e6bf5795ac
ITS#9498 replace asserts
...
Just no-op if trying to close a connection that's already being closed.
2021-03-26 13:46:56 +00:00
Howard Chu
829263c454
ITS#8847 move lutil_sockaddrstr() to ldap_pvt_sockaddrstr()
2021-03-26 13:45:26 +00:00
Ondřej Kuzník
8382d3c380
ITS#9470 Add homedir overlay
2021-03-26 01:27:09 +00:00
Ondřej Kuzník
61e9b6d37a
ITS#9347 Log which policy attribute is invalid
2021-03-25 23:57:07 +00:00
Ondřej Kuzník
109d967ff2
ITS#7788 Hashing should be independent of a useable policy
2021-03-25 19:43:18 +00:00
Howard Chu
c6e521fa98
ITS#8950 move txn setup to frontend
...
Backends should just execute when invoked, frontend should
exclusively take care of queueing for txn setup.
2021-03-23 14:58:09 +00:00
Howard Chu
f9cb918d05
ITS#9504 back-ldap: set default idassert mode as documented
2021-03-22 17:50:32 +00:00
Howard Chu
f1ebb45695
ITS#9251 make max filter depth configurable
2021-03-22 17:31:13 +00:00
Howard Chu
da57548e52
ITS#9498 More connection streamlining
...
Since c_mutex is now always inited at startup time, we no longer
need connections_mutex to protect from uninit'd structures
2021-03-22 17:12:30 +00:00
Howard Chu
5398d44a36
ITS#8967 additional check
2021-03-22 09:18:32 +00:00
Howard Chu
a3935c7249
ITS#8967 back-mdb: fix adminlimit check
2021-03-22 08:36:49 +00:00
Howard Chu
f2740c79b3
ITS#8589 syncrepl: defer on REFRESH_REQUIRED
...
Schedule a new retry instead of immediate looping back. This
will also prevent locking up cn=config replication.
2021-03-21 17:41:19 +00:00
Howard Chu
cc2834c87a
ITS#9152 autoca: no-op if DB doesn't exist yet
2021-03-21 17:28:50 +00:00
Howard Chu
7a4e70f3e6
ITS#8577 don't allow setting logDB to current DB
2021-03-21 17:20:05 +00:00
Howard Chu
696d5656fa
ITS#9241 all ARG_DN configs must also use ARG_QUOTE
2021-03-21 16:47:43 +00:00
Howard Chu
cbb6441c30
ITS#8726 check newly registered loglevels immediately
...
See if they were requested as soon as they are successfully registered.
2021-03-21 16:36:30 +00:00
Howard Chu
bb6844e296
ITS#7295 don't init TLS threads by default
...
Do it explicitly in servers
2021-03-21 15:26:57 +00:00
Howard Chu
7ff1f42f7e
ITS#8246 frontend and config DBs are unique
...
Also make sure config_add_internal errmsg is returned to slapadd
2021-03-21 14:58:22 +00:00
Ondřej Kuzník
cf67fc22f3
ITS#9016 Do not forget to close directory handle
2021-03-19 12:48:09 +00:00
Ondřej Kuzník
3c12993fbe
ITS#9016 Check confdir is empty before generating from scratch
2021-03-18 21:07:43 +00:00
Ondřej Kuzník
eafcc405e2
ITS#6830 Enable NO-USER-MODIFICATION on ppolicy attributes
2021-03-18 17:32:30 +00:00
Ondřej Kuzník
4d6b01802a
ITS#9051 Check for more success result codes
2021-03-18 16:36:56 +00:00
Ondřej Kuzník
152c12d4d3
ITS#9051 Do not remove callback on intermediate responses
2021-03-18 16:36:56 +00:00
Ondřej Kuzník
0c8afb036a
ITS#9444 Manage sr_ref/sr_matched flags accordingly
...
send_ldap_response() clears them immediately even if we never attached
the data to be freed, so when we reinstate them, the flags are gone and
the next send_ldap_response() doesn't consider freeing them.
2021-03-18 15:34:26 +00:00
Ondřej Kuzník
f78887390a
ITS#9444 Pass original message when chain-return-error is set
2021-03-18 15:34:26 +00:00
Howard Chu
616e5bf1c3
ITS#9498 connection_next: fix validity check
2021-03-11 09:31:41 +00:00
Quanah Gibson-Mount
c7763538de
ITS#9453 - Make pw argon2 official
2021-03-10 23:21:08 +00:00
Howard Chu
28a04795f6
ITS#9479 asyncmeta: fix hanging ops
...
Two separate problems
1) ops that never got sent because of a pending Bind
2) errors that never got returned because of an active op
2021-03-10 00:18:59 +00:00
Quanah Gibson-Mount
180f5b62cb
ITS#9482 - Fix possiblity of uninitialized data being returned in slapi plugin
2021-03-09 20:49:42 +00:00
Quanah Gibson-Mount
891fc1e117
ITS#9481 - Fix cases when IPv6 support is disabled
2021-03-08 18:10:41 +00:00
Paul B. Henson
b91491a8ee
ITS#9481 - fix proxyp when IPv6 disabled
2021-03-08 18:10:41 +00:00
Konstantin Andreev
f2481c8d88
ITS#9446 - Correctly parse gecos field
2021-03-04 19:05:23 +00:00
Howard Chu
17abe7e710
ITS#9491 plug memctx leak - frontend already clears it
2021-03-04 17:03:20 +00:00
Ondřej Kuzník
99efeda06f
ITS#9288 Do no change tainted status on failed retry
...
It seems refcnt == 0 connections are tainted only if they were just
removed from cache.
2021-03-02 20:00:55 +00:00
Ondřej Kuzník
6bfdb0342d
ITS#8215 Some more slapmodify manpage tweaks
2021-03-02 19:08:50 +00:00
Quanah Gibson-Mount
05b1b4688c
ITS#9480 - Update example configurations to include monitor db
2021-03-02 16:12:05 +00:00
Ondřej Kuzník
34b95c520e
ITS#9438 Add remoteauth overlay
2021-02-25 22:11:39 +00:00
Ondřej Kuzník
38ea26b35f
ITS#7262 Retrieve the policy from the correct backend
2021-02-24 22:15:48 +00:00
Tero Saarni
0eacc4a793
ITS#9197 back-ldap: added task that prunes expired connections
2021-02-24 22:07:48 +00:00
Howard Chu
22fd5a8924
ITS#9477 fix regression from #9339
...
Must provide plain IP address for TCP wrapper
2021-02-24 19:59:51 +00:00
Paul B. Henson
146889f205
ITS#9419 Add support for HAProxy proxy protocol v2
2021-02-24 18:11:09 +00:00
Paul B. Henson
dcca73370b
Move slap_sockaddrstr into liblutil
2021-02-24 18:11:09 +00:00
Ondřej Kuzník
5fa0a651f5
revert: libevent 2.0 support
2021-02-24 18:11:09 +00:00
Ondřej Kuzník
a3c49b8709
ITS#9293 Store microseconds in pwdGraceUseTime
2021-02-24 17:03:22 +00:00
Ondřej Kuzník
d1799a5023
ITS#7596 Report correct number of grace authentications left
2021-02-24 17:03:22 +00:00
Ondřej Kuzník
ee564399df
ITS#9282 Check all csns
2021-02-18 17:31:32 +00:00
Quanah Gibson-Mount
5b2988ca54
ITS#9327 - Use STRIP_OPTS for lloadd
2021-02-17 19:55:25 +00:00
Quanah Gibson-Mount
ce2c5173bd
ITS#9161 - Fix various typos
...
Fix a number of different typos across the code base
2021-02-17 18:42:46 +00:00
Howard Chu
e5bd309fb2
ITS#9458 must alloc new conn->c_sb after freeing old one
2021-02-08 00:46:58 +00:00
Howard Chu
3539fc3321
ITS#9454 fix issuerAndThisUpdateCheck
2021-02-06 20:52:06 +00:00
Howard Chu
c0c1bd319e
ITS#9456 fix prev commit
...
No need to reschedule the task inside asyncmeta_timeout_loop.
Frontend already does it if task was init'd with a valid interval.
2021-02-06 15:45:22 +00:00
Howard Chu
7c129c8d62
ITS#9456 fix asyncmeta_timeout_loop()
2021-02-06 13:47:55 +00:00
Howard Chu
e3fd030aef
Fixup debug msgs
2021-02-05 23:55:27 +00:00
Ondřej Kuzník
e030e5eadd
Do not redefine lload_change everywhere
2021-02-04 18:07:25 +00:00
Quanah Gibson-Mount
6c469f0793
ITS#7790 - Rename config.h
...
Rename slapd/config.h to slap-config.h and update accordingly
Rename lloadd/config.h to lload-config.h and update accordingly
2021-02-02 21:26:39 +00:00
Ondřej Kuzník
1aecfe0b8f
ITS#6518 Only remove proxyauthz control if we generated one ourselves
2021-02-01 17:22:35 +00:00
Ondřej Kuzník
4da575d451
ITS#7766 Fix previous commit
2021-02-01 16:51:56 +00:00
Ondřej Kuzník
ac70b01bc4
ITS#6518 When using proxyauthz, replace existing control - (async)meta
2021-02-01 16:43:06 +00:00
Ondřej Kuzník
4a02ae132d
ITS#6518 When using proxyauthz, replace existing control
2021-02-01 16:04:52 +00:00
Ondřej Kuzník
20ec128916
ITS#9179 Always use effective identity when proxying
2021-02-01 14:22:45 +00:00
Howard Chu
0da38889e1
ITS#8541 fix data race in syncprov removal
2021-01-31 15:23:22 +00:00
Ondřej Kuzník
84db7cb21f
ITS#7766 Include all relevant attributes in diff
2021-01-28 20:59:17 +00:00
David Barchiesi
0799f58533
ITS#9442 Add negregex constraint type for not allowing values based on a regex.
2021-01-28 18:54:03 +00:00
Howard Chu
b979b57dcf
ITS#7468 slapd-relay: set real op->o_bd on successful bind
2021-01-21 13:23:34 +00:00
Ondřej Kuzník
58dfef012c
ITS#7439 Do not free parts of original filter
2021-01-20 11:39:17 +00:00
Ondřej Kuzník
a99e435200
Return success in glue destroy
2021-01-20 11:37:01 +00:00
Ondřej Kuzník
fc1bcaf9de
ITS#5941 manage callbacks to coexist with other overlays
2021-01-18 14:36:16 +00:00
Howard Chu
9d440e3d28
ITS#8307 slapo-accesslog additional check
2021-01-13 16:58:42 +00:00
Howard Chu
85b68aa5e2
ITS#8307 slapo-dds: mark internal searches as do_not_cache
2021-01-13 16:39:24 +00:00
Howard Chu
eefe12366c
ITS#8307 fix slapo-accesslog: noop if logDB isn't open yet
...
Add be_flag for DB OPEN status
2021-01-13 16:35:43 +00:00
Quanah Gibson-Mount
efaf9a4a17
Happy New Year!
2021-01-11 19:25:53 +00:00
Howard Chu
dfe1f6494d
ITS#9428 fix cancel exop
2020-12-20 21:31:15 +00:00
Howard Chu
27428b96f5
ITS#9427 fix issuerAndThisUpdateCheck
2020-12-16 18:52:42 +00:00
Howard Chu
354e678ce9
ITS#9426 dynlist: don't add unexpanded groups at end of search
...
if pagedResults is in use
2020-12-15 22:55:47 +00:00
Howard Chu
777098aa9d
ITS#9424 fix serialNumberAndIssuerSerialCheck
2020-12-14 19:03:27 +00:00
Ondřej Kuzník
d9f20cc09e
ITS#9363 Set appropriate defaults where needed
2020-12-08 19:11:22 +00:00
Ondřej Kuzník
0c3b8a3524
ITS#9363 Store defaults in ArgConf
2020-12-08 19:11:22 +00:00
Ondřej Kuzník
356715fd08
ITS#9363 Zero out values on config delete
2020-12-08 19:11:22 +00:00
Ondřej Kuzník
a44ba27410
ITS#9363 Unset readonly on delete
2020-12-08 19:11:22 +00:00
Quanah Gibson-Mount
d28e231a69
ITS#9420 - Fix memory leak in modrdn
...
Fix provided by grapvar@gmail.com
2020-12-08 16:05:35 +00:00
Howard Chu
4e801a9aaf
ITS#9416 more componentFilterMatch garbage
2020-12-03 19:30:53 +00:00
Howard Chu
6ae9bf167d
ITS#9014 fix component match parsing errors
2020-12-01 21:29:19 +00:00
Howard Chu
e394bcfa76
ITS#9413 fix slap_parse_user
2020-12-01 19:05:06 +00:00
Howard Chu
42d42421a8
ITS#9412 fix AVA_Sort on invalid RDN
2020-12-01 19:04:54 +00:00
Howard Chu
2aef56cd24
ITS#9411 fix thisUpdate check
2020-12-01 19:04:46 +00:00
Howard Chu
0c856f1b64
ITS#9410 remove assert in csnValidate
2020-11-30 16:42:17 +00:00
Howard Chu
b1c1a5eb51
ITS#9409 saslauthz: use slap_sl_free in prev commit
2020-11-30 16:20:18 +00:00
Howard Chu
0e09c857b6
ITS#9409 saslauthz: use ch_free on normalized DN
2020-11-30 11:45:46 +00:00
Howard Chu
a11b719c96
ITS#9408 fix vrfilter double-free
2020-11-28 15:54:17 +00:00
Howard Chu
5c27f9569f
ITS#9406 fix debug msg
2020-11-27 14:48:26 +00:00
Howard Chu
fa0f97545c
ITS#9406, #9407 remove saslauthz asserts
2020-11-27 14:37:10 +00:00
Howard Chu
12523b0f29
ITS#9400 back-ldap: fix prev commit
2020-11-24 16:08:29 +00:00
Howard Chu
dbe69684a1
ITS#9404 fix serialNumberAndIssuerCheck
...
Tighten validity checks
2020-11-23 17:14:00 +00:00
Howard Chu
1ea12260d5
ITS#9400 back-ldap: fix retry binds
...
Regression from fix for ITS#7403
2020-11-23 05:14:30 +00:00
Ondřej Kuzník
323bb1d9a4
Handle upstream rejecting a StartTLS exop
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
0abf3f5bc9
Flush cache before calling dispose()
...
This needs to be confirmed:
Location based atomics do not imply a full fence of the same level. So
to get the code in dispose() read the actual data, it seems we need to
initiate a fence.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
dfbed44b3e
Do not accept requests with msgid == 0
...
It is used internally to identify pinned operations and should not be
encountered over the wire.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
dfbf25d579
Honour keepalive settings for upstreams
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
25fff30e39
Let the last thread dispose of pending references
...
If we're idle, there might be objects pending cleanup for the last two
epochs. Unless another thread comes in and checks into a new epoch or we
shut down, they will linger forever.
If one of the objects was a connection, it wouldn't get closed and be
stuck in CLOSE_WAIT state, potentially refusing another ligitimate
connection if its socket address were to match the one we're yet to
close.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
41a74b4689
Introduce the notion of experimental features
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
1f6d8611a3
Implement read throttling when writes backlog
...
Reject operations in such a case with LDAP_BUSY. If read_event feature
is on, just stop reading from the connection. However this could still
result in deadlocks in reasonable situations. Need to figure out better
ways to make it safe and still protect ourselves.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
68b163fca9
Introduce mutex checks
...
Switched off unless thread debugging is on, but still useful for static
analysis.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
62a806b243
Thread error checking
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
1328777a85
Fix a SASL channel-binding leak
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
58d66a3946
Fix race between unlinking a client and processing incoming data
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
959ff07911
Make sure read event is not enabled while upstream_bind is scheduled
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
b2e57148fa
Shorten to one epoch per PDU
...
A full read cycle can take a very long time if the limits are set too
high.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
b49f51879f
Implement client pending operation limits
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
f832024e90
Straighten up client pending op tracking
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
dc1961cb15
Epoch based memory reclamation
...
Similar to the algorithm presented in
https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-579.pdf
Not completely lock-free at the moment. Also the problems with epoch
based memory reclamation are still present - a thread actively observing
an epoch getting stuck will prevent LloadConnections and LloadOperations
being freed, potentially running out of memory.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
aab6af1c4e
Switch to LDAP_OTHER when handling a lost upstream.
...
LDAP_UNAVAILABLE signals "the server is shutting down or a subsystem
necessary to complete the operation is offline", so intelligent clients
tend to infer the connection will not be usable any more, which is not
the case here.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
81ead4a5f4
Fix races with backend_retry
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
78f25a3c91
A failed cn=config ADD needs to be handled
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
4b3d21146b
Introduce SASL support for upstream connections
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
05e0906f8b
Fix backend starttls= setting being ignored
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
9444dfc991
Simplify pause handling
...
Gets rid of a race where unpause+pause fired in a quick succession would
miss the event_base_loopbreak() call.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
25a4d684fc
Permit lloadd to share slapd TLS context
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
63efcd63eb
Reuse connection walking in monitor for upstreams too
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
3bd2d7483e
Reuse connection_walk for client matters
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
b4f43ed8e1
Refactor backend reset
...
Reuse the connection walking facility in timeout management.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
638f8a2cbc
Tighten checks on retry management
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
2a813cb06d
Clean up backend_retry and its callers.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
241f65b9e0
Fix a race in managing b_dns_req
2020-11-17 17:58:15 +00:00
Nadezhda Ivanova
f4a2fdd400
Fix a new backend not being operational if added via cn=config
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
00806dd32a
libevent 2.0 support
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
f1ea9da3a0
Reorganise listener support in cn=config and module startup
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
bd7a6f67de
Introduce lload_open_new_listener
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
757c8beda7
Switch to ldap_parse_url_ext
...
This simplifies port parsing in the end. Also pass the url to
ldap_open_listener in anticipation of incremental listener config.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
93d20459f1
Make io-threads modification startup-only
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
db3961f489
Record connect task to allow canceling it
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
6b10c2988e
Record pending DNS resolution to be able to cancel
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
b039e7c1b0
Keep a reference around for the bind task
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
0314f95d7f
Work around libevent base not waking up on shutdown
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
db939eeb86
Protect operation when abandoning
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
07401e5829
Implement runtime monitor (un)registration
...
Unregistration is a hack and we shoould either make the subsystems into
an entry (if monitor allows subentry generation) or implement subsystem
unregistration in back-monitor.
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
1ea5ee1f01
Do not unlock upstream without referencing its dying ops
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
b1c098ad76
Module shutdown support
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
05d6aae40f
Rework lloadd startup
2020-11-17 17:58:15 +00:00
Ondřej Kuzník
362f16479a
Deal with no backends being configured
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
4c355deb3d
Record the backend name
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
3a6b399580
Reflect backend URI change in cn=monitor
2020-11-17 17:58:14 +00:00
Nadezhda Ivanova
bace795984
Enable dynamic configuration
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
70ae4af60a
Fix interaction of graceful connection closing and SASL bind support
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
d954216f93
Change log level for unsolicited response
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
edfb3d73d6
Fix operation status tracking.
...
An operation is rejected iff it has to be dropped before we can find an
upstream for it (unless we handle it ourselves, that is). At that point
it is failed unless completed successfully.
This makes a difference for multi-stage binds which alternate between
'failed' (we are waiting on a server response) and 'completed' (server
did what we asked them to, waiting on client to continue).
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
cfe9065824
Introduce infra to handle config changes
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
a7f8f58a63
expose task functions for invalidation
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
bf9f99dd88
Split backend destruction from resetting it
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
7f22bac4ac
Introduce a new connection status - gentle shutdown
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
ca646cd02d
Fix operation counts
...
Trying to abandon an operation does not automatically make it completed,
it might have failed already but we're just racing to reach the client
to record that.
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
bea9bfb33d
Move op counting to operation_init
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
0011684760
Cleanup sasl_bind_mech resets
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
9bd90a741c
Fix a race on bind response processing.
...
During response processing, an upstream connection could be marked ready
after a different bind had already been allocated to it, thus allowing
two binds to be in progress on the same connection.
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
485a169758
Implement pause handlers
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
db5966f60d
More meaningful connection type reporting
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
22818e8583
Module shutdown
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
dab9054794
Rework monitor startup
...
Takes care of dealing with monitor not present/not configured and fix a
monitor startup issue.
2020-11-17 17:58:14 +00:00
Nadezhda Ivanova
678fa100f7
Convert the load balancer into a backend
2020-11-17 17:58:14 +00:00
Nadezhda Ivanova
7771606984
Use slapd's config.h
2020-11-17 17:58:14 +00:00
Nadezhda Ivanova
2d33032504
Lload cn=monitor initial implementation
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
7a69017f6f
Resolve authzid after a successful auth
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
c957bb9199
Add SASL documentation on SASL handling
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
205db0bf94
Reset pin on simple bind
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
cbc0ec04c0
Fix pinned operation forwarding
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
2ba833680f
Operation abandon related fixes
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
5c1245de06
Manage c_sasl_bind_mech on upstream
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
c52328f63d
Clear c_auth on every bind request
...
For a new bind request, this is obvious, for SASL bind requests, we do
not know the final identity until we have finished handling it, make
sure it stays empty until then.
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
72ca711271
Do not compare c_auth when NULL
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
ee893ae147
Handle EXTERNAL mechanism
...
Will only try to extract the TLS client certificate name if used during
the last handshake.
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
003a35c62f
SASL bind support
...
Introduces pinned operations. When SASL bind finishes, we might still
have to maintain a link between the client an an upstream for future
bind operations if we got a SASL Bind in Progress result code. We zero
out the msgids and remember a server-unique identifer on the client and
the relevant operation that lets us retrieve that link again. This
operation is reclaimed just like anything else when connections drop.
Hopefully, this should work for LDAP TXN and VC Exop support with SASL
later as well since it allows for many-to-many links to exist.
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
21a22d1bf1
Refactor request parsing and sending.
...
We have to do most of out processing before we send the request over to
the upstream. If we don't, we might be too late and the response might
have arrived already.
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
ddd1acc327
Passing the client directly will allow clearing it from op
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
1fd7249f8e
RFC4511 says Binds do not abandon, send a "reset" bind instead
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
66f06f3fa9
Initial extension to upstream selection
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
c91d61cf19
Do not copy files from slapd, just link them
2020-11-17 17:58:14 +00:00
Nadezhda Ivanova
37cd5f21d5
Enable compilation of the load balancer as a module
...
To compile the balancer as a slapd module, pass --enable-balancer=mod to ./configure
Use --enable-balancer(=yes) to compile as standalone server.
2020-11-17 17:58:14 +00:00
Nadezhda Ivanova
8bc7650a7c
Clean ups and renames to coexist with slapd
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
ea83627929
request_abandon RFC4511 conformance
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
5cbd30ded9
Log timed out connections more clearly
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
c386d527ca
Protect currently impossible branch
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
aecc62c08e
Introduce operation timeout machinery
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
8ba44630ef
Factor out abandon message preparation
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
1790018488
Record operation activity times
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
a0ec50b33d
Upstream queues ordered by c_connid
...
In preparation for operation timeout events.
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
0cfd4fca4d
Make timeouts common and redo connection read timeouts
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
b4d7e8af8d
We should just be able to call backend_retry
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
f87127dfa2
Set up TLS context for backends
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
1b46f86627
Client TLS support
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
a0cd41ecd2
Upstream TLS support
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
063981a06d
Respond to timeout events properly
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
ccf75c96c4
Update write timeout to timeval
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
5ee4b67673
Move bind handling to bind.c
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
abab7e46ad
Move client related functions to client.c
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
f27517af95
Rename bind handlers
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
b801ca17cb
Rename macros and symbols to lloadd
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
11f474385a
Exop support
...
At the moment, no exops are processed internally, all are passed on
unchanged.
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
7cd531c069
Improve spec conformance, logging
2020-11-17 17:58:14 +00:00
Ondřej Kuzník
c60ef73984
Rework upstream conn setup
2020-11-17 17:58:13 +00:00
Ondřej Kuzník
0b3531066d
Refactor operation_send_reject
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
d22db36cea
lload_libevent_init can fail and wants to log
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
8d93e0baa0
Unify connection locking and I/O
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
cfeb4d82a3
Set binding state after we have dropped all ops
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
5fcef01d62
Switch from a global mutex
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
96b7619afc
Do not unlock client unless we are destroying it
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
362d550328
Do not crash when closing both client and upstream
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
532fc1bf98
Shorten time operation_mutex is locked
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
e03c9e6fb4
Stop processing if we freed the client
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
f7cf34e69c
Reset connection state on abandon
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
6140cdf6f8
Handle a client connection disconnected from op
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
d4225924bc
CLOSING is another potential state we could be in
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
0ad91e0546
Do not back off until we get a failure
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
cda8411c48
Close up the race
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
31074213f7
TENTATIVE: communicate more for op destroy race
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
622b87d5e8
Make ready only when still alive
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
16010e5e16
More logging improvements
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
7b7f9724c4
Avoid a deadlock with client
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
7b413f9ed4
Update docs and defaults
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
7046444327
Do not read on the last iteration.
...
When the pdu processing limit is hit, we still attempt to read another
PDU. If we succeed, the ber_get_next call in the read callback will
abort since a full PDU is already present.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
65def94380
More logging improvements
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
1740f36bfc
Fix emfile handling
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
30e538e836
Realign logging levels.
...
Stats now logs all operations, stats2 additionally intermediate messages
(search entries).
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
1dd0e5131a
Only one bind at a time
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
33a993553d
Unblock the client when we can't find an upstream
...
If we can't find an upstream, we keep the client around, so it needs to
be unblocked.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
95df8a1ec8
Adjust backend operation counting
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
baf1feab82
Handle asynchronous connect properly
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
46fe014378
Make sure operation stays alive when we process it
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
0ff462b619
Fix issues in bind response handling
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
545198c70d
Simplify abandon processing
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
88390159a1
On connection shutdown, free op from the correct side
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
37cff37305
Manage connection refcnt better
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
af7ce80c85
Remember and clear bind status correctly
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
05f2ac2583
Unify logging output
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
873d6fa3e1
Handle backend unsolicited response properly
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
961b600a42
Rework proxyauthz handling
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
6ee21f1181
Split bind configuration from backends
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
0e7792e8f3
Borrow liblber code to get abandon processing to work
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
7eeb5bb801
Forward controls correctly in the face of proxyauth
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
5b1ad43178
Handle upstream connection shutdown properly
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
c228bd1160
Be consistent with bind responses on no upstream
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
a8a0fe26b0
Documentation updates
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
495dfa69a2
Split client/upstream PDU size limits
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
3fa8a0cdf2
Rename listener-threads to reflect the option
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
1082486874
Only enable verifycredentials if libldap does
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
1dfeca3539
Another attempt at operation/connection destroy interaction.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
26f721510a
Improve logging
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
3f5dee0b79
Keep a list of active clients for shutdown purposes.
...
Potentially for timeout detection purposes in the future.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
e0b8bd5fc9
Free all pending operations on shutdown
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
cf05722b6c
Lookup operations by saved connid.
...
We reset the connection pointer on a destruction attempt, avoid the
spurious asserts.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
f4afc06920
Tweak connection error logging.
...
Do not log when receiving the last bytes on a connection. Log failed
writes.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
d020897f5b
Initialise listeners after all workers have been
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
37a474b508
Fix error handling wrt. its callers
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
ee288cfc2d
Fix refcounting for all code paths
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
53015aa4cb
Round robin for backends.
...
Several threads calling backend_select might reset current_backend to a
different place, there are two options to deal with that:
- just let the last rotation win (the current approach)
- detect whether first == current_backend and only replace then
Not sure which one is more useful, going with the simpler.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
e65cd38787
Round-robin for upstream connections
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
58a880bc7b
Convert backend and upstream management to use CIRCLEQ.
...
This alone doesn't make the server do a round robin.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
643194e79e
Revert connection/operation mutex order.
...
There was still a race where the connection could be freed as the
operation was still being used.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
9ebe5acb62
Clean up events properly
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
8eb7f3fbca
Stop the read callback on a dead connection.
...
The connection might be ready to read (close) but if we can't destroy it
yet, we don't want the callback to trigger all the time or process new
data.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
6899d0123d
Do not bother to write to a dying connection
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
77f2c57132
Reset c_*ber after freeing and check c_pendingber race
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
07b5744c2a
Retain a reference around for handle_responses
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
c5584fd32a
Do not leak responses to abandoned ops
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
7a29fabd09
Destroy the unbind operation when acted upon
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
9d66c26be5
Operation reference counting
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
ea7e40b8e7
Shutdown handling
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
837a6068e0
Rework client_read_cb along the lines of upstream
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
028f28690f
On a failed bind, stop the callback from firing again
...
Not a problem but causes a slew of calls to upstream_bind_cb that will
all fail in the same way.
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
cddc96322d
Do not clear c_pendingber on short write
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
fba4bed6e2
connection reference counting
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
c0d254a4ce
Do not leak BerElements
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
6c8b2acce0
Do not leak addrinfos
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
8f5bae921e
Pending operation tracking and limiting
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
e5fcf17506
Save connection ids on operation for logging purposes
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
54cd3a27f0
Reject operations when binding
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
50f5c4bea7
Report initial bind errors to client
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
2e2c86664a
There might be errors before we save the operation in c_ops
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
b6b3f35aac
Fix proxyauthz handling
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
8b1703d2a7
Implement backend retry timeouts
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
463bcdd2c4
Update backend progress tracking
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
dc5e2538ec
Configuration part for retry timeouts
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
673513a017
Maintain the configured amount of connections per backend
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
798e215ea6
Add connection number config
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
94ee62a4f4
Switch bindkey to use Backend instead of bindconf
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
59291ba4de
Proxyauthz support
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
9309bc9402
Make features global
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
639c5912f5
Client authentication
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
e5f68bcf7c
Option for response handling
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
4ad8ecd45e
Logging improvements
2020-11-17 17:55:46 +00:00
Ondřej Kuzník
f37e7757b1
Response handling, exploit optional bervals
2020-11-17 17:55:45 +00:00
Ondřej Kuzník
2fbc8ca473
Rename backend mutex
2020-11-17 17:42:44 +00:00
Ondřej Kuzník
3d1ea4693e
Authenticate the upstream connection if configured
2020-11-17 17:42:44 +00:00
Ondřej Kuzník
5bdb4e1570
Update maximum number or parameters for backend
2020-11-17 17:42:44 +00:00
Ondřej Kuzník
fd5b9cdb91
This is a proxy now
2020-11-17 17:42:44 +00:00
Ondřej Kuzník
93fe1d2bab
Operation parsing
2020-11-17 17:42:44 +00:00
Ondřej Kuzník
b49932d637
Connection write support
2020-11-17 17:42:43 +00:00
Ondřej Kuzník
79f7e79f15
Set up connections in the worker threads
2020-11-17 17:15:40 +00:00
Ondřej Kuzník
bf66b48fe3
Upstream connection setup
2020-11-17 17:15:40 +00:00
Ondřej Kuzník
1a45249054
Update connection init
2020-11-17 17:15:40 +00:00
Ondřej Kuzník
8e0a6119fa
Startup adjustment
2020-11-17 17:15:40 +00:00
Ondřej Kuzník
c596b797ed
Backend configuration
2020-11-17 17:15:40 +00:00
Ondřej Kuzník
46ddb4039c
lloadd ahoy
2020-11-17 17:15:40 +00:00
Howard Chu
a87ae275e1
ITS#9394 syncprov: ignore duplicate sessionlog entries
2020-11-17 00:31:56 +00:00
Quanah Gibson-Mount
6492012e00
Remove various unused variables
2020-11-12 18:05:59 +00:00
Howard Chu
9eb948529b
ITS#9391 remove asserts in UUIDNormalize()
2020-11-11 18:25:31 +00:00
Ondřej Kuzník
ee49c83976
Cleanup use of *alloc() in daemon.c
2020-11-09 16:57:21 +00:00
Ondřej Kuzník
727ec3ae14
ITS#9386 State change issues are still ignored, but at least log them
2020-11-09 11:51:20 +00:00
Ondřej Kuzník
123001c89d
ITS#9386 Address compiler warnings
2020-11-09 11:50:37 +00:00
Howard Chu
6b0fc9e034
ITS#9121 fix filtered memberOf
...
Broken in 2c0499ae4e adding nesting
2020-11-03 01:18:32 +00:00
Howard Chu
c0eeb2b9b8
ITS#9384 remove assert in obsolete csnNormalize23()
2020-11-02 16:01:14 +00:00
Howard Chu
265d362f27
ITS#9383 remove assert in certificateListValidate
2020-11-02 13:12:10 +00:00
Howard Chu
87158469eb
ITS#9121 fix dynlist_filter_dup for substring filter
2020-10-30 23:30:28 +00:00
Quanah Gibson-Mount
2f0883d161
ITS#9380 - Fix return type for connection_write_resume
2020-10-29 19:55:37 +00:00
Howard Chu
db46f88853
ITS#9379 reject listener URLs with non-empty DNs
2020-10-28 16:50:23 +00:00
Ondřej Kuzník
98a0029dae
ITS#9366 Check ldap_install_tls return and remove connection if failed
2020-10-23 20:38:21 +00:00
Howard Chu
6abfd60078
ITS#9370 revert previous commit, alternate fix
...
Just skip normalization if there's no equality rule. We accept
DNs without equality rules already.
2020-10-19 14:14:54 +01:00
Howard Chu
a08a2db406
ITS#9370 check for equality rule on old_rdn
...
We should probably just check in dnNormalize instead, and catch
this everywhere DNs are received. It might make us reject some
DNs that are already in use, though (e.g. received from other
directory servers that don't do schema checking).
2020-10-19 14:03:41 +01:00
Howard Chu
c1912fb7af
ITS#9121 don't process nested memberOf if memberOf wasn't requested
2020-10-13 22:11:44 +01:00
Howard Chu
fb587d3d58
ITS#9361 prevent CSN from being generated for purge deletes
2020-10-02 13:25:52 +01:00
Howard Chu
56860fc405
ITS#9342 delta-syncL ignore add of already existing entry
...
if the entryCSN is older. Previous patch breaks if writes are
received out of order, e.g. during a refresh.
2020-10-01 14:27:24 +01:00
Ondřej Kuzník
efc23cddc3
ITS#9295 Do not replace 'op'
2020-09-30 18:55:34 +00:00
Ondřej Kuzník
20024d5ba8
ITS#9359 Do not create an empty add
2020-09-30 19:25:56 +01:00
Howard Chu
ed949bf287
ITS#9342 delta-sync: ignore add if entryCSN is too old
...
This check is only needed for ops received without a CSN in their cookie.
This only occurs when the ops completed out of order on the provider.
2020-09-30 15:45:04 +00:00
Howard Chu
80a545b5ed
Partially Revert "ITS#8486 use kbtree for sessionlog"
...
This mostly reverts commit 1915cb968a .
Too many concurrency issues. Retains the improvement to
syncprov_sessionlog_cmp
2020-09-30 15:11:31 +00:00
Howard Chu
2bbb51e20b
ITS#9358 Fix reqStart normalizer
...
Don't truncate trailing zeroes in reqStart/reqEnd timestamps
2020-09-29 09:43:37 +01:00
Ondřej Kuzník
67d005ee65
ITS#9348 Stop using plain strerror()
2020-09-25 12:47:46 +01:00
Quanah Gibson-Mount
f3e86d3d93
ITS#8636 - Fix DESC for deltaCRL attribute
2020-09-25 04:29:59 +00:00
Quanah Gibson-Mount
fe3636df9d
ITS#8341 - Add matching rule to the namingContexts attr
2020-09-25 02:05:55 +00:00
Howard Chu
1915cb968a
ITS#8486 use kbtree for sessionlog
...
Saves about 20% CPU time and RAM
2020-09-25 00:07:50 +00:00
Ondřej Kuzník
98d5c5c6ce
ITS#8486 Protect tavl_* calls in play_sessionlog
2020-09-25 00:07:50 +00:00
Howard Chu
8f8774c0b1
ITS#8486 Minor play_sessionlog cleanup
...
Fix logmsg uuidstr.
Shortcut finding start of playback.
Allow dup CSNs in log, but with different UUIDs. All
non-present deletes in a refresh use the same CSN.
2020-09-25 00:07:50 +00:00
Ondřej Kuzník
d2036cec90
ITS#8486 Switch sessionlog to use TAVL
2020-09-25 00:07:50 +00:00