libvmod-re:master commitshttps://code.uplex.de/uplex-varnish/libvmod-re/commits/master2023-11-05T15:30:07Zhttps://code.uplex.de/uplex-varnish/libvmod-re/commit/253cd88aa5b2deef09b971faf5a9df3757e471bdAdd missing VRT_handled() check to catch return from the callback sub2023-11-05T15:30:07ZNils Gorollnils.goroll@uplex.de
I wonder who has written the vmod.rst documentation clearly pointing out
that this needs to be done... :|
Ref Varnish-Cache ff18a3c5bf7cf02acaa5bc5672cc90c8bb805336https://code.uplex.de/uplex-varnish/libvmod-re/commit/e1b1752036cfa5fcfb2bb559bd2c32fbcf7f46a9Fix startoffset for buffer copy2023-11-05T15:17:03ZNils Gorollnils.goroll@uplex.de
When we have a partial match and no buffer, we copy all of ptr/len and
thus must not touch the startoffset.
We could also copy from startoffset, but that could break lookbehinds,
so don't.https://code.uplex.de/uplex-varnish/libvmod-re/commit/364f5062fd8060cb7a8876cd269728e385f312d5Keep vtc directories for failing tests2023-11-05T15:15:41ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/30e22878f4caed47d5264a5484febd4bd2d38dccSeems like we are prepared for UTF-82023-09-01T15:24:04ZNils Gorollnils.goroll@uplex.de
Patch best viewed with -bhttps://code.uplex.de/uplex-varnish/libvmod-re/commit/c5e9ef534b530446215507d916b3efcf97a376c2Polish debug output2023-07-20T14:20:47ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/1045a035f116ff939ed3f9f5a7df3150166ab74fAdd .foreach_body()2023-07-20T14:20:47ZNils Gorollnils.goroll@uplex.de
We can now iterate over bodies, calling a subroutine for each
match.https://code.uplex.de/uplex-varnish/libvmod-re/commit/321a5f0565b167165b59e27ebd4569be2c01bf1eSave offset for subsequent invocation to reip_iter2023-07-20T13:42:24ZNils Gorollnils.goroll@uplex.de
Previously, we would only look for the first ever match.
To support multiple matches, we now save the start offset
relative to the ptr argument for the next invocation.https://code.uplex.de/uplex-varnish/libvmod-re/commit/b64ab317e30c0c6ce099c94a8c48dbe7e81ee097Save ultimate match result as either the lowest error ...2023-07-20T13:42:18ZNils Gorollnils.goroll@uplex.de
... or the highest matchhttps://code.uplex.de/uplex-varnish/libvmod-re/commit/38fd9c23a36ff0286eccd4f7355d5d126a1322c7Refactor vmod_regex_match_body for reuse2023-07-20T13:39:07ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/847df22b1a5cc7801fc383408e8362ff4f405010Refactor match_iter_f: prepare for reuse2023-07-20T13:39:07ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/91464034c8e28fb94633a7a94335b5daa4a8b3f3Add .foreach()2023-07-20T13:35:50ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/e31881e112d80cc9ab689cb09a58ffeba4a288cbgc noop statement2023-07-20T13:34:39ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/bd8bc127214c8baa928f3d9be731f1b765be2f47Update generated README.rst2023-07-20T10:36:22ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/246a60944cc5d589594bc4256509af755a20c35cFor body matches, use temporary space on heap rather than workspace2023-07-20T10:35:00ZNils Gorollnils.goroll@uplex.de
The main reason is an upcoming improvement which needs workspace.
But also using workspace here probably does not come with too relevant
an advantage, because regular expression matching and copying are
already expensive, and the need to copy should be the exception.https://code.uplex.de/uplex-varnish/libvmod-re/commit/7668930ab6d5f5983e0274c7f2995c678c3c572bRefactor body match iterator from double pointer to extent (ptr+len)2023-07-20T10:35:00ZNils Gorollnils.goroll@uplex.de
This is in preparation of an upcoming refactor to heap space.https://code.uplex.de/uplex-varnish/libvmod-re/commit/5e4bf31103ad1cabb3083f5cabea400bd2bb1587Make init_task idempotent2023-07-19T15:51:04ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/83480b401e4ed2ad58368d3b3d8427940cf83281whitespace2023-07-19T15:26:50ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/3d96a5e0d39bf062b5b5ed9814d53b831e464472Compatibility with pre 7.32023-06-07T14:16:55ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/1084d85a533b1abf636975f7f7cabc61d4a258ddMention filters in changelog2023-06-05T09:41:53ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/c963694419f0836122d9ebd59846507f58b94a5bMerge branch 'filter' into 'master'2023-06-01T12:33:29ZGeoff Simmonsgeoff@uplex.de
Add filters: regex objects to perform substitutions on bodies
See merge request <a href="/uplex-varnish/libvmod-re/merge_requests/3" data-original="uplex-varnish/libvmod-re!3" data-link="false" data-link-reference="false" data-project="8" data-merge-request="42" data-reference-type="merge_request" data-container="body" data-placement="bottom" title="Add filters: regex objects to perform substitutions on bodies" class="gfm gfm-merge_request has-tooltip">!3</a>https://code.uplex.de/uplex-varnish/libvmod-re/commit/a25e5b63a0674e4c5d418b7f0b31c651b8aac3fdUpdate README2023-05-29T14:12:23ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/f8fb9d5c19d9260f85e6074dc1ed544e9d33ef95Add filters: regex objects to perform substitutions on bodies2023-05-29T14:12:23ZNils Gorollnils.goroll@uplex.de
If the optional ``asfilter`` parameter to ``re.regex()`` is true, the
vmod registers itself as a Varnish Fetch Processor (VFP) for use in
`beresp.filters` and as a Varnish Delivery Processor (VDP) for use in
`resp.filters`. In this setup, the `xregex.substitute_match()` and
`xregex.substitute_all()` methods can be used to define replacements
for matches on the body.
Example:
sub vcl_init {
new reiher = re.regex("r(ei)h(er)", asfilter = true);
}
sub vcl_deliver {
unset req.http.Accept-Encoding;
set resp.filters += " reiher";
reiher.substitute_match(1, "czapla");
reiher.substitute_match(2, "\1\2");
reiher.substitute_match(0, "heron");
}https://code.uplex.de/uplex-varnish/libvmod-re/commit/2c683cd46e7ad025b84713749d43b1adffabe7afSilence Flexelint2023-05-28T19:55:14ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/815378e90063aa73978e4cc94d93b99aedd709b7It's about time for a changelog2023-05-28T19:50:25ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/aba2e5665d88e7478d0ccff1615d46a0c29cffa9Fix .match_body() for cached bereq.body2023-05-28T19:28:47ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/446a5900a6f545e37f85412ea90d20fe8e0b8f5cFix nit in RST, update README.rst2023-05-02T12:14:43ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/5eeeab8acea6c7706c3d89dced2657088015504eRemove invalid std.cache_req_body() call2023-05-02T12:13:00ZNils Gorollnils.goroll@uplex.de
Ref varnish-cache 478e310a7d2c168e1c361d6f34291177cbc2a889https://code.uplex.de/uplex-varnish/libvmod-re/commit/d98ef97e223a1778746b3ae45c7a9a18a3a86eebDoc nitpick: too many commas2023-04-05T19:59:51ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/d796f02e8625cd13d629abc63bd544fb8c38a2cbUpdate README2023-04-05T19:54:38ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/9b531d22f9e5c1781cc1a0ce1d0ed585f7e2e56eImprove match_body documentation2023-04-05T19:54:04ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/9aa5e6cf46964c0dbf75e83f3b863c6ed59083f2More Flexelinting2023-04-05T14:46:10ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/9b174f9abdacc1da7eb681f3cb14a94ac8b75f6cFlexelinting2023-04-05T14:38:45ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/6175eac431a8a314d207236c38d801446e9b13d5fix: while we see partial matches, we can not yet enable NOTBOL2023-04-04T17:30:40ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/929cf112d47cfa1ebc75d9cbf5b6a79b910d1217Link to varnish-cache documentation for regsub(all)?2023-04-01T19:31:59ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/b744681c3102ae638c1339e9e6d0617e68eca33eMention install requirements2023-02-28T13:44:36ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/0fcfae78982bb76cfb690a23210178824456b720Fix previous: if COPYING is removed, it should be from the Makefile and rpm2022-12-08T13:03:48ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/0969beb82e3deb64d634b3b8b0bba4c83a72d42cStandardize LICENSE2022-12-01T15:24:32ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/c56b2decef42c097ddc452c21cab2c1d11af7f24Support missing pcre2_set_depth_limit() function2022-11-11T10:49:50ZNils Gorollnils.goroll@uplex.de
Code taken from varnish-cachehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/db254d19a7a438132bb04bf77eb97fd9d0287057Improve (?) error message2022-11-08T12:54:42ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvmod-re/commit/1549f2a6076f9e92d36da27fa7f04d20d4d00c5dgc unused variables2022-11-08T12:54:42ZNils Gorollnils.goroll@uplex.de