Björn Svensson
2f3e0b01ff
Handle incomplete slug in insert route
2021-11-04 20:22:10 +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
c9s
5609fd5f9e
r3 function prefix
...
- Remove ltrim_slash.
- Add "r3_" prefix to r3_str.c functions.
2014-06-03 20:50:19 +08:00
c9s
053f9202f6
merge graphviz function prototype into r3.h
2014-06-03 20:47:35 +08:00