aboutsummaryrefslogtreecommitdiffstats
path: root/src/libutil/upstream.c
Commit message (Collapse)AuthorAgeFilesLines
* [Fix] Do not pollute public headers with libev internalsVsevolod Stakhov2023-09-131-3/+4
|
* [Rework] Use clang-format to unify formatting in all sourcesVsevolod Stakhov2023-07-261-556/+555
| | | | No meaningful changes.
* [Fix] Upstreams: Don't ignore revive_time config optionAnton Yuzhaninov2022-06-291-1/+1
|
* [Minor] Allow to specify mempool when copying an IP address structureVsevolod Stakhov2022-03-201-1/+1
|
* Spelling (#4086)Josh Soref2022-02-221-1/+1
| | | [Rework] Massive spelling fix from @jsoref
* [Minor] Off by oneVsevolod Stakhov2022-02-081-1/+2
|
* [Minor] Fix a corner caseVsevolod Stakhov2022-02-071-1/+1
|
* [CritFix] Fix upstreams name resolution when there is also a portVsevolod Stakhov2022-02-071-3/+29
| | | | | | | | This fix is intended to address the case when Rspamd queries for a hostname with a port part when re-resolving upstreams addresses via the upstreams module. Found by: @slavkoja Confirmed by: @moisseev
* [Minor] Remove sequential algorithm as it is not actually a rotation algVsevolod Stakhov2022-01-181-4/+0
| | | | | | | Sequential rotation was used just to rotate all upstreams in the loop (e.g. when you need to do some action for all upstreams). Allowing to specify it as a user defined algorithm was a mistake as it breaks upstreams API expectations. See #4043
* [Minor] Allow to get a port for a specific upstreamVsevolod Stakhov2021-11-071-0/+9
|
* [Minor] Add one more check for use-after-free preventionVsevolod Stakhov2021-09-131-2/+2
|
* [Minor] Allow to capture upstream objectVsevolod Stakhov2021-09-131-0/+13
|
* [Rework] Try to resolve failed upstreams more agressivelyVsevolod Stakhov2021-03-251-22/+54
|
* [Fix] Fix round-robin rotationVsevolod Stakhov2021-02-181-1/+8
|
* [Feature] Support multiple base32 alphabetsVsevolod Stakhov2020-04-091-2/+2
|
* [Fix] Fix listen socket parsingVsevolod Stakhov2020-02-251-0/+1
| | | | Issue: #3254
* [Project] Support mempool flagsVsevolod Stakhov2019-12-231-1/+1
|
* [Minor] Add failure reason in the upstreams codeVsevolod Stakhov2019-11-131-8/+26
|
* [Minor] Sequential upstreams iteration is specialVsevolod Stakhov2019-11-091-1/+1
|
* [Feature] Allow exception when choosing upstreamVsevolod Stakhov2019-11-081-22/+53
|
* [Minor] Improve loggingVsevolod Stakhov2019-11-071-9/+10
| | | | Submitted by: @citrin
* [Minor] Fix C stupidityVsevolod Stakhov2019-11-011-14/+21
|
* [Fix] Allow real upstreams configurationVsevolod Stakhov2019-11-011-50/+54
|
* [Minor] Improve logging for upstream failureVsevolod Stakhov2019-11-011-28/+46
|
* [Fix] Fix upstreams exclusion logicVsevolod Stakhov2019-10-311-6/+8
|
* [Fix] Fix consistent hashing when upstreams are marked inactiveVsevolod Stakhov2019-10-301-37/+91
| | | | | | | The idea is to rehash the value when we found that the current upstream is dead and apply consistent hashing algorithm multiple times. This is limited by number of attempts (we try 10 times before giving up). Also cleanup locking stuff.
* [Project] Some fixes in SRV records handlingVsevolod Stakhov2019-10-011-5/+16
|
* [Project] Start SRV upstreams implementationVsevolod Stakhov2019-10-011-26/+225
|
* [Fix] Distinguish remote and local addrs parsingVsevolod Stakhov2019-09-281-1/+2
|
* [Minor] Add special assertions to avoid upstreams corruptionVsevolod Stakhov2019-08-291-0/+2
|
* [Fix] Fix pending checks for eventsVsevolod Stakhov2019-08-291-5/+5
|
* [Minor] Fix dns servers upstreamsVsevolod Stakhov2019-07-261-0/+1
|
* [Feature] Upstreams: Set noresolve flag on numeric upstreamsVsevolod Stakhov2019-07-261-87/+129
|
* [Feature] Upstreams: Add lazy resolving logic to all upstreamsVsevolod Stakhov2019-07-261-2/+79
|
* [Project] Make it compileable again...Vsevolod Stakhov2019-06-221-3/+1
|
* [Project] Rework upstreamsVsevolod Stakhov2019-06-221-15/+13
|
* [Project] First refactoring step libevent->libevVsevolod Stakhov2019-06-221-2/+2
|
* [Minor] Pass variables from the environment to rspamd_envVsevolod Stakhov2019-03-271-8/+5
|
* [Project] Preliminary support of HTTP proxiesVsevolod Stakhov2019-03-181-23/+29
| | | | Issue: #572
* [Project] Allow to hash and compare inet addresses considering portVsevolod Stakhov2019-03-041-1/+1
|
* [Minor] Oops, fix typeVsevolod Stakhov2019-02-181-1/+5
|
* [Fix] Core: Fix address rotation bugVsevolod Stakhov2019-02-181-1/+7
| | | | | | | | | | | | | | | | | | | | | | Previously, upstream.get_addr function returned the new address of the upstream. Unfortunately, it was used for printing addresses. It caused the following situation: let's imagine we have A1 and A2 where A1 was initially selected. So the connection was performed to A1: Current addr Selected addr Connect+---------+ A2+------>A1 A1 | +-+Print failure<---+ A1+------>A2 A2 | +----+ +->Mark failure+-------->+ A2 | +----+ But the failure OP as well as log message told about `A2` where the real problem happened with `A1`. This commit adds distinguishing between getting the next and the current address of the upstream resolving this issue.
* [Feature] Allow to add upstream watchers to Lua APIVsevolod Stakhov2018-12-051-0/+6
|
* [Feature] Implement event watchers for upstreamsVsevolod Stakhov2018-12-041-2/+68
|
* [Minor] Allow to create upstreams without a contextVsevolod Stakhov2018-10-231-1/+12
|
* [Feature] Allow to set custom limits for upstream listsVsevolod Stakhov2018-10-231-24/+68
|
* [Minor] Fix event pending checksVsevolod Stakhov2018-10-061-1/+1
|
* [Feature] Distinguish IP failures from connection failuresVsevolod Stakhov2018-07-021-5/+7
|
* [Minor] Allow to create upstream lists without rspamd_configVsevolod Stakhov2018-02-151-21/+37
|
* [Fix] Fix upstream addrs updatingVsevolod Stakhov2018-01-161-4/+4
|