From fe37c71a4f456373242bb1a9e0c3d5b3655b4ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= Date: Fri, 6 May 2016 22:39:20 +0200 Subject: [PATCH] Rerun hack/vendor.sh to pick up gpgme changes See https://github.com/proglottis/gpgme/pull/7 for the full discussion. Resolves #42 . --- vendor/github.com/mtrmac/gpgme/callbacks.go | 12 ++++++------ vendor/github.com/mtrmac/gpgme/data.go | 16 ++++++++-------- vendor/github.com/mtrmac/gpgme/go_gpgme.c | 18 +++++++++++++----- vendor/github.com/mtrmac/gpgme/go_gpgme.h | 2 ++ vendor/github.com/mtrmac/gpgme/gpgme.go | 8 ++++---- 5 files changed, 33 insertions(+), 23 deletions(-) diff --git a/vendor/github.com/mtrmac/gpgme/callbacks.go b/vendor/github.com/mtrmac/gpgme/callbacks.go index 27e072ed..d1dc610d 100644 --- a/vendor/github.com/mtrmac/gpgme/callbacks.go +++ b/vendor/github.com/mtrmac/gpgme/callbacks.go @@ -6,15 +6,15 @@ import ( var callbacks struct { sync.Mutex - m map[int]interface{} - c int + m map[uintptr]interface{} + c uintptr } -func callbackAdd(v interface{}) int { +func callbackAdd(v interface{}) uintptr { callbacks.Lock() defer callbacks.Unlock() if callbacks.m == nil { - callbacks.m = make(map[int]interface{}) + callbacks.m = make(map[uintptr]interface{}) } callbacks.c++ ret := callbacks.c @@ -22,7 +22,7 @@ func callbackAdd(v interface{}) int { return ret } -func callbackLookup(c int) interface{} { +func callbackLookup(c uintptr) interface{} { callbacks.Lock() defer callbacks.Unlock() ret := callbacks.m[c] @@ -32,7 +32,7 @@ func callbackLookup(c int) interface{} { return ret } -func callbackDelete(c int) { +func callbackDelete(c uintptr) { callbacks.Lock() defer callbacks.Unlock() if callbacks.m[c] == nil { diff --git a/vendor/github.com/mtrmac/gpgme/data.go b/vendor/github.com/mtrmac/gpgme/data.go index 6f8cb6b1..eebc9726 100644 --- a/vendor/github.com/mtrmac/gpgme/data.go +++ b/vendor/github.com/mtrmac/gpgme/data.go @@ -21,7 +21,7 @@ const ( //export gogpgme_readfunc func gogpgme_readfunc(handle, buffer unsafe.Pointer, size C.size_t) C.ssize_t { - d := callbackLookup(*(*int)(handle)).(*Data) + d := callbackLookup(uintptr(handle)).(*Data) if len(d.buf) < int(size) { d.buf = make([]byte, size) } @@ -36,7 +36,7 @@ func gogpgme_readfunc(handle, buffer unsafe.Pointer, size C.size_t) C.ssize_t { //export gogpgme_writefunc func gogpgme_writefunc(handle, buffer unsafe.Pointer, size C.size_t) C.ssize_t { - d := callbackLookup(*(*int)(handle)).(*Data) + d := callbackLookup(uintptr(handle)).(*Data) if len(d.buf) < int(size) { d.buf = make([]byte, size) } @@ -51,7 +51,7 @@ func gogpgme_writefunc(handle, buffer unsafe.Pointer, size C.size_t) C.ssize_t { //export gogpgme_seekfunc func gogpgme_seekfunc(handle unsafe.Pointer, offset C.off_t, whence C.int) C.off_t { - d := callbackLookup(*(*int)(handle)).(*Data) + d := callbackLookup(uintptr(handle)).(*Data) n, err := d.s.Seek(int64(offset), int(whence)) if err != nil { C.gpgme_err_set_errno(C.EIO) @@ -68,7 +68,7 @@ type Data struct { r io.Reader w io.Writer s io.Seeker - cbc int + cbc uintptr } func newData() *Data { @@ -106,7 +106,7 @@ func NewDataReader(r io.Reader) (*Data, error) { d.cbs.read = C.gpgme_data_read_cb_t(C.gogpgme_readfunc) cbc := callbackAdd(d) d.cbc = cbc - return d, handleError(C.gpgme_data_new_from_cbs(&d.dh, &d.cbs, unsafe.Pointer(&d.cbc))) + return d, handleError(C.gogpgme_data_new_from_cbs(&d.dh, &d.cbs, C.uintptr_t(cbc))) } // NewDataWriter returns a new callback based data buffer @@ -116,7 +116,7 @@ func NewDataWriter(w io.Writer) (*Data, error) { d.cbs.write = C.gpgme_data_write_cb_t(C.gogpgme_writefunc) cbc := callbackAdd(d) d.cbc = cbc - return d, handleError(C.gpgme_data_new_from_cbs(&d.dh, &d.cbs, unsafe.Pointer(&d.cbc))) + return d, handleError(C.gogpgme_data_new_from_cbs(&d.dh, &d.cbs, C.uintptr_t(cbc))) } // NewDataReadWriter returns a new callback based data buffer @@ -128,7 +128,7 @@ func NewDataReadWriter(rw io.ReadWriter) (*Data, error) { d.cbs.write = C.gpgme_data_write_cb_t(C.gogpgme_writefunc) cbc := callbackAdd(d) d.cbc = cbc - return d, handleError(C.gpgme_data_new_from_cbs(&d.dh, &d.cbs, unsafe.Pointer(&d.cbc))) + return d, handleError(C.gogpgme_data_new_from_cbs(&d.dh, &d.cbs, C.uintptr_t(cbc))) } // NewDataReadWriteSeeker returns a new callback based data buffer @@ -142,7 +142,7 @@ func NewDataReadWriteSeeker(rw io.ReadWriteSeeker) (*Data, error) { d.cbs.seek = C.gpgme_data_seek_cb_t(C.gogpgme_seekfunc) cbc := callbackAdd(d) d.cbc = cbc - return d, handleError(C.gpgme_data_new_from_cbs(&d.dh, &d.cbs, unsafe.Pointer(&d.cbc))) + return d, handleError(C.gogpgme_data_new_from_cbs(&d.dh, &d.cbs, C.uintptr_t(cbc))) } // Close releases any resources associated with the data buffer diff --git a/vendor/github.com/mtrmac/gpgme/go_gpgme.c b/vendor/github.com/mtrmac/gpgme/go_gpgme.c index 76a3abc9..b887574e 100644 --- a/vendor/github.com/mtrmac/gpgme/go_gpgme.c +++ b/vendor/github.com/mtrmac/gpgme/go_gpgme.c @@ -1,5 +1,13 @@ #include "go_gpgme.h" +gpgme_error_t gogpgme_data_new_from_cbs(gpgme_data_t *dh, gpgme_data_cbs_t cbs, uintptr_t handle) { + return gpgme_data_new_from_cbs(dh, cbs, (void *)handle); +} + +void gogpgme_set_passphrase_cb(gpgme_ctx_t ctx, gpgme_passphrase_cb_t cb, uintptr_t handle) { + gpgme_set_passphrase_cb(ctx, cb, (void *)handle); +} + unsigned int key_revoked(gpgme_key_t k) { return k->revoked; } @@ -52,23 +60,23 @@ unsigned int signature_chain_model(gpgme_signature_t s) { return s->chain_model; } -extern unsigned int subkey_revoked(gpgme_subkey_t k) { +unsigned int subkey_revoked(gpgme_subkey_t k) { return k->revoked; } -extern unsigned int subkey_expired(gpgme_subkey_t k) { +unsigned int subkey_expired(gpgme_subkey_t k) { return k->expired; } -extern unsigned int subkey_disabled(gpgme_subkey_t k) { +unsigned int subkey_disabled(gpgme_subkey_t k) { return k->disabled; } -extern unsigned int subkey_invalid(gpgme_subkey_t k) { +unsigned int subkey_invalid(gpgme_subkey_t k) { return k->invalid; } -extern unsigned int subkey_secret(gpgme_subkey_t k) { +unsigned int subkey_secret(gpgme_subkey_t k) { return k->secret; } diff --git a/vendor/github.com/mtrmac/gpgme/go_gpgme.h b/vendor/github.com/mtrmac/gpgme/go_gpgme.h index a9b13ed6..1a81f60b 100644 --- a/vendor/github.com/mtrmac/gpgme/go_gpgme.h +++ b/vendor/github.com/mtrmac/gpgme/go_gpgme.h @@ -7,6 +7,8 @@ extern ssize_t gogpgme_readfunc(void *handle, void *buffer, size_t size); extern ssize_t gogpgme_writefunc(void *handle, void *buffer, size_t size); extern off_t gogpgme_seekfunc(void *handle, off_t offset, int whence); extern gpgme_error_t gogpgme_passfunc(void *hook, char *uid_hint, char *passphrase_info, int prev_was_bad, int fd); +extern gpgme_error_t gogpgme_data_new_from_cbs(gpgme_data_t *dh, gpgme_data_cbs_t cbs, uintptr_t handle); +extern void gogpgme_set_passphrase_cb(gpgme_ctx_t ctx, gpgme_passphrase_cb_t cb, uintptr_t handle); extern unsigned int key_revoked(gpgme_key_t k); extern unsigned int key_expired(gpgme_key_t k); diff --git a/vendor/github.com/mtrmac/gpgme/gpgme.go b/vendor/github.com/mtrmac/gpgme/gpgme.go index 73e125f3..40d786d5 100644 --- a/vendor/github.com/mtrmac/gpgme/gpgme.go +++ b/vendor/github.com/mtrmac/gpgme/gpgme.go @@ -26,7 +26,7 @@ type Callback func(uidHint string, prevWasBad bool, f *os.File) error //export gogpgme_passfunc func gogpgme_passfunc(hook unsafe.Pointer, uid_hint, passphrase_info *C.char, prev_was_bad, fd C.int) C.gpgme_error_t { - c := callbackLookup(*(*int)(hook)).(*Context) + c := callbackLookup(uintptr(hook)).(*Context) go_uid_hint := C.GoString(uid_hint) f := os.NewFile(uintptr(fd), go_uid_hint) defer f.Close() @@ -259,7 +259,7 @@ type Context struct { KeyError error callback Callback - cbc int + cbc uintptr ctx C.gpgme_ctx_t } @@ -333,10 +333,10 @@ func (c *Context) SetCallback(callback Callback) error { if callback != nil { cbc := callbackAdd(c) c.cbc = cbc - _, err = C.gpgme_set_passphrase_cb(c.ctx, C.gpgme_passphrase_cb_t(C.gogpgme_passfunc), unsafe.Pointer(&c.cbc)) + _, err = C.gogpgme_set_passphrase_cb(c.ctx, C.gpgme_passphrase_cb_t(C.gogpgme_passfunc), C.uintptr_t(cbc)) } else { c.cbc = 0 - _, err = C.gpgme_set_passphrase_cb(c.ctx, nil, nil) + _, err = C.gogpgme_set_passphrase_cb(c.ctx, nil, 0) } return err }