Fix HTTP connections to IPv6 address literals.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 28 Mar 2016 22:36:57 +0000 (00:36 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 28 Mar 2016 22:36:57 +0000 (00:36 +0200)
httpinput.cpp

index 4980fc1..0695727 100644 (file)
@@ -328,6 +328,13 @@ void HTTPInput::do_work()
                                        log(WARNING, "[%s] Failed to parse URL '%s'", url.c_str(), url.c_str());
                                        break;
                                }
+
+                               // Remove the brackets around IPv6 address literals.
+                               // TODO: See if we can join this with the code in parse_ip_address(),
+                               // or maybe even more it into parse_url().
+                               if (!host.empty() && host[0] == '[' && host[host.size() - 1] == ']') {
+                                       host = host.substr(1, host.size() - 2);
+                               }
                        }
 
                        sock = lookup_and_connect(host, port);