From 881d73f84322fa8cc4ff9a0d3407b6edf4ab3d5d Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Fri, 3 Dec 2021 16:53:31 -0700 Subject: [PATCH] checkpoints: expose ability to set retry_num --- appservice/http.go | 2 +- appservice/message_send_checkpoint.go | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/appservice/http.go b/appservice/http.go index 6a05673b..6aebef10 100644 --- a/appservice/http.go +++ b/appservice/http.go @@ -199,7 +199,7 @@ func (as *AppService) handleEvents(evts []*event.Event, defaultTypeClass event.T } if _, ok := CheckpointTypes[evt.Type]; ok { - go as.SendMessageSendCheckpoint(evt, StepBridge) + go as.SendMessageSendCheckpoint(evt, StepBridge, 0) } if evt.Type.IsState() { diff --git a/appservice/message_send_checkpoint.go b/appservice/message_send_checkpoint.go index 4187d46a..5500e673 100644 --- a/appservice/message_send_checkpoint.go +++ b/appservice/message_send_checkpoint.go @@ -74,7 +74,7 @@ var CheckpointTypes = map[event.Type]interface{}{ event.CallNegotiate: struct{}{}, } -func NewMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep, status MessageSendCheckpointStatus) *MessageSendCheckpoint { +func NewMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep, status MessageSendCheckpointStatus, retryNum int) *MessageSendCheckpoint { checkpoint := MessageSendCheckpoint{ EventID: evt.ID, RoomID: evt.RoomID, @@ -83,6 +83,7 @@ func NewMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep, Status: status, EventType: evt.Type, ReportedBy: ReportedByBridge, + RetryNum: retryNum, } if evt.Type == event.EventMessage { checkpoint.MessageType = evt.Content.AsMessage().MsgType @@ -90,17 +91,17 @@ func NewMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep, return &checkpoint } -func (as *AppService) SendMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep) { - checkpoint := NewMessageSendCheckpoint(evt, step, StatusSuccesss) +func (as *AppService) SendMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep, retryNum int) { + checkpoint := NewMessageSendCheckpoint(evt, step, StatusSuccesss, retryNum) go checkpoint.Send(as) } -func (as *AppService) SendErrorMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep, err error, permanent bool) { +func (as *AppService) SendErrorMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep, err error, permanent bool, retryNum int) { status := StatusWillRetry if permanent { status = StatusPermFailure } - checkpoint := NewMessageSendCheckpoint(evt, step, status) + checkpoint := NewMessageSendCheckpoint(evt, step, status, retryNum) checkpoint.Info = err.Error() go checkpoint.Send(as) }