Merge branch 'tb/connect-ipv6-parse-fix' into maint
An earlier update to the parser that disects a URL broke an address, followed by a colon, followed by an empty string (instead of the port number), e.g. ssh://example.com:/path/to/repo. * tb/connect-ipv6-parse-fix: connect.c: ignore extra colon after hostname
This commit is contained in:
commit
ad34ad614d
@ -310,6 +310,8 @@ static void get_host_and_port(char **host, const char **port)
|
|||||||
if (end != colon + 1 && *end == '\0' && 0 <= portnr && portnr < 65536) {
|
if (end != colon + 1 && *end == '\0' && 0 <= portnr && portnr < 65536) {
|
||||||
*colon = 0;
|
*colon = 0;
|
||||||
*port = colon + 1;
|
*port = colon + 1;
|
||||||
|
} else if (!colon[1]) {
|
||||||
|
*colon = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -576,13 +576,16 @@ do
|
|||||||
do
|
do
|
||||||
for h in host user@host user@[::1] user@::1
|
for h in host user@host user@[::1] user@::1
|
||||||
do
|
do
|
||||||
test_expect_success "fetch-pack --diag-url $p://$h/$r" '
|
for c in "" :
|
||||||
check_prot_host_port_path $p://$h/$r $p "$h" NONE "/$r"
|
do
|
||||||
'
|
test_expect_success "fetch-pack --diag-url $p://$h$c/$r" '
|
||||||
# "/~" -> "~" conversion
|
check_prot_host_port_path $p://$h/$r $p "$h" NONE "/$r"
|
||||||
test_expect_success "fetch-pack --diag-url $p://$h/~$r" '
|
'
|
||||||
check_prot_host_port_path $p://$h/~$r $p "$h" NONE "~$r"
|
# "/~" -> "~" conversion
|
||||||
'
|
test_expect_success "fetch-pack --diag-url $p://$h$c/~$r" '
|
||||||
|
check_prot_host_port_path $p://$h/~$r $p "$h" NONE "~$r"
|
||||||
|
'
|
||||||
|
done
|
||||||
done
|
done
|
||||||
for h in host User@host User@[::1]
|
for h in host User@host User@[::1]
|
||||||
do
|
do
|
||||||
|
@ -387,14 +387,17 @@ do
|
|||||||
done
|
done
|
||||||
|
|
||||||
#with ssh:// scheme
|
#with ssh:// scheme
|
||||||
test_expect_success 'clone ssh://host.xz/home/user/repo' '
|
#ignore trailing colon
|
||||||
test_clone_url "ssh://host.xz/home/user/repo" host.xz "/home/user/repo"
|
for tcol in "" :
|
||||||
'
|
do
|
||||||
|
test_expect_success "clone ssh://host.xz$tcol/home/user/repo" '
|
||||||
# from home directory
|
test_clone_url "ssh://host.xz$tcol/home/user/repo" host.xz /home/user/repo
|
||||||
test_expect_success 'clone ssh://host.xz/~repo' '
|
'
|
||||||
test_clone_url "ssh://host.xz/~repo" host.xz "~repo"
|
# from home directory
|
||||||
|
test_expect_success "clone ssh://host.xz$tcol/~repo" '
|
||||||
|
test_clone_url "ssh://host.xz$tcol/~repo" host.xz "~repo"
|
||||||
'
|
'
|
||||||
|
done
|
||||||
|
|
||||||
# with port number
|
# with port number
|
||||||
test_expect_success 'clone ssh://host.xz:22/home/user/repo' '
|
test_expect_success 'clone ssh://host.xz:22/home/user/repo' '
|
||||||
@ -407,9 +410,9 @@ test_expect_success 'clone ssh://host.xz:22/~repo' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
#IPv6
|
#IPv6
|
||||||
for tuah in ::1 [::1] user@::1 user@[::1] [user@::1]
|
for tuah in ::1 [::1] [::1]: user@::1 user@[::1] user@[::1]: [user@::1] [user@::1]:
|
||||||
do
|
do
|
||||||
ehost=$(echo $tuah | tr -d "[]")
|
ehost=$(echo $tuah | sed -e "s/1]:/1]/ "| tr -d "[]")
|
||||||
test_expect_success "clone ssh://$tuah/home/user/repo" "
|
test_expect_success "clone ssh://$tuah/home/user/repo" "
|
||||||
test_clone_url ssh://$tuah/home/user/repo $ehost /home/user/repo
|
test_clone_url ssh://$tuah/home/user/repo $ehost /home/user/repo
|
||||||
"
|
"
|
||||||
|
Loading…
Reference in New Issue
Block a user