Commit graph

57 commits

Author SHA1 Message Date
Zhidao HONG
76df62a623 HTTP: fixed cookie parsing.
The fixing supports the cookie value with the '=' character.

This is related to #756 PR on Github.
Thanks to changxiaocui.
2022-09-19 02:45:44 +08:00
Andrei Zeliankou
e5d835e159 Tests: added tests with UNIX sockets in "source". 2022-08-08 10:32:24 +01:00
Andrei Zeliankou
0f72534660 Tests: style. 2022-04-11 21:05:14 +01:00
Andrei Zeliankou
9bea8c452f Tests: fixed type of applications. 2021-12-12 21:36:44 +00:00
Andrei Zeliankou
6961de1d64 Tests: added more tests for "query" routing pattern. 2021-11-10 15:43:24 +00:00
Zhidao HONG
aee908bcbd Router: matching query string support.
The "query" option matches decoded arguments, including plus ('+') to
space (' ').  Like "uri", it can be a string or an array of strings.
2021-11-05 22:56:34 +08:00
Andrei Zeliankou
39adb292d5 Tests: style. 2021-10-18 01:10:11 +01:00
Oisin Canty
60cf139961 Router: fixed crash when matching an empty address pattern array.
A crash would occur when the router tried to match an
against an empty address pattern array.

The following configuration was used to reproduce the
issue:

{
    "listeners": {
        "127.0.0.1:8082": {
            "pass": "routes"
        }
    },
    "routes": [
        {
            "match": {
                "source": []
            },
            "action": {
                "return": 200
            }
        }
    ]
}
2021-08-05 16:00:01 +00:00
Andrei Zeliankou
d643900237 Tests: minor fixes. 2021-05-24 04:33:42 +01:00
Andrei Zeliankou
6c97a1a069 Tests: style. 2021-04-05 14:03:05 +01:00
Andrei Zeliankou
f43265ba2c Tests: removed skip_alert(). 2021-03-31 23:42:00 +01:00
Andrei Zeliankou
af3b6ef37d Tests: added regex check. 2021-02-18 21:21:55 +00:00
Andrei Zeliankou
d43a84139d Tests: added missing checks for configuration results. 2021-01-14 03:04:20 +00:00
Andrei Zeliankou
6dc9c47ccd Tests: style. 2021-01-13 06:22:43 +00:00
Andrei Zeliankou
b2e767819f Tests: skip_alert() converted to the fixture. 2020-12-08 14:37:33 +00:00
Andrei Zeliankou
07789a23e9 Tests: options moved to the separate class.
This change is necessary to separate the logic
and prevent possible circular dependency.
2020-12-06 16:01:59 +00:00
Axel Duch
e3af18834d Router: matching regular expressions support. 2020-11-17 15:03:30 +00:00
Andrei Zeliankou
54837759f3 Tests: fixed unit.log print. 2020-10-19 22:25:29 +01:00
Andrei Zeliankou
6ec0ff3596 Tests: minor fixes. 2020-10-07 23:18:43 +01:00
Valentin Bartenev
3f513f434f Router: fixed "not empty" pattern matching.
The "!" pattern should be opposite to "", i.e. match only non-empty values.
But after 3c00af54b937 it was equal to "!*", which is wrong.
2020-10-07 20:06:30 +03:00
hongzhidao
806135f1c9 Router: fixed "pass" to upstreams.
Messed up return values in nxt_upstream_find() caused error in applying any
configuration with a valid "pass" value in router configuration pointing to
upstream.  That wasn't the case in "listeners" objects, where the return value
wasn't checked.

Also, it caused segfault in cases where the "pass" option was configured with
variables and resulting value was pointing to a non-existent upstream.

Added missing return checks as well to catch possible memory allocation errors.

The bug was introduced in d32bc428f46b.

This closes #472 issue on GitHub.
2020-08-28 00:53:36 -04:00
Andrei Zeliankou
d5e9159340 Tests: migrated to the pytest. 2020-09-16 21:31:15 +01:00
Axel Duch
b6792b00ae Router: route patterns multi wildcards fix.
Matching 'start' and 'end' position now adjusted to avoid false matching.

This is related to #434 issue on Github.
Thanks to 洪志道 (Hong Zhi Dao).
2020-07-10 10:28:53 +01:00
Axel Duch
a9a21f6fe4 Router: route patterns multi wildcards support. 2020-07-04 03:24:07 +01:00
Andrei Zeliankou
ea841400f5 Tests: added test for encoding in the "pass" option. 2020-05-15 04:21:10 +01:00
Andrei Zeliankou
ce4a2bbd05 Tests: style. 2020-05-15 04:20:56 +01:00
Axel Duch
26f407e24a Tests: decode uri and args. 2020-05-14 12:29:22 +02:00
Andrei Zeliankou
6a9a4fe0d4 Tests: introduced module version specification in prerequisites. 2020-04-24 05:08:56 +01:00
Andrei Zeliankou
0bfa09dfa0 Tests: minor fixes and style. 2020-04-14 02:35:04 +01:00
Andrei Zeliankou
6e5b5d2a0b Tests: added tests for "return" action. 2020-03-27 15:50:09 +00:00
Andrei Zeliankou
b214b7c690 Tests: more routing tests with negative rules. 2020-01-31 18:12:16 +00:00
Andrei Zeliankou
3b7b2fae54 Tests: check unique options in "action" object. 2020-03-03 17:54:02 +00:00
Valentin Bartenev
a60f856ce2 Improved validation of the "action" object.
Now it enforces the mutual exclusivity of "pass", "proxy", and "share" options.
2020-03-03 20:37:47 +03:00
Andrei Zeliankou
fbc72d7fec Tests: added test with invalid IPv6 address in routing block. 2020-02-27 01:37:54 +00:00
Axel Duch
96a9a790a0 Tests: routing by listener address. 2019-12-24 13:59:58 +00:00
Axel Duch
ee8fa5d467 Tests: routing by client address configuration. 2019-12-24 13:58:22 +00:00
Andrei Zeliankou
c2a7e403ef Tests: routing tests refactored. 2019-12-09 15:34:35 +03:00
Andrey Zelenkov
d58fe3db98 Tests: more URI normalization tests. 2019-10-23 16:59:53 +03:00
Andrey Zelenkov
31bbc755fd Tests: check initial configuration in test_routing.py. 2019-10-23 16:05:40 +03:00
Andrey Zelenkov
65ca2d7b19 Tests: refactored prerequisites model. 2019-09-14 14:44:35 +03:00
Axel Duch
7785c96c1a Added routing based on request scheme.
Scheme matches exact string “http” or “https”.
2019-07-24 13:47:35 +03:00
Andrey Zelenkov
ce1fbd9273 Tests: simplified one route case configuration.
No functional changes.
2019-07-14 23:49:45 +03:00
Andrey Zelenkov
29225c4fc6 Tests: removed misleading comments in test_routing.t. 2019-07-02 15:36:13 +03:00
Igor Sysoev
1f8c395fc0 Cookie-based routing should be case-sensitive. 2019-06-10 18:47:35 +03:00
Andrey Zelenkov
7927c20b3b Tests: routing "cookies" tests. 2019-05-30 16:47:39 +03:00
Andrey Zelenkov
c0ed2c02ab Tests: routing "arguments" tests. 2019-05-30 16:47:39 +03:00
Andrey Zelenkov
89bf008880 Tests: routing "headers" tests. 2019-05-30 16:47:39 +03:00
Andrey Zelenkov
67772cd3e9 Tests: fixed tests without "Host" header. 2019-05-30 16:47:39 +03:00
Andrey Zelenkov
90c5d3f5c0 Tests: adjusted skipping tests. 2019-05-30 16:46:04 +03:00
Andrey Zelenkov
7ad4a76704 Tests: configure arrays with PUT tests. 2019-05-30 16:44:14 +03:00