uclient-http: fix Host: header for literal IPv6 addresses
authorMatthias Schiffer <mschiffer@universe-factory.net>
Tue, 5 Sep 2017 18:02:37 +0000 (20:02 +0200)
committerMatthias Schiffer <mschiffer@universe-factory.net>
Wed, 6 Sep 2017 13:37:56 +0000 (15:37 +0200)
commit24d6eded73dec427fc4a3a20cc73c94227f59c31
treea7988faf1e154dc0517537030f5995ed1ba8d416
parent83ce236dab867842cdba88a57db50aae0fd9a4ce
uclient-http: fix Host: header for literal IPv6 addresses

For literal IPv6 addresses, the host header must have the form

  Host: [...]

including the square brackets, as it may also contain a port. Some
webservers ignore the missing brackets, while others will return error 400.

IPv6 addresses are determined by searching for ':' characters in the host,
as neither IPv4 addresses nor DNS names can contain colons. An alternative
would be to add a flag to the uclient_url struct; but as this struct is
exposed in public headers, such a change could be considered an ABI change,
making a backport difficult.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Acked-by: Jo-Philipp Wich <jo@mein.io>
uclient-http.c