From d8ae941736fedc83a03f7f2f1b0b6b25faa50d5a Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Thu, 6 Apr 2017 20:38:12 -0400 Subject: [PATCH] Delete session *before* sending EndSession message Typically we're sending an EndSession message because our session has diverged from the remote party's session. So if we send an EndSession message, but decrypt it with our old out-of-sync session, how can we expect them to be able to decrypt it? Instead, by deleting the existing sessions, we'll fetch a new PreKey, and start fresh with the remote side. // FREEBIE --- Signal/src/Jobs/SessionResetJob.swift | 30 ++++++++++++++++----------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/Signal/src/Jobs/SessionResetJob.swift b/Signal/src/Jobs/SessionResetJob.swift index e85538faf..567ea3ced 100644 --- a/Signal/src/Jobs/SessionResetJob.swift +++ b/Signal/src/Jobs/SessionResetJob.swift @@ -25,20 +25,26 @@ class SessionResetJob: NSObject { func run() { Logger.info("\(TAG) Local user reset session.") - let endSessionMessage = EndSessionMessage(timestamp:NSDate.ows_millisecondTimeStamp(), in: thread) - self.messageSender.send(endSessionMessage, success: { - Logger.info("\(self.TAG) successfully sent EndSession