From 59d54d790de119e25496026413dfa3ce72234651 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Sat, 18 Dec 2021 17:38:17 -0800 Subject: [PATCH 1/2] Send Indexed Failure on Send Error --- peer/cwtch_peer.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/peer/cwtch_peer.go b/peer/cwtch_peer.go index 459e4ec..691c206 100644 --- a/peer/cwtch_peer.go +++ b/peer/cwtch_peer.go @@ -1245,9 +1245,9 @@ func (cp *cwtchPeer) attemptAcknowledgeP2PConversation(handle string, signature // to either find the contact or the associated message func (cp *cwtchPeer) attemptErrorConversationMessage(handle string, signature string, eventType event.Type, error string) error { ci, err := cp.FetchConversationInfo(handle) - // We should *never* received a peer acknowledgement for a conversation that doesn't exist... + // We should *never* received an error for a conversation that doesn't exist... if ci != nil && err == nil { - // for p2p messages the randomly generated event ID is the "signature" + // "signature" here is event ID for peer messages... id, err := cp.GetChannelMessageBySignature(ci.ID, 0, signature) if err == nil { _, attr, err := cp.GetChannelMessage(ci.ID, 0, id) @@ -1256,7 +1256,8 @@ func (cp *cwtchPeer) attemptErrorConversationMessage(handle string, signature st attr[constants.AttrErr] = constants.True cp.storage.UpdateMessageAttributes(ci.ID, 0, id, attr) cp.mutex.Unlock() - cp.eventBus.Publish(event.NewEvent(eventType, map[event.Field]string{event.ConversationID: strconv.Itoa(ci.ID), event.RemotePeer: handle, event.Error: error, event.Index: strconv.Itoa(id)})) + // Send a generic indexed failure... + cp.eventBus.Publish(event.NewEvent(event.IndexedFailure, map[event.Field]string{event.ConversationID: strconv.Itoa(ci.ID), event.Handle: handle, event.Error: error, event.Index: strconv.Itoa(id)})) return nil } return err -- 2.25.1 From d0911eec57c4e8514d30fb4ac369862b91b43b66 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Sat, 18 Dec 2021 17:51:22 -0800 Subject: [PATCH 2/2] Remove eventType parameter from attemptErrorConversationMessage --- peer/cwtch_peer.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/peer/cwtch_peer.go b/peer/cwtch_peer.go index 691c206..1cc0081 100644 --- a/peer/cwtch_peer.go +++ b/peer/cwtch_peer.go @@ -1031,14 +1031,14 @@ func (cp *cwtchPeer) eventHandler() { log.Debugf("failed to acknowledge acknowledgement: %v", err) } case event.SendMessageToGroupError: - err := cp.attemptErrorConversationMessage(ev.Data[event.GroupID], ev.Data[event.Signature], event.SendMessageToGroupError, ev.Data[event.Error]) + err := cp.attemptErrorConversationMessage(ev.Data[event.GroupID], ev.Data[event.Signature], ev.Data[event.Error]) if err != nil { log.Errorf("failed to error group message: %s %v", ev.Data[event.GroupID], err) } case event.SendMessageToPeerError: context := ev.Data[event.EventContext] if context == string(event.SendMessageToPeer) { - err := cp.attemptErrorConversationMessage(ev.Data[event.RemotePeer], ev.Data[event.EventID], event.SendMessageToPeerError, ev.Data[event.Error]) + err := cp.attemptErrorConversationMessage(ev.Data[event.RemotePeer], ev.Data[event.EventID], ev.Data[event.Error]) if err != nil { log.Errorf("failed to error p2p message: %s %v", ev.Data[event.RemotePeer], err) } @@ -1243,7 +1243,7 @@ func (cp *cwtchPeer) attemptAcknowledgeP2PConversation(handle string, signature // attemptErrorConversationMessage is a convenience method that looks up the conversation // by the given handle and attempts to mark the message as errored. returns error on failure // to either find the contact or the associated message -func (cp *cwtchPeer) attemptErrorConversationMessage(handle string, signature string, eventType event.Type, error string) error { +func (cp *cwtchPeer) attemptErrorConversationMessage(handle string, signature string, error string) error { ci, err := cp.FetchConversationInfo(handle) // We should *never* received an error for a conversation that doesn't exist... if ci != nil && err == nil { -- 2.25.1