From e38b41d4847ec3730d78d0d9eda772662415b3cc Mon Sep 17 00:00:00 2001 From: jbhusson <jonah@elixxir.io> Date: Wed, 6 Jul 2022 09:23:50 -0400 Subject: [PATCH] More fixes from MR --- bindings/fileTransfer.go | 39 +++++++++----------------------- bindings/restlikeSingle.go | 11 +++++---- bindings/single.go | 46 +++++++++++++++++++++++--------------- 3 files changed, 45 insertions(+), 51 deletions(-) diff --git a/bindings/fileTransfer.go b/bindings/fileTransfer.go index 4176ae716..95112911c 100644 --- a/bindings/fileTransfer.go +++ b/bindings/fileTransfer.go @@ -35,7 +35,7 @@ type ReceivedFile struct { Preview []byte Name string Type string - Size uint32 + Size int } // FileSend is a public struct which represents a file to be transferred @@ -61,8 +61,8 @@ type FileSend struct { // } type Progress struct { Completed bool - Transmitted uint16 - Total uint16 + Transmitted int + Total int Err error } @@ -88,33 +88,14 @@ type FileTransferReceiveProgressCallback interface { // InitFileTransfer creates a bindings-level File Transfer manager // Accepts client ID, ReceiveFileCallback and a ReporterFunc -func InitFileTransfer(clientID, e2eID int, cb ReceiveFileCallback) (*FileTransfer, error) { +func InitFileTransfer(e2eID int) (*FileTransfer, error) { // Get bindings client from singleton - //c, err := cmixTrackerSingleton.get(clientID) - //if err != nil { - // return nil, err - //} e2eCl, err := e2eTrackerSingleton.get(e2eID) if err != nil { return nil, err } - // Create the callback to wrap the ReceiveFileCallback - //rcb := func(tid *ftCrypto.TransferID, fileName, fileType string, - // sender *id.ID, size uint32, preview []byte) { - // f := &ReceivedFile{ - // TransferID: tid.Bytes(), - // SenderID: sender.Marshal(), - // Preview: preview, - // Name: fileName, - // Type: fileType, - // Size: size, - // } - // cb.Callback(json.Marshal(f)) - //} - // Client info - e2eCl.api.GetTransmissionIdentity() myID := e2eCl.api.GetTransmissionIdentity().ID rng := e2eCl.api.GetRng() @@ -149,8 +130,8 @@ func (f *FileTransfer) Send(payload, recipientID []byte, retry float32, st fileTransfer.SentTransfer, t fileTransfer.FilePartTracker, err error) { prog := &Progress{ Completed: completed, - Transmitted: arrived, - Total: total, + Transmitted: int(arrived), + Total: int(total), Err: err, } pm, err := json.Marshal(prog) @@ -218,8 +199,8 @@ func (f *FileTransfer) RegisterSentProgressCallback(tidBytes []byte, st fileTransfer.SentTransfer, t fileTransfer.FilePartTracker, err error) { prog := &Progress{ Completed: completed, - Transmitted: arrived, - Total: total, + Transmitted: int(arrived), + Total: int(total), Err: err, } pm, err := json.Marshal(prog) @@ -239,8 +220,8 @@ func (f *FileTransfer) RegisterReceivedProgressCallback(tidBytes []byte, callbac rt fileTransfer.ReceivedTransfer, t fileTransfer.FilePartTracker, err error) { prog := &Progress{ Completed: completed, - Transmitted: received, - Total: total, + Transmitted: int(received), + Total: int(total), Err: err, } pm, err := json.Marshal(prog) diff --git a/bindings/restlikeSingle.go b/bindings/restlikeSingle.go index b39576ce0..b1dfff9d8 100644 --- a/bindings/restlikeSingle.go +++ b/bindings/restlikeSingle.go @@ -14,11 +14,14 @@ type RestlikeCallback interface { Callback([]byte, error) } +type RequestParams struct { +} + // RequestRestLike sends a restlike request to a given contact // Accepts marshalled contact object as recipient, byte slice payload & headers, method enum and a URI // Returns json marshalled restlike.Message & error -func RequestRestLike(clientID int, recipient, request []byte) ([]byte, error) { - c, err := clientTrackerSingleton.get(clientID) +func RequestRestLike(e2eID int, recipient, request []byte) ([]byte, error) { + c, err := e2eTrackerSingleton.get(e2eID) if err != nil { return nil, err } @@ -50,8 +53,8 @@ func RequestRestLike(clientID int, recipient, request []byte) ([]byte, error) { // AsyncRequestRestLike sends an asynchronous restlike request to a given contact // Accepts marshalled contact object as recipient, byte slice payload & headers, method enum, URI, and a RestlikeCallback // Returns an error, and the RestlikeCallback will be called with the results of json marshalling the response when received -func AsyncRequestRestLike(clientID int, recipient, request []byte, cb RestlikeCallback) error { - c, err := clientTrackerSingleton.get(clientID) +func AsyncRequestRestLike(e2eID int, recipient, request []byte, cb RestlikeCallback) error { + c, err := e2eTrackerSingleton.get(e2eID) if err != nil { return err } diff --git a/bindings/single.go b/bindings/single.go index 64e79e29a..0589007a6 100644 --- a/bindings/single.go +++ b/bindings/single.go @@ -13,8 +13,8 @@ import ( // TransmitSingleUse accepts a marshalled recipient contact object, tag, payload, SingleUseResponse callback func & a // Client. Transmits payload to recipient via single use -func TransmitSingleUse(clientID int, recipient []byte, tag string, payload []byte, responseCB SingleUseResponse) ([]byte, error) { - cl, err := clientTrackerSingleton.get(clientID) +func TransmitSingleUse(e2eID int, recipient []byte, tag string, payload []byte, responseCB SingleUseResponse) ([]byte, error) { + e2eCl, err := e2eTrackerSingleton.get(e2eID) if err != nil { return nil, err } @@ -26,27 +26,32 @@ func TransmitSingleUse(clientID int, recipient []byte, tag string, payload []byt rcb := &singleUseResponse{response: responseCB} - rids, eid, err := single.TransmitRequest(recipientContact, tag, payload, rcb, single.GetDefaultRequestParams(), cl.api.GetCmix(), cl.api.GetRng().GetStream(), cl.api.GetStorage().GetE2EGroup()) + rids, eid, err := single.TransmitRequest(recipientContact, tag, payload, rcb, single.GetDefaultRequestParams(), e2eCl.api.GetCmix(), e2eCl.api.GetRng().GetStream(), e2eCl.api.GetStorage().GetE2EGroup()) if err != nil { return nil, err } sr := SingleUseSendReport{ - EphID: eid, - RoundsList: makeRoundsList(rids), + EphID: eid.EphId.Int64(), + ReceptionID: eid.Source.Marshal(), + RoundsList: makeRoundsList(rids), } return json.Marshal(sr) } // Listen starts a single use listener on a given tag using the passed in client and SingleUseCallback func -func Listen(clientID int, tag string, cb SingleUseCallback) (StopFunc, error) { - cl, err := clientTrackerSingleton.get(clientID) +func Listen(e2eID int, tag string, cb SingleUseCallback) (StopFunc, error) { + e2eCl, err := e2eTrackerSingleton.get(e2eID) if err != nil { return nil, err } listener := singleUseListener{scb: cb} - l := single.Listen(tag, cl.api.GetUser().ReceptionID, cl.api.GetUser().E2eDhPrivateKey, cl.api.GetCmix(), cl.api.GetStorage().GetE2EGroup(), listener) + dhpk, err := e2eCl.api.GetReceptionIdentity().GetDHKeyPrivate() + if err != nil { + return nil, err + } + l := single.Listen(tag, e2eCl.api.GetReceptionIdentity().ID, dhpk, e2eCl.api.GetCmix(), e2eCl.api.GetStorage().GetE2EGroup(), listener) return l.Stop, nil } @@ -60,7 +65,8 @@ func Listen(clientID int, tag string, cb SingleUseCallback) (StopFunc, error) { // "Source":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"}} type SingleUseSendReport struct { RoundsList - EphID receptionID.EphemeralIdentity + ReceptionID []byte + EphID int64 } // SingleUseResponseReport is the bindings struct used to represent information passed @@ -75,7 +81,8 @@ type SingleUseSendReport struct { type SingleUseResponseReport struct { RoundsList Payload []byte - ReceptionID receptionID.EphemeralIdentity + ReceptionID []byte + EphID int64 Err error } @@ -90,9 +97,10 @@ type SingleUseResponseReport struct { // "Source":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"}} type SingleUseCallbackReport struct { RoundsList - Payload []byte - Partner *id.ID - EphID receptionID.EphemeralIdentity + Payload []byte + Partner *id.ID + EphID int64 + ReceptionID []byte } // Function types @@ -132,10 +140,11 @@ func (sl singleUseListener) Callback(req *single.Request, eid receptionID.Epheme // Todo: what other info from req needs to get to bindings scr := SingleUseCallbackReport{ - Payload: req.GetPayload(), - RoundsList: makeRoundsList(rids), - Partner: req.GetPartner(), - EphID: eid, + Payload: req.GetPayload(), + RoundsList: makeRoundsList(rids), + Partner: req.GetPartner(), + EphID: eid.EphId.Int64(), + ReceptionID: eid.Source.Marshal(), } sl.scb.Callback(json.Marshal(scr)) @@ -157,7 +166,8 @@ func (sr singleUseResponse) Callback(payload []byte, receptionID receptionID.Eph } sendReport := SingleUseResponseReport{ RoundsList: makeRoundsList(rids), - ReceptionID: receptionID, + ReceptionID: receptionID.Source.Marshal(), + EphID: receptionID.EphId.Int64(), Payload: payload, Err: err, } -- GitLab