Log Message: |
On the authzperf branch: Implement support for generic / complex
wildcard patterns like "/foo*bar*baz/".
To do this efficiently requires normalized pattern paths, so we
add the normalization logic as described here:
https://wiki.apache.org/subversion/AuthzImprovements
* BRANCH-README
(TODO, DONE): The last pattern TODO is now DONE.
* subversion/include/svn_string.h
(svn_stringbuf_replace_all): Declare another stringbuf API function.
* subversion/libsvn_subr/string.c
(svn_stringbuf_replace_all): Implement it.
* subversion/libsvn_repos/authz.c
(node_pattern_t): Add a container of all odd / complex patterns.
No specific ordering on this one.
(insert_path): Finally add the "catch-all-other" case.
(normalize_wildcards): New pattern path normalization code.
(process_path_rule): Ensure properly normalized patterns.
(finalize_tree): Cover yet another set of sub-nodes.
(match_to_next_wildcard,
match_pattern,
add_complex_matches): New generic pattern matching logic.
(lookup): Handle yet another class of patterns.
|