Skip to content

Commit 0c7e11d

Browse files
committed
Count remote echo timeouts from ack instead of event ts
1 parent 5333dcb commit 0c7e11d

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

portal.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ type PortalMatrixMessage struct {
254254

255255
type outgoingMessage struct {
256256
*event.Event
257-
Acked bool
257+
AckedAt time.Time
258258
Errored bool
259259
Timeouted bool
260260
}
@@ -390,7 +390,7 @@ func (portal *Portal) outgoingMessageTimeoutLoop() {
390390
for range ticker.C {
391391
portal.outgoingMessagesLock.Lock()
392392
for _, out := range portal.outgoingMessages {
393-
if !out.Timeouted && out.Acked && !out.Errored && time.Since(time.UnixMilli(out.Timestamp)) > 1*time.Minute {
393+
if !out.Timeouted && !out.AckedAt.IsZero() && !out.Errored && time.Since(out.AckedAt) > 1*time.Minute {
394394
go portal.sendStatusEvent(context.TODO(), out.ID, "", errEchoTimeout, nil)
395395
go portal.sendErrorMessage(context.TODO(), out.Event, errEchoTimeout, "message", false, "")
396396
go portal.bridge.SendMessageCheckpoint(out.Event, status.MsgStepRemote, errEchoTimeout, status.MsgStatusTimeout, 0)
@@ -2110,10 +2110,10 @@ func (portal *Portal) HandleMatrixMessage(sender *User, evt *event.Event, timing
21102110
go ms.sendMessageMetrics(ctx, sender, evt, err, "Error sending", true)
21112111
} else if resp.Status != gmproto.SendMessageResponse_SUCCESS {
21122112
outgoingMsg.Errored = true
2113-
outgoingMsg.Acked = true
2113+
outgoingMsg.AckedAt = time.Now()
21142114
go ms.sendMessageMetrics(ctx, sender, evt, (*responseStatusError)(resp), "Error sending", true)
21152115
} else {
2116-
outgoingMsg.Acked = true
2116+
outgoingMsg.AckedAt = time.Now()
21172117
go ms.sendMessageMetrics(ctx, sender, evt, nil, "", true)
21182118
}
21192119
}

0 commit comments

Comments
 (0)