summaryrefslogtreecommitdiff
path: root/remote.go
diff options
context:
space:
mode:
authorlhchavez <[email protected]>2020-12-01 19:11:41 -0800
committerlhchavez <[email protected]>2021-09-05 18:52:01 -0700
commit5def02a589a2c1653f4bb515fdec290361a222be (patch)
treeb99d3a8204c27c902f711bc4f8f8b48baa8352bb /remote.go
parent70e5e419cf0cab31553b106267a0296f3cd672d9 (diff)
The big Callback type adjustment of 2020
This change makes all callbacks that can fail return an `error`. This makes things a lot more idiomatic.
Diffstat (limited to 'remote.go')
-rw-r--r--remote.go59
1 files changed, 25 insertions, 34 deletions
diff --git a/remote.go b/remote.go
index 275d4d9..e312a3a 100644
--- a/remote.go
+++ b/remote.go
@@ -69,15 +69,15 @@ const (
ConnectDirectionPush ConnectDirection = C.GIT_DIRECTION_PUSH
)
-type TransportMessageCallback func(str string) ErrorCode
-type CompletionCallback func(RemoteCompletion) ErrorCode
+type TransportMessageCallback func(str string) error
+type CompletionCallback func(RemoteCompletion) error
type CredentialsCallback func(url string, username_from_url string, allowed_types CredentialType) (*Credential, error)
-type TransferProgressCallback func(stats TransferProgress) ErrorCode
-type UpdateTipsCallback func(refname string, a *Oid, b *Oid) ErrorCode
-type CertificateCheckCallback func(cert *Certificate, valid bool, hostname string) ErrorCode
-type PackbuilderProgressCallback func(stage int32, current, total uint32) ErrorCode
-type PushTransferProgressCallback func(current, total uint32, bytes uint) ErrorCode
-type PushUpdateReferenceCallback func(refname, status string) ErrorCode
+type TransferProgressCallback func(stats TransferProgress) error
+type UpdateTipsCallback func(refname string, a *Oid, b *Oid) error
+type CertificateCheckCallback func(cert *Certificate, valid bool, hostname string) error
+type PackbuilderProgressCallback func(stage int32, current, total uint32) error
+type PushTransferProgressCallback func(current, total uint32, bytes uint) error
+type PushUpdateReferenceCallback func(refname, status string) error
type RemoteCallbacks struct {
SidebandProgressCallback TransportMessageCallback
@@ -329,10 +329,8 @@ func sidebandProgressCallback(errorMessage **C.char, _str *C.char, _len C.int, h
if data.callbacks.SidebandProgressCallback == nil {
return C.int(ErrorCodeOK)
}
- str := C.GoStringN(_str, _len)
- ret := data.callbacks.SidebandProgressCallback(str)
- if ret < 0 {
- err := errors.New(ErrorCode(ret).String())
+ err := data.callbacks.SidebandProgressCallback(C.GoStringN(_str, _len))
+ if err != nil {
if data.errorTarget != nil {
*data.errorTarget = err
}
@@ -342,14 +340,13 @@ func sidebandProgressCallback(errorMessage **C.char, _str *C.char, _len C.int, h
}
//export completionCallback
-func completionCallback(errorMessage **C.char, completion_type C.git_remote_completion_type, handle unsafe.Pointer) C.int {
+func completionCallback(errorMessage **C.char, completionType C.git_remote_completion_type, handle unsafe.Pointer) C.int {
data := pointerHandles.Get(handle).(*remoteCallbacksData)
if data.callbacks.CompletionCallback == nil {
return C.int(ErrorCodeOK)
}
- ret := data.callbacks.CompletionCallback(RemoteCompletion(completion_type))
- if ret < 0 {
- err := errors.New(ErrorCode(ret).String())
+ err := data.callbacks.CompletionCallback(RemoteCompletion(completionType))
+ if err != nil {
if data.errorTarget != nil {
*data.errorTarget = err
}
@@ -396,9 +393,8 @@ func transferProgressCallback(errorMessage **C.char, stats *C.git_transfer_progr
if data.callbacks.TransferProgressCallback == nil {
return C.int(ErrorCodeOK)
}
- ret := data.callbacks.TransferProgressCallback(newTransferProgressFromC(stats))
- if ret < 0 {
- err := errors.New(ErrorCode(ret).String())
+ err := data.callbacks.TransferProgressCallback(newTransferProgressFromC(stats))
+ if err != nil {
if data.errorTarget != nil {
*data.errorTarget = err
}
@@ -422,9 +418,8 @@ func updateTipsCallback(
refname := C.GoString(_refname)
a := newOidFromC(_a)
b := newOidFromC(_b)
- ret := data.callbacks.UpdateTipsCallback(refname, a, b)
- if ret < 0 {
- err := errors.New(ErrorCode(ret).String())
+ err := data.callbacks.UpdateTipsCallback(refname, a, b)
+ if err != nil {
if data.errorTarget != nil {
*data.errorTarget = err
}
@@ -489,9 +484,8 @@ func certificateCheckCallback(
return setCallbackError(errorMessage, err)
}
- ret := data.callbacks.CertificateCheckCallback(&cert, valid, host)
- if ret < 0 {
- err := errors.New(ErrorCode(ret).String())
+ err := data.callbacks.CertificateCheckCallback(&cert, valid, host)
+ if err != nil {
if data.errorTarget != nil {
*data.errorTarget = err
}
@@ -507,9 +501,8 @@ func packProgressCallback(errorMessage **C.char, stage C.int, current, total C.u
return C.int(ErrorCodeOK)
}
- ret := data.callbacks.PackProgressCallback(int32(stage), uint32(current), uint32(total))
- if ret < 0 {
- err := errors.New(ErrorCode(ret).String())
+ err := data.callbacks.PackProgressCallback(int32(stage), uint32(current), uint32(total))
+ if err != nil {
if data.errorTarget != nil {
*data.errorTarget = err
}
@@ -525,9 +518,8 @@ func pushTransferProgressCallback(errorMessage **C.char, current, total C.uint,
return C.int(ErrorCodeOK)
}
- ret := data.callbacks.PushTransferProgressCallback(uint32(current), uint32(total), uint(bytes))
- if ret < 0 {
- err := errors.New(ErrorCode(ret).String())
+ err := data.callbacks.PushTransferProgressCallback(uint32(current), uint32(total), uint(bytes))
+ if err != nil {
if data.errorTarget != nil {
*data.errorTarget = err
}
@@ -543,9 +535,8 @@ func pushUpdateReferenceCallback(errorMessage **C.char, refname, status *C.char,
return C.int(ErrorCodeOK)
}
- ret := data.callbacks.PushUpdateReferenceCallback(C.GoString(refname), C.GoString(status))
- if ret < 0 {
- err := errors.New(ErrorCode(ret).String())
+ err := data.callbacks.PushUpdateReferenceCallback(C.GoString(refname), C.GoString(status))
+ if err != nil {
if data.errorTarget != nil {
*data.errorTarget = err
}