Commit graph

272 commits

Author SHA1 Message Date
Yo-An Lin 76e2770304
Merge pull request #148 from Nordix/faulty-slug-in-insert-route
Handle incomplete slug pattern when inserting a route
2021-11-05 09:27:52 +08:00
Björn Svensson 2f3e0b01ff Handle incomplete slug in insert route 2021-11-04 20:22:10 +01:00
Björn Svensson f0dd25bd53 Remove unused memory pool 2021-11-03 21:22:48 +01:00
Björn Svensson 9c8feff07f Correcting leaks in tests
A couple of testcases did not free its `match_entry` allocations,
which triggers leak indications.
Visible when build and run using the leak sanitizer, i.e
`CFLAGS="-fno-omit-frame-pointer -fsanitize=leak" cmake ..`
2021-10-14 08:27:19 +02:00
Yo-An Lin b13dc8aa6e
Merge pull request #131 from iresty/feature-ipv6
feature: supported to use ipv6 address match route.
2021-10-14 10:31:23 +08:00
Yo-An Lin eca8d9992e
Merge pull request #143 from Nordix/str_array-fixes
Corrections in `str_array`
2021-10-14 10:29:49 +08:00
Björn Svensson 383717a8c7 Update the faulty access macros for str_array
Adds a testcase for the usage of the access macros, and also
updates the testsuite to only include what str_array requires.
This shows that str_array can be used separately by users.
2021-10-13 08:47:20 +02:00
Björn Svensson 00ec8b7f2b Correct buffer over-read errors
When inserting multiple routes with common slug patterns
there are reads beyond end of strings.

The scenario is added as a testcase and can be triggered by
the address-sanitizer when built using:
`CFLAGS="-fno-omit-frame-pointer -fsanitize=address" cmake ..`

Indicated as a `buffer-overflow`
2021-10-11 10:19:09 +02:00
Björn Svensson ff1ef2c148 Correcting issue with multiple edges
When `r3_node_find_common_prefix()` searches for the common prefix it
selects the first matched edge, which might not be the best match.

This issue gives memoryleaks which can be viewed in legacy
testcase `check_tree::test_insert_pathl()` by building using:
`CFLAGS="-fno-omit-frame-pointer -fsanitize=leak" cmake ..`
See testcase procedures:
    ret = r3_tree_insert_path(n, "/foo/{id}",  NULL);
    ..
    ret = r3_tree_insert_path(n, "/foo/{idx}/{idy}",  NULL);
    ..
    ret = r3_tree_insert_path(n, "/foo/{idx}/{idh}",  NULL); <-- leaks

Also added a testcase that triggers the problem including a leak for
reproduction on baseline.
2021-09-20 16:55:37 +02:00
Yuansheng 79fd587615 feature: supported to match ipv6 address. 2019-08-01 21:38:14 -04:00
Yuansheng 81f77ffe5a test: added test cases. 2019-07-21 08:46:37 -04:00
Yuansheng 845c47907f test: describe the test case name. 2019-07-21 07:48:11 +08:00
Yuansheng 2ad6b4c4f0 test: skip one test case, will fix it later. 2019-07-20 22:58:17 +08:00
Yuansheng 3364df80ee test: run test case check_routes2. 2019-07-20 22:55:44 +08:00
Yuansheng d516237aab optimize: optimized pattern .*, which can be used prefix matching. 2019-07-20 10:52:56 -04:00
Yo-An Lin 41685d402d
Merge pull request #129 from iresty/make-warning
change: avoided compiling warning.
2019-07-20 18:00:48 +08:00
Yo-An Lin fd34c7244a
Merge branch '2.0' into feature-scheme 2019-07-20 17:56:59 +08:00
Yuansheng 91cfc9d282 test: run the test case check_http_scheme. 2019-07-20 07:21:05 +08:00
Yuansheng 0485554d44 change(tests/check_slug): avoided compiling warning. 2019-07-20 07:06:56 +08:00
Yuansheng 4b066dd0fc test: run all of the test cases. 2019-07-19 09:15:47 -04:00
Yuansheng 43666a1183 feature: supported to match http scheme. 2019-06-26 23:06:32 +08:00
Yuansheng 848b8efdca feature: supported to match remote ip address. 2019-06-19 23:36:37 -04:00
Yuansheng 917fa6e385 change: removed useless comments. 2019-06-20 11:21:04 +08:00
Yuansheng 4ab222a308 feature: supported wildcard match way for host. 2019-06-19 10:07:14 -04:00
Michael Steinert b3dbf75da5 Remove zmalloc dependency
Zmalloc comes from Redis. It's purpose is to track total allocations so
that a maximum can be set. For more information see the following links:

https://groups.google.com/forum/#!topic/redis-db/dPRdpowqJsY
https://stackoverflow.com/questions/22729730/when-would-one-use-malloc-over-zmalloc

This allocator is slower, not needed, and conflicts with Zlib (when
linking statically). This patch removes Zmalloc in favor of the system
allocator. Application developers can still choose to override the
allocator in their applications, e.g. Jemalloc, TCMalloc, etc.

Fixes #104
2018-07-10 08:20:46 -05:00
Michael Steinert d1c06cd3e9 Cleanup CMake build files 2018-07-05 11:43:22 -05:00
Michael Steinert e9afe4b6cf Fix -Wdiscarded-qualifiers warnings 2018-07-05 11:43:22 -05:00
Michael Steinert 081ccb2bde Fix issues with check_tree test
This patch fixes a few issues in the check_tree test:

* Fix various memory leaks in test code
* Fix a double-free in test code
* Fix a memory leak in r3_tree_compile_patterns

One memory leak remains in the library code but it isn't obvious to me
how to fix it at the moment.
2018-07-05 09:58:20 -05:00
Martijn Otto 6565274ce8 We need 3rdparty for the normal build as well 2018-02-24 17:53:02 +01:00
Martijn Otto 1fceec760f We need to link to 3rdparty to be able to build the tests 2018-02-24 17:50:33 +01:00
Martijn Otto 2f96c59929 Further WIP, got the tests to link against pthread (was broken due to pkg-config not specifying -pthread as -lpthread and cmake thus not recognizing it as a library) 2018-02-24 17:45:15 +01:00
karantin2020 75438ef3d3 Changed r3 memory model, made few optimizing 2016-03-22 07:23:37 +05:00
c9s 03031e02aa Fix r3 json writer 2015-11-18 14:27:28 +08:00
c9s c3ef959539 Add route namespace
Summary:

    type route now becomes R3Route

Related issue #63
2015-11-18 14:16:26 +08:00
c9s 49ffb454f7 Add namespace for node/edge structs
node => R3Node
edge => R3Edge

Related issue #63
2015-11-18 12:53:46 +08:00
c9s b0971e1553 Fix include 2015-11-17 21:35:18 +08:00
c9s 973a2cb85c Move private functions to private header files 2015-11-17 21:17:35 +08:00
c9s b52af2acbd Add padding to edge structure 2015-11-17 18:32:51 +08:00
c9s 89e4517772 Fix zero-length path insertion
Fixes: #86, #85
2015-11-17 16:10:26 +08:00
c9s 2f3bcb7116 refactoring testcase group 2015-11-17 15:37:10 +08:00
c9s b70c239b2c Fix benchmark warning 2015-11-17 15:37:10 +08:00
c9s 5f39b73211 Add test_root_match test case 2015-10-18 07:39:50 +08:00
Ricky Su f445c261c6 add r3_slug_find_name and rename slug_count to r3_slug_count 2015-08-26 22:00:23 +08:00
c9s 72f10015d5 Fix copyright email 2014-06-27 13:24:40 +08:00
c9s 8ebaac0536 Fix CMakeLists.txt 2014-06-18 20:28:13 +08:00
c9s 25e3644630 put cmake_modules files back, we can support two build systems 2014-06-18 20:28:13 +08:00
c9s 98f27dadc9 test matched route data 2014-06-12 18:52:56 +08:00
c9s 5137d4d8e4 simplify functions to macro 2014-06-04 23:13:08 +08:00
c9s dc61d54530 free tree2 2014-06-04 16:01:19 +08:00
c9s f95cce7407 fix header file include 2014-06-03 21:47:52 +08:00