Upstream: SSL handshake timeouts.

Timeout may not be set on an upstream connection when we call
ngx_ssl_handshake() in ngx_http_upstream_ssl_init_connection(),
so make sure to arm it if it's not set.

Based on a patch by Yichun Zhang.
This commit is contained in:
Maxim Dounin 2014-07-28 18:30:14 +04:00
parent 7b24c53efe
commit 4b2f12a604

View File

@ -1393,6 +1393,11 @@ ngx_http_upstream_ssl_init_connection(ngx_http_request_t *r,
rc = ngx_ssl_handshake(c); rc = ngx_ssl_handshake(c);
if (rc == NGX_AGAIN) { if (rc == NGX_AGAIN) {
if (!c->write->timer_set) {
ngx_add_timer(c->write, u->conf->connect_timeout);
}
c->ssl->handler = ngx_http_upstream_ssl_handshake; c->ssl->handler = ngx_http_upstream_ssl_handshake;
return; return;
} }