UnackdMessages to public

This commit is contained in:
erinn 2020-10-07 13:53:22 -07:00
parent e4ab5b543b
commit 7b98e214e6
2 changed files with 16 additions and 16 deletions

View File

@ -33,7 +33,7 @@ type Group struct {
lock sync.Mutex lock sync.Mutex
LocalID string LocalID string
State string `json:"-"` State string `json:"-"`
unacknowledgedMessages []Message UnacknowledgedMessages []Message
Version int Version int
} }
@ -119,7 +119,7 @@ func (g *Group) AddSentMessage(message *groups.DecryptedGroupMessage, sig []byte
PreviousMessageSig: message.PreviousMessageSig, PreviousMessageSig: message.PreviousMessageSig,
ReceivedByServer: false, ReceivedByServer: false,
} }
g.unacknowledgedMessages = append(g.unacknowledgedMessages, timelineMessage) g.UnacknowledgedMessages = append(g.UnacknowledgedMessages, timelineMessage)
return timelineMessage return timelineMessage
} }
@ -130,10 +130,10 @@ func (g *Group) ErrorSentMessage(sig []byte, error string) bool {
var message *Message var message *Message
// Delete the message from the unack'd buffer if it exists // Delete the message from the unack'd buffer if it exists
for i, unAckedMessage := range g.unacknowledgedMessages { for i, unAckedMessage := range g.UnacknowledgedMessages {
if compareSignatures(unAckedMessage.Signature, sig) { if compareSignatures(unAckedMessage.Signature, sig) {
message = &unAckedMessage message = &unAckedMessage
g.unacknowledgedMessages = append(g.unacknowledgedMessages[:i], g.unacknowledgedMessages[i+1:]...) g.UnacknowledgedMessages = append(g.UnacknowledgedMessages[:i], g.UnacknowledgedMessages[i+1:]...)
message.Error = error message.Error = error
g.Timeline.Insert(message) g.Timeline.Insert(message)
@ -150,9 +150,9 @@ func (g *Group) AddMessage(message *groups.DecryptedGroupMessage, sig []byte) (*
defer g.lock.Unlock() defer g.lock.Unlock()
// Delete the message from the unack'd buffer if it exists // Delete the message from the unack'd buffer if it exists
for i, unAckedMessage := range g.unacknowledgedMessages { for i, unAckedMessage := range g.UnacknowledgedMessages {
if compareSignatures(unAckedMessage.Signature, sig) { if compareSignatures(unAckedMessage.Signature, sig) {
g.unacknowledgedMessages = append(g.unacknowledgedMessages[:i], g.unacknowledgedMessages[i+1:]...) g.UnacknowledgedMessages = append(g.UnacknowledgedMessages[:i], g.UnacknowledgedMessages[i+1:]...)
break break
} }
} }
@ -176,7 +176,7 @@ func (g *Group) AddMessage(message *groups.DecryptedGroupMessage, sig []byte) (*
func (g *Group) GetTimeline() (timeline []Message) { func (g *Group) GetTimeline() (timeline []Message) {
g.lock.Lock() g.lock.Lock()
defer g.lock.Unlock() defer g.lock.Unlock()
return append(g.Timeline.GetMessages(), g.unacknowledgedMessages...) return append(g.Timeline.GetMessages(), g.UnacknowledgedMessages...)
} }
//EncryptMessage takes a message and encrypts the message under the group key. //EncryptMessage takes a message and encrypts the message under the group key.

View File

@ -40,7 +40,7 @@ type PublicProfile struct {
LocalID string // used by storage engine LocalID string // used by storage engine
State string `json:"-"` State string `json:"-"`
lock sync.Mutex lock sync.Mutex
unacknowledgedMessages map[string]Message UnacknowledgedMessages map[string]Message
} }
// Profile encapsulates all the attributes necessary to be a Cwtch Peer. // Profile encapsulates all the attributes necessary to be a Cwtch Peer.
@ -66,7 +66,7 @@ func (p *PublicProfile) init() {
if p.Attributes == nil { if p.Attributes == nil {
p.Attributes = make(map[string]string) p.Attributes = make(map[string]string)
} }
p.unacknowledgedMessages = make(map[string]Message) p.UnacknowledgedMessages = make(map[string]Message)
p.LocalID = GenerateRandomID() p.LocalID = GenerateRandomID()
} }
@ -150,10 +150,10 @@ func (p *Profile) AddSentMessageToContactTimeline(onion string, messageTxt strin
sig := p.SignMessage(onion + messageTxt + sent.String() + now.String()) sig := p.SignMessage(onion + messageTxt + sent.String() + now.String())
message := &Message{PeerID: p.Onion, Message: messageTxt, Timestamp: sent, Received: now, Signature: sig, Acknowledged: false} message := &Message{PeerID: p.Onion, Message: messageTxt, Timestamp: sent, Received: now, Signature: sig, Acknowledged: false}
if contact.unacknowledgedMessages == nil { if contact.UnacknowledgedMessages == nil {
contact.unacknowledgedMessages = make(map[string]Message) contact.UnacknowledgedMessages = make(map[string]Message)
} }
contact.unacknowledgedMessages[eventID] = *message contact.UnacknowledgedMessages[eventID] = *message
return message return message
} }
return nil return nil
@ -182,11 +182,11 @@ func (p *Profile) ErrorSentMessageToPeer(onion string, eventID string, error str
contact, ok := p.Contacts[onion] contact, ok := p.Contacts[onion]
if ok { if ok {
message, ok := contact.unacknowledgedMessages[eventID] message, ok := contact.UnacknowledgedMessages[eventID]
if ok { if ok {
message.Error = error message.Error = error
contact.Timeline.Insert(&message) // TODO: do we want a non timeline.Insert way to handle errors contact.Timeline.Insert(&message) // TODO: do we want a non timeline.Insert way to handle errors
delete(contact.unacknowledgedMessages, eventID) delete(contact.UnacknowledgedMessages, eventID)
} }
} }
} }
@ -198,11 +198,11 @@ func (p *Profile) AckSentMessageToPeer(onion string, eventID string) {
contact, ok := p.Contacts[onion] contact, ok := p.Contacts[onion]
if ok { if ok {
message, ok := contact.unacknowledgedMessages[eventID] message, ok := contact.UnacknowledgedMessages[eventID]
if ok { if ok {
message.Acknowledged = true message.Acknowledged = true
contact.Timeline.Insert(&message) contact.Timeline.Insert(&message)
delete(contact.unacknowledgedMessages, eventID) delete(contact.UnacknowledgedMessages, eventID)
} }
} }
} }