diff --git a/auth/callback.go b/auth/callback.go index 70b9c2843406205198cdb439666741b193c52518..6da4fd2fbd3ad612a7942cb2f7aac11337d6ee74 100644 --- a/auth/callback.go +++ b/auth/callback.go @@ -348,7 +348,7 @@ func (m *Manager) handleRequest(cmixMsg format.Message, var rndNum id.Round if autoConfirm || resetSession { // Call ConfirmRequestAuth to send confirmation - rndNum, err = m.ConfirmRequestAuth(c) + rndNum, err = m.confirmRequestAuth(c, true) if err != nil { jww.ERROR.Printf("Could not ConfirmRequestAuth: %+v", err) diff --git a/auth/confirm.go b/auth/confirm.go index 28a5292aec2ad83f888c35e1f19feb32a55acea7..40ddc527dc1f43da6b5f5071d0670d1702369d16 100644 --- a/auth/confirm.go +++ b/auth/confirm.go @@ -32,6 +32,11 @@ func (m *Manager) ConfirmRequestAuth(partner contact.Contact) (id.Round, error) return 0, errors.New("Cannot confirm authenticated message " + "when the network is not healthy") } + return m.confirmRequestAuth(partner, false) +} + +func (m *Manager) confirmRequestAuth(partner contact.Contact, critical bool) (id.Round, + error) { // Cannot confirm already established channels if _, err := m.storage.E2e().GetPartner(partner.ID); err == nil { @@ -156,15 +161,28 @@ func (m *Manager) ConfirmRequestAuth(partner contact.Contact) (id.Round, error) param.IdentityPreimage = preimg param.DebugTag = "auth.Confirm" /*send message*/ + if critical { + m.storage.GetCriticalRawMessages().AddProcessing(cmixMsg, + partner.ID) + } round, _, err := m.net.SendCMIX(cmixMsg, partner.ID, param) if err != nil { // if the send fails just set it to failed, it will but automatically // retried jww.INFO.Printf("Auth Confirm with %s (msgDigest: %s) failed "+ "to transmit: %+v", partner.ID, cmixMsg.Digest(), err) + if critical { + m.storage.GetCriticalRawMessages().Failed(cmixMsg, + partner.ID) + } return 0, errors.WithMessage(err, "Auth Confirm Failed to transmit") } + if critical { + m.storage.GetCriticalRawMessages().Succeeded(cmixMsg, + partner.ID) + } + em := fmt.Sprintf("Confirm Request with %s (msgDigest: %s) sent on round %d", partner.ID, cmixMsg.Digest(), round) jww.INFO.Print(em)