fix: accept scoped IPv6 addresses in transfer targets (#8204)

Signed-off-by: immanuwell <pchpr.00@list.ru>
This commit is contained in:
Immanuel Tikhonov
2026-06-28 09:26:12 +04:00
committed by GitHub
parent 69e7a4be73
commit 45a20ddcf1
3 changed files with 6 additions and 4 deletions

View File

@@ -113,13 +113,13 @@ func HostPort(s, defaultPort string) (string, error) {
port = defaultPort
}
if err != nil {
if net.ParseIP(s) == nil {
if net.ParseIP(stripZone(s)) == nil {
return "", fmt.Errorf("must specify an IP address: `%s'", s)
}
return net.JoinHostPort(s, port), nil
}
if net.ParseIP(addr) == nil {
if net.ParseIP(stripZone(addr)) == nil {
return "", fmt.Errorf("must specify an IP address: `%s'", addr)
}
return net.JoinHostPort(addr, port), nil

View File

@@ -103,6 +103,8 @@ func TestParseHostPort(t *testing.T) {
{"8.8.8.8:", "8.8.8.8:53", false},
{"8.8.8.8::53", "", true},
{"resolv.conf", "", true},
{"fe80::1%ens3", "[fe80::1%ens3]:53", false},
{"[fd01::1%ens3]:153", "[fd01::1%ens3]:153", false},
}
for i, tc := range tests {