[MacPorts] #67186: Set Host header when invoking curl
MacPorts
noreply at macports.org
Mon Apr 3 01:21:19 UTC 2023
#67186: Set Host header when invoking curl
------------------------+-----------------------------
Reporter: ryandesign | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone: MacPorts Future
Component: base | Version: 2.8.1
Keywords: | Port:
------------------------+-----------------------------
curl versions from 7.37.0 (2014) up to but not including 7.82.0 (2022)
fail to handle the situation where a web site's canonical hostname ends
with a period. See https://github.com/curl/curl/issues/8290. Here is an
example of the problem:
{{{
% /usr/bin/curl --version
curl 7.79.1 (x86_64-apple-darwin21.0) libcurl/7.79.1 (SecureTransport)
LibreSSL/3.3.5 zlib/1.2.11 nghttp2/1.45.1
Release-Date: 2021-09-22
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap
ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos
Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets
}}}
{{{
% /usr/bin/curl -I https://pyropus.ca./
HTTP/1.1 301 Moved Permanently
Date: Mon, 03 Apr 2023 01:17:16 GMT
Server: Apache/2.4.56 (Debian)
Location: https://pyropus.ca./
Content-Type: text/html; charset=iso-8859-1
}}}
The memtester port is an example that fails to fetch distfiles because of
this (if the `master_sites` override is removed from the Portfile). It
also fails livecheck.
It was pointed out to me by the author of memtester that affect curl
versions can be made to work by setting the `Host` header properly, as in:
{{{
% /usr/bin/curl -H 'Host: pyropus.ca.' -I https://pyropus.ca./
HTTP/1.1 200 OK
Date: Mon, 03 Apr 2023 01:18:35 GMT
Server: Apache/2.4.56 (Debian)
Accept-Ranges: bytes
Vary: Accept-Encoding
X-Frame-Options: sameorigin
Content-Type: text/html
}}}
MacPorts should use a regexp to extract the host out of the URL and set
the Host header every time it invokes curl for any purpose to work around
buggy curl versions.
--
Ticket URL: <https://trac.macports.org/ticket/67186>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list