r1556, r1558 merge:
sub_filter fixes: *) fix empty string replacement in sub_filter *) add sub_filter parser fix similar to r1261 in SSI parser *) fix case when pattern is split between two buffers: it had been fixed in SSI parser long ago
This commit is contained in:
parent
b2f5beaa06
commit
2163a4a058
1 changed files with 13 additions and 3 deletions
|
@ -369,9 +369,14 @@ ngx_http_sub_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
|
|||
}
|
||||
}
|
||||
|
||||
b->memory = 1;
|
||||
b->pos = ctx->sub.data;
|
||||
b->last = ctx->sub.data + ctx->sub.len;
|
||||
if (ctx->sub.len) {
|
||||
b->memory = 1;
|
||||
b->pos = ctx->sub.data;
|
||||
b->last = ctx->sub.data + ctx->sub.len;
|
||||
|
||||
} else {
|
||||
b->sync = 1;
|
||||
}
|
||||
|
||||
cl->buf = b;
|
||||
cl->next = NULL;
|
||||
|
@ -557,6 +562,7 @@ ngx_http_sub_parse(ngx_http_request_t *r, ngx_http_sub_ctx_t *ctx)
|
|||
ch = ngx_tolower(ch);
|
||||
}
|
||||
|
||||
ctx->state = state;
|
||||
ctx->pos = p;
|
||||
ctx->looked = looked;
|
||||
ctx->copy_end = p;
|
||||
|
@ -578,6 +584,10 @@ ngx_http_sub_parse(ngx_http_request_t *r, ngx_http_sub_ctx_t *ctx)
|
|||
looked++;
|
||||
|
||||
if (looked == ctx->match.len) {
|
||||
if ((size_t) (p - ctx->pos) < looked) {
|
||||
ctx->saved = 0;
|
||||
}
|
||||
|
||||
ctx->state = sub_start_state;
|
||||
ctx->pos = p + 1;
|
||||
ctx->looked = looked;
|
||||
|
|
Loading…
Reference in a new issue