Unverified Commit c0dc97be by Edward Thomson Committed by GitHub

Merge pull request #6511 from libgit2/ethomson/hostandport

Revert #6503
parents 44d3372e c28ebdf2
......@@ -651,8 +651,6 @@ static int check_against_known_hosts(
return ret;
}
#define SSH_DEFAULT_PORT 22
/*
* Perform the check for the session's certificate against known hosts if
* possible and then ask the user if they have a callback.
......@@ -750,16 +748,9 @@ static int check_certificate(
if (check_cb != NULL) {
git_cert_hostkey *cert_ptr = &cert;
git_error_state previous_error = {0};
const char *host_ptr = host;
git_str host_and_port = GIT_STR_INIT;
if (port != SSH_DEFAULT_PORT) {
git_str_printf(&host_and_port, "%s:%d", host, port);
host_ptr = host_and_port.ptr;
}
git_error_state_capture(&previous_error, error);
error = check_cb((git_cert *) cert_ptr, cert_valid, host_ptr, check_cb_payload);
error = check_cb((git_cert *) cert_ptr, cert_valid, host, check_cb_payload);
if (error == GIT_PASSTHROUGH) {
error = git_error_state_restore(&previous_error);
} else if (error < 0 && !git_error_last()) {
......@@ -767,12 +758,13 @@ static int check_certificate(
}
git_error_state_free(&previous_error);
git_str_dispose(&host_and_port);
}
return error;
}
#define SSH_DEFAULT_PORT "22"
static int _git_ssh_setup_conn(
ssh_subtransport *t,
const char *url,
......
......@@ -787,19 +787,10 @@ static int ssh_certificate_check(git_cert *cert, int valid, const char *host, vo
{
git_cert_hostkey *key;
git_oid expected = GIT_OID_SHA1_ZERO, actual = GIT_OID_SHA1_ZERO;
git_str expected_host = GIT_STR_INIT;
git_net_url parsed_url = GIT_NET_URL_INIT;
GIT_UNUSED(valid);
GIT_UNUSED(payload);
cl_git_pass(git_net_url_parse_standard_or_scp(&parsed_url, _remote_url));
cl_git_pass(git_str_printf(&expected_host, "%s%s%s",
parsed_url.host,
git_net_url_is_default_port(&parsed_url) ? "" : ":",
git_net_url_is_default_port(&parsed_url) ? "" : parsed_url.port));
cl_assert_equal_s(expected_host.ptr, host);
cl_assert(_remote_ssh_fingerprint);
cl_git_pass(git_oid__fromstrp(&expected, _remote_ssh_fingerprint, GIT_OID_SHA1));
......@@ -821,8 +812,7 @@ static int ssh_certificate_check(git_cert *cert, int valid, const char *host, vo
cl_assert(!memcmp(&expected, &actual, 20));
git_net_url_dispose(&parsed_url);
git_str_dispose(&expected_host);
cl_assert_equal_s("localhost", host);
return GIT_EUSER;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment