Merge pull request #49 from mautrix/sumner/bri-1078-set-retry_num-when-decryption-takes

checkpoints: expose ability to set retry_num
This commit is contained in:
Sumner Evans 2021-12-06 12:43:50 -07:00 committed by GitHub
commit 22ee22dccd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 6 deletions

View file

@ -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() {

View file

@ -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)
}