Welcome! Log In Create A New Profile

Advanced

[nginx] Upstream: detect port absence in fastcgi_pass with IP li...

Ruslan Ermilov
February 11, 2015 07:52AM
details: http://hg.nginx.org/nginx/rev/26c127bab5ef
branches:
changeset: 5977:26c127bab5ef
user: Ruslan Ermilov <ru@nginx.com>
date: Thu Jan 22 16:23:32 2015 +0300
description:
Upstream: detect port absence in fastcgi_pass with IP literal.

If fastcgi_pass (or any look-alike that doesn't imply a default
port) is specified as an IP literal (as opposed to a hostname),
port absence was not detected at configuration time and could
result in EADDRNOTAVAIL at run time.

Fixed this in such a way that configs like

http {
server {
location / {
fastcgi_pass 127.0.0.1;
}
}

upstream 127.0.0.1 {
server 10.0.0.1:12345;
}
}

still work. That is, port absence check is delayed until after
we make sure there's no explicit upstream with such a name.

diffstat:

src/http/ngx_http_upstream.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diffs (12 lines):

diff -r 814583aef808 -r 26c127bab5ef src/http/ngx_http_upstream.c
--- a/src/http/ngx_http_upstream.c Wed Feb 11 15:51:03 2015 +0300
+++ b/src/http/ngx_http_upstream.c Thu Jan 22 16:23:32 2015 +0300
@@ -5408,7 +5408,7 @@ ngx_http_upstream_add(ngx_conf_t *cf, ng
uscf->default_port = u->default_port;
uscf->no_port = u->no_port;

- if (u->naddrs == 1) {
+ if (u->naddrs == 1 && (u->port || u->family == AF_UNIX)) {
uscf->servers = ngx_array_create(cf->pool, 1,
sizeof(ngx_http_upstream_server_t));
if (uscf->servers == NULL) {

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Upstream: detect port absence in fastcgi_pass with IP li...

Ruslan Ermilov 507 February 11, 2015 07:52AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 116
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready