aboutsummaryrefslogtreecommitdiff
path: root/src/http/modules/ngx_http_memcached_module.c
Commit message (Collapse)AuthorAge
* All known output headers can be linked lists now.Maxim Dounin2022-05-30
| | | | | | | | The h->next pointer properly provided as NULL in all cases where known output headers are added. Note that there are 3rd party modules which might not do this, and it might be risky to rely on this for arbitrary headers.
* Memcached: protect from too long responses.Maxim Dounin2020-07-06
| | | | | | | | | | | If a memcached response was followed by a correct trailer, and then the NUL character followed by some extra data - this was accepted by the trailer checking code. This in turn resulted in ctx->rest underflow and caused negative size buffer on the next reading from the upstream, followed by the "negative size buf in writer" alert. Fix is to always check for too long responses, so a correct trailer cannot be followed by extra data.
* Upstream: proxy_socket_keepalive and friends.Vladimir Homutov2018-10-03
| | | | | The directives enable the use of the SO_KEEPALIVE option on upstream connections. By default, the value is left unchanged.
* Fixed invalid access to location defined as an empty string.Ruslan Ermilov2018-07-17
|
* Upstream: fixed comments after 13f8dec720b5.Ruslan Ermilov2018-03-19
| | | | | | The fields "uri", "location", and "url" from ngx_http_upstream_conf_t moved to ngx_http_proxy_loc_conf_t and ngx_http_proxy_vars_t, reflect this change in create_loc_conf comments.
* Upstream: the "transparent" parameter of proxy_bind and friends.Roman Arutyunyan2015-12-18
| | | | | | | | | | | This parameter lets binding the proxy connection to a non-local address. Upstream will see the connection as coming from that address. When used with $remote_addr, upstream will accept the connection from real client address. Example: proxy_bind $remote_addr transparent;
* Fixed logging.Sergey Kandaurov2016-03-31
|
* Memcached: enabled ranges.Martin Mlynář2015-04-21
|
* Upstream: limited next_upstream time and tries (ticket #544).Roman Arutyunyan2014-09-12
| | | | | | | The new directives {proxy,fastcgi,scgi,uwsgi,memcached}_next_upstream_tries and {proxy,fastcgi,scgi,uwsgi,memcached}_next_upstream_timeout limit the number of upstreams tried and the maximum time spent for these tries when searching for a valid upstream.
* Style: use specified macro instead of magic-number.Tatsuhiko Kubo2014-08-06
|
* Style: use ngx_str_set().Tatsuhiko Kubo2014-07-09
|
* Win32: Borland C compatibility fixes.Maxim Dounin2013-09-04
| | | | | | | | | | Several false positive warnings silenced, notably W8012 "Comparing signed and unsigned" (due to u_short values promoted to int), and W8072 "Suspicious pointer arithmetic" (due to large type values added to pointers). With this patch, it's now again possible to compile nginx using bcc32, with options we normally compile on win32 minus ipv6 and ssl.
* Upstream: u->length now defaults to -1 (API change).Maxim Dounin2013-07-25
| | | | | | | | That is, by default we assume that response end is signalled by a connection close. This seems to be better default, and in line with u->pipe->length behaviour. Memcached module was modified accordingly.
* Memcached: stricten header validation.Ruslan Ermilov2013-05-23
| | | | | | | | | | | | | | An invalid memcached reply that started with '\n' could cause segmentation fault. An invalid memcached reply "VALUE / 0 2\r?ok\r\nEND\r\n" was considered as a valid response. In addition, if memcached reports that the key was not found, set u->headers_in.content_length_n to 0. This ensures that ngx_http_memcached_filter() will not be called while previous code relied on always intercepting 404. Initialization of ctx->rest was moved to where it belongs.
* Fixed and improved the "*_bind" directives of proxying modules.Ruslan Ermilov2013-01-16
| | | | | | | The "proxy_bind", "fastcgi_bind", "uwsgi_bind", "scgi_bind" and "memcached_bind" directives are now inherited; inherited value can be reset by the "off" parameter. Duplicate directives are now detected. Parameter value can now contain variables.
* Memcached: memcached_gzip_flag directive.Maxim Dounin2012-09-10
| | | | | | | | | | This directive allows to test desired flag as returned by memcached and sets Content-Encoding to gzip if one found. This is reimplementation of patch by Tomash Brechko as available on http://openhack.ru/. It should be a bit more correct though (at least I think so). In particular, it doesn't try to detect if we are able to gunzip data, but instead just sets correct Content-Encoding.
* Fixed spelling in single-line comments.Ruslan Ermilov2012-02-28
|
* Copyright updated.Maxim Konovalov2012-01-18
|
* Keepalive support in memcached.Maxim Dounin2011-09-15
|
* Upstream: r->upstream->length type change to off_t.Maxim Dounin2011-09-15
| | | | | | | | | Previous use of size_t may cause wierd effects on 32bit platforms with certain big responses transferred in unbuffered mode. Nuke "if (size > u->length)" check as it's not usefull anyway (preread body data isn't subject to this check) and now requires additional check for u->length being positive.
* Upstream: content_length_n API change.Maxim Dounin2011-09-15
| | | | | | | We no longer use r->headers_out.content_length_n as a primary source of backend's response length. Instead we parse response length to u->headers_in.content_length_n and copy to r->headers_out.content_length_n when needed.
* delete warnings of proxy_upstream_max_fails, proxy_upstream_fail_timeout,Igor Sysoev2010-05-20
| | | | | | fastcgi_upstream_max_fails, fastcgi_upstream_fail_timeout, memcached_upstream_max_fails, and memcached_upstream_fail_timeout directives obsolete since 0.5.0 version
* ngx_str_set() and ngx_str_null()Igor Sysoev2010-05-14
|
* revert partially r1555 and fix the error "memcached sent invalid trailer"Igor Sysoev2010-04-01
|
* fix typoIgor Sysoev2009-12-23
|
* proxy_bind, fastcgi_bind, and memcached_bindIgor Sysoev2009-11-02
|
* fix request counter for memcached, introduced in r3050Igor Sysoev2009-08-29
|
* ngx_http_upstream_create() to cleanup the previous upstream afterIgor Sysoev2009-07-27
| | | | internal redirect
* return NULL instead of NGX_CONF_ERROR on a create conf failureIgor Sysoev2009-06-02
|
* change variable nameIgor Sysoev2008-12-10
|
* delete surplus upstream.schema fieldIgor Sysoev2008-12-10
|
* remove unused #include'sIgor Sysoev2008-09-05
|
* fix memory leak in long-lived non buffered connectionsIgor Sysoev2008-03-03
|
* allow memached_pass inside "if" blockIgor Sysoev2007-12-27
|
* inherit $memached_key index and memcached_pass upstream inside "if" blockIgor Sysoev2007-12-27
|
* proxy_pass variables supportIgor Sysoev2007-11-27
|
* memcached did not set $upstream_response_timeIgor Sysoev2007-10-15
|
* two commits those go together by mistakeIgor Sysoev2007-10-01
| | | | | *) fix gzip broken in r1544 *) fix memcached END test
* style fixIgor Sysoev2007-09-29
|
* omit unnecessary conditionsIgor Sysoev2007-08-07
|
* rename ngx_http_discard_body() to ngx_http_discard_request_body()Igor Sysoev2007-08-06
|
* escape space, etc in $memcached_keyIgor Sysoev2007-07-22
|
* omit unnecessary codeIgor Sysoev2007-07-22
|
* namespace may be set via $memcached_keyIgor Sysoev2007-06-07
|
* eliminate the useless space symbolIgor Sysoev2007-01-29
|
* $memcached_keyIgor Sysoev2007-01-25
|
* rewritten upstreamIgor Sysoev2006-12-12
|
* fix fastcgi and memcached upstreamsIgor Sysoev2006-12-11
|
* upstream choice modulesIgor Sysoev2006-12-04
|
* style fix: remove trailing spacesIgor Sysoev2006-10-25
|