summaryrefslogtreecommitdiffhomepage
path: root/src/http/modules
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2007-10-29 14:52:51 +0000
committerIgor Sysoev <igor@sysoev.ru>2007-10-29 14:52:51 +0000
commitd7aa2115b8f7ae138704d1e8b3690b0925a544de (patch)
tree9900a5c84e895802abefbda819bf3162dc33ac05 /src/http/modules
parent9f1d27779dc0077239976028337d5b9f4e6d88aa (diff)
downloadnginx-d7aa2115b8f7ae138704d1e8b3690b0925a544de.tar.gz
nginx-d7aa2115b8f7ae138704d1e8b3690b0925a544de.tar.bz2
r1542, r1543, r1544, r1549, r1550, r1551, r1555 merge:
*) ngx_strstrn() and ngx_strcasestrn() *) fix memcached END test
Diffstat (limited to 'src/http/modules')
-rw-r--r--src/http/modules/ngx_http_gzip_filter_module.c4
-rw-r--r--src/http/modules/ngx_http_memcached_module.c20
2 files changed, 13 insertions, 11 deletions
diff --git a/src/http/modules/ngx_http_gzip_filter_module.c b/src/http/modules/ngx_http_gzip_filter_module.c
index 7210dd6fc..c27823004 100644
--- a/src/http/modules/ngx_http_gzip_filter_module.c
+++ b/src/http/modules/ngx_http_gzip_filter_module.c
@@ -279,7 +279,9 @@ ngx_http_gzip_header_filter(ngx_http_request_t *r)
|| r->headers_in.accept_encoding == NULL
|| (r->headers_out.content_length_n != -1
&& r->headers_out.content_length_n < conf->min_length)
- || ngx_strstr(r->headers_in.accept_encoding->value.data, "gzip") == NULL
+ || ngx_strcasestrn(r->headers_in.accept_encoding->value.data,
+ "gzip", 4 - 1)
+ == NULL
)
{
return ngx_http_next_header_filter(r);
diff --git a/src/http/modules/ngx_http_memcached_module.c b/src/http/modules/ngx_http_memcached_module.c
index f7205418c..9ec534c84 100644
--- a/src/http/modules/ngx_http_memcached_module.c
+++ b/src/http/modules/ngx_http_memcached_module.c
@@ -425,16 +425,16 @@ ngx_http_memcached_filter(void *data, ssize_t bytes)
if (u->length == ctx->rest) {
if (ngx_strncmp(b->last,
- ngx_http_memcached_end + NGX_HTTP_MEMCACHED_END
- - ctx->rest,
- bytes) != 0)
+ ngx_http_memcached_end + NGX_HTTP_MEMCACHED_END - ctx->rest,
+ ctx->rest)
+ != 0)
{
ngx_log_error(NGX_LOG_ERR, ctx->request->connection->log, 0,
"memcached sent invalid trailer");
}
- u->length -= bytes;
- ctx->rest -= bytes;
+ u->length = 0;
+ ctx->rest = 0;
return NGX_OK;
}
@@ -453,7 +453,8 @@ ngx_http_memcached_filter(void *data, ssize_t bytes)
*ll = cl;
- cl->buf->pos = b->last;
+ last = b->last;
+ cl->buf->pos = last;
b->last += bytes;
cl->buf->last = b->last;
@@ -461,20 +462,19 @@ ngx_http_memcached_filter(void *data, ssize_t bytes)
"memcached filter bytes:%z size:%z length:%z rest:%z",
bytes, b->last - b->pos, u->length, ctx->rest);
- if (b->last - b->pos <= (ssize_t) (u->length - NGX_HTTP_MEMCACHED_END)) {
+ if (bytes <= (ssize_t) (u->length - NGX_HTTP_MEMCACHED_END)) {
u->length -= bytes;
return NGX_OK;
}
-
- last = b->pos + u->length - NGX_HTTP_MEMCACHED_END;
+ last += u->length - NGX_HTTP_MEMCACHED_END;
if (ngx_strncmp(last, ngx_http_memcached_end, b->last - last) != 0) {
ngx_log_error(NGX_LOG_ERR, ctx->request->connection->log, 0,
"memcached sent invalid trailer");
}
- ctx->rest = u->length - (b->last - b->pos);
+ ctx->rest -= b->last - last;
b->last = last;
cl->buf->last = last;
u->length = ctx->rest;