summaryrefslogtreecommitdiff
path: root/src/http
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2007-03-19 13:44:42 +0000
committerJonathan Kolb <jon@b0g.us>2007-03-19 13:44:42 +0000
commit310da76bdd131de0ea49c3aba2d54858d34273b9 (patch)
treecd53a138d2a958b4e2e0bc4e18726c879ac5d335 /src/http
parentbfec3c49c20668e1e4058a7bc94e76ae27f73e65 (diff)
downloadnginx-310da76bdd131de0ea49c3aba2d54858d34273b9.tar.gz
Changes with nginx 0.5.15 19 Mar 2007v0.5.15
*) Feature: the mail proxy supports authenticated SMTP proxying and the "smtp_auth", "smtp_capablities", and "xclient" directives. Thanks to Anton Yuzhaninov and Maxim Dounin. *) Change: the "imap" and "auth" directives were renamed to the "mail" and "pop3_auth" directives. *) Bugfix: a segmentation fault occurred in worker process if the CRAM-MD5 authentication method was used and the APOP method was disabled. *) Bugfix: if the "starttls only" directive was used in POP3 protocol, then nginx allowed authentication without switching to the SSL mode. *) Bugfix: worker processes did not exit after reconfiguration and did not rotate logs if the eventport method was used. *) Bugfix: a worker process may got caught in an endless loop, if the "ip_hash" directive was used. *) Bugfix: now nginx does not log some alerts if eventport or /dev/poll methods are used.
Diffstat (limited to 'src/http')
-rw-r--r--src/http/modules/ngx_http_upstream_ip_hash_module.c5
-rw-r--r--src/http/modules/perl/nginx.pm2
-rw-r--r--src/http/ngx_http_request.c6
3 files changed, 8 insertions, 5 deletions
diff --git a/src/http/modules/ngx_http_upstream_ip_hash_module.c b/src/http/modules/ngx_http_upstream_ip_hash_module.c
index e0cf8afc1..87e5ac4d2 100644
--- a/src/http/modules/ngx_http_upstream_ip_hash_module.c
+++ b/src/http/modules/ngx_http_upstream_ip_hash_module.c
@@ -179,11 +179,10 @@ ngx_http_upstream_get_ip_hash_peer(ngx_peer_connection_t *pc, void *data)
peer->fails = 0;
break;
}
-
- } else {
- iphp->rrp.tried[n] |= m;
}
+ iphp->rrp.tried[n] |= m;
+
/* ngx_unlock_mutex(iphp->rrp.peers->mutex); */
pc->tries--;
diff --git a/src/http/modules/perl/nginx.pm b/src/http/modules/perl/nginx.pm
index aa50bafe1..eea114ce9 100644
--- a/src/http/modules/perl/nginx.pm
+++ b/src/http/modules/perl/nginx.pm
@@ -47,7 +47,7 @@ our @EXPORT = qw(
HTTP_INSUFFICIENT_STORAGE
);
-our $VERSION = '0.5.14';
+our $VERSION = '0.5.15';
require XSLoader;
XSLoader::load('nginx', $VERSION);
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index 96286597b..afc1d644d 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -2032,6 +2032,8 @@ ngx_http_set_keepalive(ngx_http_request_t *r)
r->http_state = NGX_HTTP_KEEPALIVE_STATE;
#endif
+ c->idle = 1;
+
if (rev->ready) {
ngx_http_keepalive_handler(rev);
}
@@ -2050,7 +2052,7 @@ ngx_http_keepalive_handler(ngx_event_t *rev)
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0, "http keepalive handler");
- if (rev->timedout) {
+ if (rev->timedout || c->close) {
ngx_http_close_connection(c);
return;
}
@@ -2139,6 +2141,8 @@ ngx_http_keepalive_handler(ngx_event_t *rev)
c->log->handler = ngx_http_log_error;
c->log->action = "reading client request line";
+ c->idle = 0;
+
ngx_http_init_request(rev);
}