Skip to content
Snippets Groups Projects
Commit e38b41d4 authored by Jonah Husson's avatar Jonah Husson
Browse files

More fixes from MR

parent c5d813a5
No related branches found
No related tags found
2 merge requests!510Release,!228New bindings for api2.0
......@@ -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)
......
......@@ -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
}
......
......@@ -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,
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment