Commit graph

126 commits

Author SHA1 Message Date
Björn Svensson
c105117b40
Use PCRE2 instead of PCRE (#153)
PCRE is now at end of life and is no longer actively maintained.
Lift the dependency to the next major version, i.e. PCRE2.

Implementation notes:
- Removed the pcre study option since:
  "The new API ... was simplified by abolishing the separate "study" optimizing
  function; in PCRE2, patterns are automatically optimized where possible."
- If asprintf() fails the content of the 'strp' variable is undefined.
  Lets check the return value and return NULL upon error.
- Pattern and subject can straightforwardly be cast to PCRE2_SPTR since we
  only work with 8-bit code units.
2023-10-23 12:38:24 +02:00
Björn Svensson
9168f7e4d4 Support C23 projects
Don't define true/false/bool when r3 is used by C23 projects
since C23 already has a bool type and predefined constants.
2023-10-23 10:45:18 +02:00
Björn Svensson
5114d894e5 Remove fixed alignment 2021-10-18 11:36:54 +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
Björn Svensson
4babe735e8 Remove cyclic dependency between str_array.h and r3.h
This also makes sure we dont get warnings regarding bool
redefinitions when building with clang.
2021-10-13 08:46:47 +02:00
Yuansheng
79fd587615 feature: supported to match ipv6 address. 2019-08-01 21:38:14 -04:00
Yo-An Lin
577cfa0ccb
Merge pull request #130 from iresty/typo
change: typo.
2019-07-21 19:30:50 +08:00
Yuansheng
f8a3741211 change: typo. 2019-07-21 09:14:37 +08:00
Yuansheng
db91289ab6 change: rename OP_EXPECT_NOLINEBREAKS to OP_GREEDY_ANY. 2019-07-20 10:52:56 -04:00
Yuansheng
d516237aab optimize: optimized pattern .*, which can be used prefix matching. 2019-07-20 10:52:56 -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
karantin2020
75438ef3d3 Changed r3 memory model, made few optimizing 2016-03-22 07:23:37 +05:00
karantin2020
400768394d Added slug parser and repaired few memory leaks 2016-03-08 11:19:54 +05: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
1f1ab15cdd Fix for stdbool type 2015-11-17 21:40:21 +08:00
c9s
c128cdef13 Provide better feature checking for stdbool 2015-11-17 21:31:33 +08:00
c9s
973a2cb85c Move private functions to private header files 2015-11-17 21:17:35 +08:00
c9s
dbc18a86c4 __attribute__ 2015-11-17 18:32:51 +08:00
c9s
af8acd0286 use __attribute aligned to align struct 2015-11-17 18:32:51 +08:00
c9s
84a7d83812 Add padding to node struct 2015-11-17 18:32:51 +08:00
c9s
b52af2acbd Add padding to edge structure 2015-11-17 18:32:51 +08:00
c9s
150f7953a2 Remove unneccessary comments from struct 2015-11-17 18:32:50 +08:00
c9s
d4850d3564 Make edges as an array
Fixes: #89
2015-11-17 18:32:50 +08:00
c9s
34269aa045 Change compare_type from char to int 2015-11-10 19:36:01 +08:00
c9s
659dc19b1b Replace short integer with int to fit into cacheline (assume 64byte) 2015-11-10 19:29:18 +08:00
c9s
5d35d34ab3 Put pcre_extra back 2015-11-10 19:21:53 +08:00
c9s
5002272a33 Move pointer fields to top of the structure 2015-11-10 18:43:25 +08:00
Ricky Su
d5296df683 add extern c in c++ 2015-08-27 13:58:36 +08:00
c9s
72f10015d5 Fix copyright email 2014-06-27 13:24:40 +08:00
c9s
2c5f135600 macro rename 2014-06-10 20:18:59 +08:00
c9s
7f8684d808 put compare_type to the second place 2014-06-10 20:18:18 +08:00
c9s
b7a20774f2 struct field bit 2014-06-10 20:16:33 +08:00
c9s
5137d4d8e4 simplify functions to macro 2014-06-04 23:13:08 +08:00
c9s
4d68ae6841 remove const from errstr 2014-06-04 13:45:28 +08:00
c9s
b2946352f1 Add r3_tree_insert_routel_ex for error message 2014-06-03 23:50:02 +08:00
c9s
a3c527e1b2 Add const fix 2014-06-03 23:42:40 +08:00
c9s
c7220c5616 combine match_entry functions into r3.h 2014-06-03 22:07:46 +08:00
c9s
f95cce7407 fix header file include 2014-06-03 21:47:52 +08:00
c9s
053f9202f6 merge graphviz function prototype into r3.h 2014-06-03 20:47:35 +08:00
c9s
d8945980a7 tighter structure 2014-06-02 20:51:35 +08:00
Cindy Wang
7cae9bf71a Update r3.h
fix comment.. :p
2014-06-02 16:34:02 +08:00
c9s
1f21ea19a8 Add char ** errstr to r3_node_find_common_prefix 2014-06-02 15:52:40 +08:00
c9s
04d8977b21 r3_tree_insert_pathl_ex function 2014-06-02 14:47:46 +08:00
c9s
9441f974de test compile fail 2014-06-02 09:48:00 +08:00
c9s
fd1e5f7f50 Add r3_node_find_common_prefix test cases 2014-06-02 09:09:41 +08:00
c9s
f3bf32b922 refactor path insert function 2014-06-02 08:04:57 +08:00
c9s
57b4fde126 print errmsg 2014-06-02 06:48:00 +08:00
c9s
6dfd37d43d move slug related functions to slug.c and slug.h 2014-06-02 04:52:41 +08:00