Applied, thanks!
On Fri, Jan 6, 2017 at 10:03 PM, Laurent Bercot <[email protected]> wrote: > When httpd proxies a request to another server, it first creates > an AF_INET socket, then resolves the server name to a sockaddr, > then connects to it. This fails if the server name resolves to > an IPv6 address. > This patch ensures that the socket is created with the correct > address family (AF_INET6 if the server resolves to an IPv6 address > and AF_INET otherwise). > --- > networking/httpd.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/networking/httpd.c b/networking/httpd.c > index d301d598d..cfcd2a06e 100644 > --- a/networking/httpd.c > +++ b/networking/httpd.c > @@ -2396,12 +2396,12 @@ static void handle_incoming_and_exit(const > len_and_sockaddr *fromAddr) > int proxy_fd; > len_and_sockaddr *lsa; > > - proxy_fd = socket(AF_INET, SOCK_STREAM, 0); > - if (proxy_fd < 0) > - send_headers_and_exit(HTTP_INTERNAL_SERVER_ERROR); > lsa = host2sockaddr(proxy_entry->host_port, 80); > if (lsa == NULL) > send_headers_and_exit(HTTP_INTERNAL_SERVER_ERROR); > + proxy_fd = socket(lsa->u.sa.sa_family, SOCK_STREAM, 0); > + if (proxy_fd < 0) > + send_headers_and_exit(HTTP_INTERNAL_SERVER_ERROR); > if (connect(proxy_fd, &lsa->u.sa, lsa->len) < 0) > send_headers_and_exit(HTTP_INTERNAL_SERVER_ERROR); > fdprintf(proxy_fd, "%s %s%s%s%s HTTP/%c.%c\r\n", > -- > 2.11.0.rc2 > > _______________________________________________ > busybox mailing list > [email protected] > http://lists.busybox.net/mailman/listinfo/busybox _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
