remote: use the library's certificate validity if no callback is set

We should not return 0, as in this case that means we let it through,
return an appropriate error instead.
This commit is contained in:
Carlos Martín Nieto 2014-10-19 14:35:22 +02:00
parent 68bd3bbdd7
commit 3b7cc1e97e
1 changed files with 6 additions and 1 deletions

View File

@ -160,8 +160,13 @@ func updateTipsCallback(_refname *C.char, _a *C.git_oid, _b *C.git_oid, data uns
//export certificateCheckCallback
func certificateCheckCallback(_cert *C.git_cert, _valid C.int, _host *C.char, data unsafe.Pointer) int {
callbacks := (*RemoteCallbacks)(data)
// if there's no callback set, we need to make sure we fail if the library didn't consider this cert valid
if callbacks.CertificateCheckCallback == nil {
return 0
if _valid == 1 {
return 0
} else {
return C.GIT_ECERTIFICATE
}
}
host := C.GoString(_host)
valid := _valid != 0