Mercurial > hg > nginx
comparison src/core/ngx_inet.c @ 5005:c9059bd5445b
Fixed "proxy_pass" with IP address and no port (ticket #276).
Upstreams created by "proxy_pass" with IP address and no port were
broken in 1.3.10, by not initializing port in u->sockaddr.
API change: ngx_parse_url() was modified to always initialize port
(in u->sockaddr and in u->port), even for the u->no_resolve case;
ngx_http_upstream() and ngx_http_upstream_add() were adopted.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Thu, 10 Jan 2013 12:58:55 +0000 |
parents | 2677c561127b |
children | 05ba5bce31e0 |
comparison
equal
deleted
inserted
replaced
5004:764833756dcd | 5005:c9059bd5445b |
---|---|
705 } | 705 } |
706 } | 706 } |
707 } | 707 } |
708 | 708 |
709 u->no_port = 1; | 709 u->no_port = 1; |
710 | 710 u->port = u->default_port; |
711 if (!u->no_resolve) { | 711 sin->sin_port = htons(u->default_port); |
712 u->port = u->default_port; | |
713 sin->sin_port = htons(u->default_port); | |
714 } | |
715 } | 712 } |
716 | 713 |
717 len = last - host; | 714 len = last - host; |
718 | 715 |
719 if (len == 0) { | 716 if (len == 0) { |
866 u->port_text.len = len; | 863 u->port_text.len = len; |
867 u->port_text.data = port; | 864 u->port_text.data = port; |
868 | 865 |
869 } else { | 866 } else { |
870 u->no_port = 1; | 867 u->no_port = 1; |
871 | 868 u->port = u->default_port; |
872 if (!u->no_resolve) { | 869 sin6->sin6_port = htons(u->default_port); |
873 u->port = u->default_port; | |
874 sin6->sin6_port = htons(u->default_port); | |
875 } | |
876 } | 870 } |
877 } | 871 } |
878 | 872 |
879 len = p - host; | 873 len = p - host; |
880 | 874 |