{
int *cap;
u_char *p;
+ size_t len;
ngx_uint_t n;
ngx_http_request_t *r;
ngx_http_script_copy_capture_code_t *code;
if (n < r->ncaptures) {
cap = r->captures;
+ len = cap[n + 1] - cap[n];
if ((e->is_args || e->quote)
&& (e->request->quoted_uri || e->request->plus_in_uri))
{
- p = r->captures_data;
+ p = r->captures_data + cap[n];
+
+ return len + 2 * ngx_escape_uri(NULL, p, len, NGX_ESCAPE_ARGS);
- return cap[n + 1] - cap[n]
- + 2 * ngx_escape_uri(NULL, &p[cap[n]], cap[n + 1] - cap[n],
- NGX_ESCAPE_ARGS);
} else {
- return cap[n + 1] - cap[n];
+ return len;
}
}
{
int *cap;
u_char *p, *pos;
+ size_t len;
ngx_uint_t n;
ngx_http_request_t *r;
ngx_http_script_copy_capture_code_t *code;
if (n < r->ncaptures) {
cap = r->captures;
- p = r->captures_data;
+ len = cap[n + 1] - cap[n];
+ p = r->captures_data + cap[n];
if ((e->is_args || e->quote)
&& (e->request->quoted_uri || e->request->plus_in_uri))
{
- e->pos = (u_char *) ngx_escape_uri(pos, &p[cap[n]],
- cap[n + 1] - cap[n],
- NGX_ESCAPE_ARGS);
+ e->pos = (u_char *) ngx_escape_uri(pos, p, len, NGX_ESCAPE_ARGS);
+
} else {
- e->pos = ngx_copy(pos, &p[cap[n]], cap[n + 1] - cap[n]);
+ e->pos = ngx_copy(pos, p, len);
}
}
ngx_stream_script_copy_capture_len_code(ngx_stream_script_engine_t *e)
{
int *cap;
+ size_t len;
ngx_uint_t n;
ngx_stream_session_t *s;
ngx_stream_script_copy_capture_code_t *code;
if (n < s->ncaptures) {
cap = s->captures;
- return cap[n + 1] - cap[n];
+ len = cap[n + 1] - cap[n];
+ return len;
}
return 0;
{
int *cap;
u_char *p, *pos;
+ size_t len;
ngx_uint_t n;
ngx_stream_session_t *s;
ngx_stream_script_copy_capture_code_t *code;
if (n < s->ncaptures) {
cap = s->captures;
- p = s->captures_data;
- e->pos = ngx_copy(pos, &p[cap[n]], cap[n + 1] - cap[n]);
+ len = cap[n + 1] - cap[n];
+ p = s->captures_data + cap[n];
+ e->pos = ngx_copy(pos, p, len);
}
ngx_log_debug2(NGX_LOG_DEBUG_STREAM, e->session->connection->log, 0,