diff options
Diffstat (limited to 'src/transports/http.c')
-rw-r--r-- | src/transports/http.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/transports/http.c b/src/transports/http.c index 0942daf3e..3190c464c 100644 --- a/src/transports/http.c +++ b/src/transports/http.c @@ -367,6 +367,7 @@ static int on_headers_complete(http_parser *parser) allowed_auth_types, t->owner->cred_acquire_payload); + /* treat GIT_PASSTHROUGH as if callback isn't set */ if (error == GIT_PASSTHROUGH) { no_callback = 1; } else if (error < 0) { @@ -635,6 +636,9 @@ static int http_connect(http_subtransport *t) giterr_clear(); error = t->owner->certificate_check_cb(cert, is_valid, t->connection_data.host, t->owner->message_cb_payload); + if (error == GIT_PASSTHROUGH) + error = is_valid ? 0 : GIT_ECERTIFICATE; + if (error < 0) { if (!giterr_last()) giterr_set(GITERR_NET, "user cancelled certificate check"); |