Commit graph

350 commits

Author SHA1 Message Date
c9s
8ee11aaa6f reduce variables and add const char* to insert_pathl. 2014-06-01 14:33:56 +08:00
c9s
998560634e remove unused variable and add const 2014-06-01 02:58:03 +08:00
c9s
40fa19002a Add const for slug_compile 2014-06-01 02:56:29 +08:00
c9s
bc27293f36 more const 2014-06-01 02:54:48 +08:00
c9s
8f8dbd520b remove const from match_entry pointer 2014-06-01 02:39:39 +08:00
c9s
1a4eb14a05 error code support
- return error code if compilation error occurs
- use asprintf to sprint errstr
2014-06-01 02:03:44 +08:00
c9s
642fdfca88 include assert 2014-06-01 01:40:28 +08:00
c9s
fe57cbf54d check pointer 2014-06-01 01:38:22 +08:00
c9s
4bb3ba9d04 assert(entry); 2014-06-01 01:26:59 +08:00
c9s
4f93a530e1 assert free 2014-06-01 01:26:36 +08:00
c9s
188a687150 check the pointer returns from zmalloc 2014-06-01 01:25:34 +08:00
c9s
a19d2377cc check the pointer returns from zmalloc 2014-06-01 01:24:57 +08:00
c9s
7d9b6c8889 check match_entry->vars 2014-06-01 01:20:28 +08:00
c9s
b61d5a78ae fix match_route 2014-06-01 01:16:53 +08:00
c9s
9433e2192a route api improvement 2014-05-31 19:56:46 +08:00
c9s
c58d48f962 Fix include 2014-05-28 21:56:22 +08:00
c9s
d400789d96 more const pointers 2014-05-28 21:09:37 +08:00
c9s
072c72621c separate header files 2014-05-28 21:08:06 +08:00
c9s
9cb2f80e1f more const pointers 2014-05-28 21:03:59 +08:00
c9s
a2bec00a9e match_entry.c 2014-05-28 21:02:57 +08:00
c9s
f5996731ca Add const for pointers 2014-05-28 21:00:02 +08:00
c9s
cd16d67663 fix zcalloc bug 2014-05-27 14:18:45 +08:00
c9s
cf734a480c edge branch with routes and other resets 2014-05-27 14:16:42 +08:00
c9s
60821aac0c const pointer 2014-05-27 12:35:17 +08:00
c9s
f596c7392d Add const 2014-05-27 12:34:28 +08:00
c9s
6cc57d545f const char * 2014-05-27 01:08:31 +08:00
c9s
9f8176447b const char * 2014-05-27 01:08:01 +08:00
c9s
54397987bd Add const 2014-05-27 01:07:33 +08:00
c9s
7aaed3e5d7 merge str_array.h 2014-05-26 21:39:36 +08:00
c9s
ef9962c958 struct field data type improvement for memory usage. 2014-05-24 18:45:43 +08:00
c9s
c1cd7444cb Add struct fields optimization 2014-05-24 17:13:55 +08:00
c9s
591b6cd4c1 when matching pcre do not switch check rc 2014-05-23 23:00:49 +08:00
c9s
628f09a8f4 Add OP_EXPECT_MORE_ALPHA opcode 2014-05-23 22:58:20 +08:00
c9s
9a1f7cfced update benchmark records 2014-05-23 17:36:47 +08:00
c9s
d02e16a65c improve stack allocation 2014-05-23 16:18:58 +08:00
c9s
b394be57cb support simple opcode 2014-05-23 16:18:58 +08:00
c9s
333fabd795 insert path for opcode 2014-05-23 16:18:58 +08:00
c9s
fe70b55253 Add node type for comparison 2014-05-23 16:18:57 +08:00
c9s
403b1d9ba2 Add opcode to edge 2014-05-23 16:18:57 +08:00
c9s
7d16413cb3 more benchmark result 2014-05-23 16:18:57 +08:00
c9s
52fd5979c0 move ov to stack variable 2014-05-23 16:18:57 +08:00
c9s
93f4654c54 pass studied pattern 2014-05-23 16:18:57 +08:00
c9s
ad6b7b236f combined_pattern_len is not used 2014-05-23 16:18:57 +08:00
c9s
3f4fcb8c27 remove duplicate header include 2014-05-23 16:18:56 +08:00
c9s
c1e5ea4393 Add OP_EXPECT_NODASH opcode 2014-05-23 16:18:56 +08:00
c9s
4d93d217a4 test r3_pattern_to_opcode 2014-05-23 16:18:56 +08:00
c9s
a41c9187ac Add some basic opcode 2014-05-23 16:18:56 +08:00
c9s
59e6997959 there is already a pointer guard in zmalloc 2014-05-23 16:18:56 +08:00
c9s
c841de166c free old pattern 2014-05-23 16:18:56 +08:00
ChangZhuo Chen (陳昌倬)
fb88655df0 Remove CMake related files 2014-05-22 22:53:49 +08:00
c9s
62bb4e5460 remove unnecessary pointer check 2014-05-22 22:26:46 +08:00
c9s
fe5c2381b5 remove point checking in str_array_free 2014-05-22 22:23:47 +08:00
c9s
9d26a53a08 update Makefile.am 2014-05-22 11:42:19 +08:00
c9s
c503a6d5d3 use jemalloc only in jemalloc major version > 2 2014-05-22 11:41:51 +08:00
c9s
1fdfaef16e what if we always use -ljemalloc 2014-05-22 11:34:37 +08:00
c9s
a8cec68f72 use -std=c99 2014-05-22 11:09:44 +08:00
c9s
e48538c526 check USE_JEMALLOC flag in Makefile.am 2014-05-22 11:09:43 +08:00
c9s
e8653eeb28 include jemalloc.h 2014-05-22 11:06:34 +08:00
c9s
eaa11d5380 found flag for slug char 2014-05-22 11:06:34 +08:00
c9s
33eea25926 check length 2014-05-21 20:30:35 +08:00
c9s
b83946e487 check macro PCRE_STUDY_JIT_COMPILE to compile pcre with JIT 2014-05-21 18:28:21 +08:00
c9s
946bac8f3c seems like pcre_free_study is not defined on older ubuntu 2014-05-21 18:26:08 +08:00
c9s
82ea09e146 when we free it, we know it's not NULL 2014-05-21 18:22:11 +08:00
c9s
834d87173a Fix variable name 2014-05-21 18:21:15 +08:00
c9s
175b594234 Fix 2014-05-21 18:20:48 +08:00
c9s
238aee085f use pcre's own functions to free pcre related structures 2014-05-21 18:17:51 +08:00
c9s
6762025fe6 free edge struct 2014-05-21 18:17:51 +08:00
c9s
7d288404c7 libpcre does not use zmalloc 2014-05-21 18:17:51 +08:00
Omer Katz
7303bc8f00 More guarding against freeing NULL pointers. 2014-05-21 12:50:56 +03:00
Omer Katz
61b3b24e2e Guarding against freeing NULL pointers. 2014-05-21 12:46:56 +03:00
Omer Katz
3ea9354e0b Implemented zstrndup. 2014-05-21 11:39:49 +03:00
Omer Katz
e34759c1aa Using zstrndup instead of strndup) 2014-05-21 11:18:12 +03:00
Omer Katz
18a92867fc Removed wrong call to zfree that caused a segfault. 2014-05-21 11:14:12 +03:00
Omer Katz
0e627e33d5 Fixed all warnings from tests. 2014-05-21 10:50:37 +03:00
c9s
de5a308002 fix header includes 2014-05-21 14:59:07 +08:00
c9s
b1939e287d Merge branch 'topic/zmalloc' of https://github.com/thedrow/r3 into thedrow-topic/zmalloc 2014-05-21 14:51:25 +08:00
c9s
5a84e9aeb2 update pcre match error message 2014-05-21 14:27:04 +08:00
Omer Katz
9c191682da Added zmalloc from redis in order to allow different allocators. 2014-05-20 20:50:15 +03:00
c9s
0064eb27a1 const to node * n 2014-05-21 01:22:49 +08:00
c9s
0d2ae75bc2 prefetch firstbyte 2014-05-21 01:20:18 +08:00
c9s
e9797295b5 Fix endpoint when branching edges 2014-05-21 01:15:54 +08:00
c9s
5bd1757e5f function name fix 2014-05-21 00:47:09 +08:00
c9s
cae305b92d when child is not endpoint, return NULL 2014-05-21 00:37:27 +08:00
c9s
90890b09e5 put r3_define.h back XD becase we depends on bool 2014-05-21 00:33:19 +08:00
c9s
92e2ddf066 remove r3_define.h 2014-05-20 23:54:57 +08:00
c9s
7ba0efc60c use doublecirlce for endpoint nodes 2014-05-20 23:48:35 +08:00
c9s
5183e9a052 merge r3_define.h into r3.h 2014-05-20 23:33:51 +08:00
c9s
750a9beaa4 _r3_tree_insert_pathl to r3_tree_insert_pathl_ 2014-05-20 23:30:36 +08:00
c9s
02b4008a69 str_split is unused 2014-05-20 23:29:17 +08:00
c9s
85001c6327 Rename compile_slug to slug_compile 2014-05-20 23:25:55 +08:00
c9s
99819c4bbb move strndiff and strdiff to node.c and make it private 2014-05-20 23:25:12 +08:00
c9s
26c7e8896e Rename count_slug to slug_count 2014-05-20 23:21:15 +08:00
c9s
9499432084 remove debug print 2014-05-20 21:41:24 +08:00
c9s
898ea300a9 Fix placeholder finder 2014-05-20 21:38:37 +08:00
c9s
a086f9f6e8 Fix memory allocation 2014-05-20 16:16:36 +08:00
c9s
e2bf5d5177 Allocation fixes 2014-05-20 15:49:31 +08:00
c9s
188bb991b9 -ggdb when debug mode is enable (--enable-debug) 2014-05-20 15:34:41 +08:00
c9s
5331d375ac Fix gnu c compiler error when the variable is the same 2014-05-20 15:32:22 +08:00
c9s
fd4e89c2f4 check NULL pointer 2014-05-20 15:14:12 +08:00
c9s
9d19d233c6 comment regexp symbol 2014-05-20 15:06:52 +08:00
c9s
41dc7373f3 comment jemalloc include lines 2014-05-20 01:28:51 +08:00
c9s
678d096d07 Merge branch 'feature/export' of https://github.com/czchen/r3 into czchen-feature/export
Conflicts:
	src/Makefile.am
2014-05-20 01:26:40 +08:00
ChangZhuo Chen (陳昌倬)
7bf513d5cd Update export symbols regex to ^r3_|^match_ 2014-05-19 22:32:39 +08:00
c9s
1ec3943591 we don't use list.c for now, so just skip it 2014-05-19 22:00:58 +08:00
ChangZhuo Chen (陳昌倬)
bad5cc8966 Export symbols only when it matches regex '^r3_' 2014-05-19 21:43:42 +08:00
c9s
c91c8f8f99 delte Makefile.in 2014-05-19 20:04:34 +08:00
c9s
2278a0f045 -fprofile-arcs -ftest-coverage for debug mode 2014-05-19 11:38:25 +08:00
c9s
8ba1230610 Add endpoint check 2014-05-19 10:49:47 +08:00
c9s
401443f7ac Add r3_ prefix to route struct related functions 2014-05-19 10:39:03 +08:00
c9s
2ac6f87422 Fix r3_tree_match_route 2014-05-19 10:34:48 +08:00
c9s
2084675423 r3_tree_insert_path API changes 2014-05-19 10:12:41 +08:00
c9s
bada37fd75 Fix warning 2014-05-18 20:16:53 +08:00
c9s
baf23fafb0 fix pattern matching for /user/{id}-{user} 2014-05-18 20:09:42 +08:00
c9s
f039cc3c8f Fix child insertion 2014-05-18 20:09:42 +08:00
c9s
7d6113d17d truncate edge pattern in r3_edge_branch 2014-05-18 20:09:42 +08:00
c9s
4565346298 Fix tests for #10 2014-05-18 15:06:20 +08:00
c9s
d4c2c6b47e Add failing test to issue #10 2014-05-18 15:00:11 +08:00
c9s
cda897a9a7 fix slug compilation 2014-05-18 14:30:00 +08:00
c9s
baf2368726 comments 2014-05-18 13:38:30 +08:00
c9s
cde6e5de31 Fix tests 2014-05-18 13:15:53 +08:00
c9s
60991c3d73 condition_* => route_* 2014-05-18 13:06:36 +08:00
c9s
1632f9807e r3_node_match_condition 2014-05-18 12:56:53 +08:00
c9s
641d1e53d8 fix condition match for request method 2014-05-18 12:49:58 +08:00
c9s
518fad82f2 copy data to condition endpoints 2014-05-18 12:40:06 +08:00
c9s
e6c7d3e45e Add r3_tree_match_with_entry function to match with match_entry 2014-05-18 12:32:20 +08:00
c9s
58cd893dea insert conditions at endpoints 2014-05-18 12:28:12 +08:00
c9s
e0eca85cbc remove route_split_pattern function 2014-05-18 12:24:07 +08:00
c9s
7687dd3aef clear edge->route when create 2014-05-18 12:00:03 +08:00
c9s
a4481a8ecb Add route_cmp function to compare route 2014-05-18 11:59:30 +08:00
c9s
4efd1b9702 r3_tree_insert_pathn to r3_tree_insert_pathl 2014-05-18 11:13:44 +08:00
c9s
08a059465e Append one more argument to r3_tree_insert_pathn 2014-05-18 11:13:02 +08:00
c9s
64acfd8cd6 Rename route_ptr => route 2014-05-18 11:06:24 +08:00
c9s
5ca345d570 Rename route_info to route 2014-05-18 11:05:01 +08:00
c9s
eb3ef7df0f rename request_methods to request_method 2014-05-18 11:04:13 +08:00
c9s
b25a68eaac Add --enable-debug option + *i is unused. 2014-05-18 11:03:15 +08:00
c9s
9639174f73 Merge branch 'master' into feature/route-info
Conflicts:
	include/r3.h
	tests/bench_str.csv
2014-05-18 10:36:14 +08:00
c9s
2e7a3c2736 workable --enable-graphviz 2014-05-18 10:13:51 +08:00
c9s
6c651cb1ef Add lib_LIBRARIES option to Makefile.am 2014-05-18 09:32:14 +08:00
c9s
b56a52e1d8 Add --enable-graphviz option for graphviz:
Graphviz API is changed in 2014* version.
And the version on ubuntu 13.10  is 2013*
Which causes build fail.
2014-05-18 09:29:31 +08:00
c9s
607f209425 required dot version 2014-05-18 09:16:47 +08:00
c9s
02197595c9 Rename dl => offset for readiblity 2014-05-18 09:05:55 +08:00
c9s
c1d90dd138 performance improvement on plain string edge matching 2014-05-18 08:29:26 +08:00
c9s
b7d20ecc24 Add gvc_render and gvc_render tests 2014-05-18 08:15:32 +08:00
c9s
b7c4829c2b Fix node pattern re-assignment 2014-05-18 08:15:32 +08:00
c9s
06c3b95e6c Update Makefile.in 2014-05-18 08:15:32 +08:00
c9s
52aa221710 Add gvc.c 2014-05-18 08:15:32 +08:00
c9s
9bab1bd076 match_entry_createl 2014-05-17 23:54:18 +08:00
c9s
639dd1e0e6 intiialize route_info struct 2014-05-17 19:25:25 +08:00
c9s
d4ece86b36 check in Makefile.in 2014-05-17 16:02:15 +08:00
c9s
65d295b880 partially 2014-05-17 15:20:59 +08:00
c9s
ea057921c2 no strndup when truncating pattern 2014-05-17 15:20:28 +08:00
Pedro
4910382090 Update node.c
Fix
2014-05-17 15:16:52 +08:00
Pedro
6c0b3c3e90 Merge pull request #6 from CindyLinz/master
my_strdup / my_strndup  malloc smaller
2014-05-17 15:06:44 +08:00
Cindy Wang (CindyLinz)
1c9a42dd82 my_strdup / my_strndup malloc smaller 2014-05-17 13:01:33 +08:00
c9s
256cb8435a dump pattern if pcre compilation failed. 2014-05-17 08:11:22 +08:00
c9s
d30e58176c Adding AC_PROG_CC_STDC to configure.ac to support c99 2014-05-17 07:58:28 +08:00
c9s
0c6afd03b7 use HAVE_STR*DUP config to check function definitions 2014-05-17 07:26:47 +08:00
c9s
04e0d6724b Fix check with autotool 2014-05-17 07:14:09 +08:00
c9s
9de9602a42 Delete Makefile.in 2014-05-17 06:57:49 +08:00
Cindy Wang (CindyLinz)
ff0f6bb5b1 my_strdup / my_strndup size_t -> int 2014-05-17 06:50:05 +08:00
Cindy Wang (CindyLinz)
22718fd143 token.c include r3_str.h for my_strdup & my_strndup 2014-05-17 06:50:05 +08:00
Cindy Wang (CindyLinz)
8f6fd19806 self provided strndup & strdup 2014-05-17 06:50:05 +08:00
c9s
6dc025108e Checking .in files 2014-05-17 06:49:12 +08:00
c9s
fa2eca2e32 Add config.h 2014-05-17 06:44:32 +08:00
c9s
82175ba66d autotool checking 2014-05-17 06:37:30 +08:00
Cindy Wang (CindyLinz)
1f91b8ea35 my_strdup / my_strndup size_t -> int 2014-05-17 03:17:51 +08:00
Cindy Wang (CindyLinz)
823ed29161 token.c include r3_str.h for my_strdup & my_strndup 2014-05-17 01:02:14 +08:00
Cindy Wang (CindyLinz)
df4dbbe2a6 self provided strndup & strdup 2014-05-17 00:35:56 +08:00
c9s
84352aca85 use -O0 for alpha development 2014-05-16 22:49:05 +08:00
c9s
bee02242df Fix CFLAGS for std=99 2014-05-16 22:41:19 +08:00
c9s
8f3ac387f0 remove Judy 2014-05-16 22:05:23 +08:00
c9s
9c53003871 Refactoring match function 2014-05-16 21:02:02 +08:00
c9s
2381f54dc4 allocate ov space when compiling the tree 2014-05-16 20:58:30 +08:00
c9s
40e927a4f1 Add dynamic ov_count vector 2014-05-16 20:51:30 +08:00
c9s
168b12097d edge.c 2014-05-16 20:38:14 +08:00
c9s
b34aa75924 use shared linking and install rules 2014-05-16 20:30:31 +08:00
c9s
6b9c15febb File renaming 2014-05-16 20:22:25 +08:00
c9s
2a0e120a91 append captured tokens to match_entry 2014-05-16 19:12:01 +08:00
c9s
ebe4c008fb inline function optimization 2014-05-16 18:57:36 +08:00
c9s
046ec9e977 Add benchmark and bug fixes 2014-05-16 18:03:52 +08:00
c9s
0e488403a9 API rename & cleanup 2014-05-16 15:29:25 +08:00
c9s
f57ae07e4a more route tests 2014-05-16 14:36:48 +08:00
c9s
4380f7e63a rnode_match test 2014-05-16 14:24:00 +08:00
c9s
57dce698db pcre stuff 2014-05-16 14:05:51 +08:00
c9s
fe21914e00 include files 2014-05-16 12:33:59 +08:00
c9s
9ee066fa3f Fix slug branch problem 2014-05-16 00:00:19 +08:00
c9s
824ae8784e redge_branch function to branch the edge 2014-05-15 23:46:49 +08:00
c9s
9381ab943c branch at the correct position (avoid broken slug) 2014-05-15 23:03:23 +08:00
c9s
cd3e98465b build a really prefix tree 2014-05-15 22:57:13 +08:00
c9s
01a0b0da01 combine_pattern function 2014-05-15 21:17:30 +08:00
c9s
89eaad6006 Add slug_to_pcre pattern function 2014-05-15 20:38:07 +08:00
c9s
7326933065 supporting endpoint 2014-05-15 18:26:41 +08:00
c9s
2348387f3c more tests 2014-05-15 18:02:10 +08:00
c9s
f741395e5f test find edge 2014-05-15 13:39:50 +08:00
c9s
3989f2150f ltrim_slash and related test 2014-05-15 12:53:48 +08:00
c9s
c91c06ec3b Add token list tests 2014-05-15 12:47:14 +08:00
c9s
767dba6e86 Rename token_list to token_array 2014-05-15 12:21:45 +08:00
c9s
f8539fd950 Add token list struct 2014-05-15 11:52:45 +08:00
c9s
fec873b411 update testing framework with "Check" 2014-05-15 10:08:42 +08:00
c9s
8168861af1 cmake: include_subdirectory(src) and include_subdirectory(tests) 2014-05-15 00:47:52 +08:00