diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2007-10-29 14:52:51 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2007-10-29 14:52:51 +0000 |
| commit | d7aa2115b8f7ae138704d1e8b3690b0925a544de (patch) | |
| tree | 9900a5c84e895802abefbda819bf3162dc33ac05 /src/http/modules/ngx_http_memcached_module.c | |
| parent | 9f1d27779dc0077239976028337d5b9f4e6d88aa (diff) | |
| download | nginx-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/ngx_http_memcached_module.c')
| -rw-r--r-- | src/http/modules/ngx_http_memcached_module.c | 20 |
1 files changed, 10 insertions, 10 deletions
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; |
