diff --git a/model/overlay.go b/model/overlay.go index 4500445..03fe0bb 100644 --- a/model/overlay.go +++ b/model/overlay.go @@ -10,13 +10,13 @@ type MessageWrapper struct { Data string `json:"d"` // when the data was assembled - SendTime time.Time `json:"s,omitempty"` + SendTime *time.Time `json:"s,omitempty"` // when the data was transmitted (by protocol engine e.g. over Tor) - TransitTime time.Time `json:"t,omitempty"` + TransitTime *time.Time `json:"t,omitempty"` // when the data was received - RecvTime time.Time `json:"r,omitempty"` + RecvTime *time.Time `json:"r,omitempty"` } // OverlayChat is the canonical identifier for chat overlays diff --git a/protocol/connections/peerapp.go b/protocol/connections/peerapp.go index 89f82c0..aa12646 100644 --- a/protocol/connections/peerapp.go +++ b/protocol/connections/peerapp.go @@ -136,8 +136,9 @@ func (pa *PeerApp) listen() { } } else { if cm, err := model.DeserializeMessage(string(packet.Data)); err == nil { - if !cm.TransitTime.IsZero() { - cm.RecvTime = time.Now().UTC() + if cm.TransitTime != nil { + rt := time.Now().UTC() + cm.RecvTime = &rt data, _ := json.Marshal(cm) packet.Data = data } @@ -158,8 +159,9 @@ func (pa *PeerApp) SendMessage(message model2.PeerMessage) error { var err error if cm, err := model.DeserializeMessage(string(message.Data)); err == nil { - if !cm.SendTime.IsZero() { - cm.TransitTime = time.Now().UTC() + if cm.SendTime != nil { + tt := time.Now().UTC() + cm.TransitTime = &tt data, _ := json.Marshal(cm) message.Data = data }