A more general substitution filter module
Weibin Yao
lists at ruby-forum.com
Mon Feb 23 13:20:50 MSK 2009
Two bug fixed in some compiler, this is the patch:
Index: ngx_http_subs_filter_module.c
===================================================================
--- ngx_http_subs_filter_module.c
+++ ngx_http_subs_filter_module.c
@@ -21,7 +21,7 @@
ngx_str_t match;
#if (NGX_PCRE)
ngx_regex_t *match_regex;
- ngx_int_t *captures;
+ int *captures;
ngx_int_t ncaptures;
#endif
@@ -710,8 +710,8 @@
}
if (pair->captures == NULL || pair->ncaptures == 0) {
pair->ncaptures = OVECCOUNT;
- pair->captures =ngx_palloc(r->pool,
- OVECCOUNT * sizeof(ngx_int_t));
+ pair->captures = (int *)(ngx_int_t)ngx_palloc(r->pool,
+ OVECCOUNT * sizeof(int));
}
while (1) {
@@ -726,7 +726,7 @@
break;
rc = ngx_regex_exec(pair->match_regex, &line,
- pair->captures, pair->ncaptures);
+ (int *)pair->captures, pair->ncaptures);
if (rc == NGX_REGEX_NO_MATCHED)
break;
else if(rc < 0) {
@@ -1053,7 +1053,7 @@
break;
}
- ngx_log_debug1(NGX_LOG_DEBUG_HTTP, log, 0,
+ ngx_log_debug2(NGX_LOG_DEBUG_HTTP, log, 0,
"Left bytes:%d, p:%p ", bytes, p);
/*There is nothing left in this buffer.*/
if (cl->buf->last - p <= 0)
Weibin Yao wrote:
> nginx_substitutions_filter
> -------
>
> nginx_substitutions_filter is a filter module which can do both regular
> expression and fixed string substitutions on response bodies. This
> module is
> quite different from the Nginx's Substitution Module. It scans the
> output
> chains buffer and matches string line by line, just like Apache's
> mod_substitute.
>
> To install, compile nginx with the following option:
>
> --add-module=/path/to/this/directory
>
> EXAMPLE
>
> subs_filter_types text/html text/css text/xml;
> subs_filter http://st(\\d*).example.com http://s.example.com ir;
> subs_filter http://a.example.com http://s.example.com;
>
> DIRECTIVES
>
> subs_filter_types
>
> syntax: subs_filter_types mime-type [mime-type ...]
> default: subs_filter_types text/html
> context: http, server, location
> description: subs_filter_types is used to specify which content
> types should
> be checked for subs_filter. The default is only text/html.
>
>
> subs_filter
>
> syntax: subs_filter source_str destination_str [gior]
> default: none
> context: http, server, location
> description: subs_filter allows replacing source stringe(regular
> expression
> or fixed) in the nginx response with destination string.
> Substitution
> text may contain variables. More than one substitution rules per
> location is supported.
> The meaning of the third flags are:
> g(default): Replace all the match strings.
> i: Perform a case-insensitive match.
> o: Just replace the first one.
> r: The pattern is treated as a regular expression, default
> is fixed
> string.
>
> Questions/patches may be directed to Weibin Yao, yaoweibin at gmail.com.
--
Posted via http://www.ruby-forum.com/.
More information about the nginx
mailing list