From a2b60cdd2a1c1704b0446db801d53b6acbb63e24 Mon Sep 17 00:00:00 2001 From: Mikunj Date: Mon, 27 Apr 2020 14:50:23 +1000 Subject: [PATCH 1/2] Remove token data upon registration reset --- app/sql.js | 5 +++++ ts/components/session/RegistrationTabs.tsx | 9 ++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/sql.js b/app/sql.js index 82b70e6cc..ef1aec203 100644 --- a/app/sql.js +++ b/app/sql.js @@ -2762,6 +2762,10 @@ async function removeAll() { db.run('DELETE FROM contactSignedPreKeys;'), db.run('DELETE FROM attachment_downloads;'), db.run('DELETE FROM messages_fts;'), + db.run('DELETE FROM servers;'), + db.run('DELETE FROM lastHashes;'), + db.run('DELETE FROM seenMessages;'), + db.run('DELETE FROM sessions;'), db.run('COMMIT TRANSACTION;'), ]); }); @@ -2784,6 +2788,7 @@ async function removeAllConfiguration() { db.run('DELETE FROM unprocessed;'), db.run('DELETE FROM contactPreKeys;'), db.run('DELETE FROM contactSignedPreKeys;'), + db.run('DELETE FROM servers;'), db.run('COMMIT TRANSACTION;'), ]); }); diff --git a/ts/components/session/RegistrationTabs.tsx b/ts/components/session/RegistrationTabs.tsx index 23840df9a..f4e9859c0 100644 --- a/ts/components/session/RegistrationTabs.tsx +++ b/ts/components/session/RegistrationTabs.tsx @@ -713,13 +713,8 @@ export class RegistrationTabs extends React.Component<{}, State> { } private async resetRegistration() { - await window.Signal.Data.removeAllIdentityKeys(); - await window.Signal.Data.removeAllPrivateConversations(); - window.Whisper.Registration.remove(); - // Do not remove all items since they are only set - // at startup. - window.textsecure.storage.remove('identityKey'); - window.textsecure.storage.remove('secondaryDeviceStatus'); + await window.Signal.Data.removeAll(); + await window.storage.fetch(); window.ConversationController.reset(); await window.ConversationController.load(); window.Whisper.RotateSignedPreKeyListener.stop(window.Whisper.events); From 0e4f9b474386ac37bff940d05b3a1e23d20a335b Mon Sep 17 00:00:00 2001 From: Mikunj Date: Mon, 27 Apr 2020 15:53:49 +1000 Subject: [PATCH 2/2] Remove duplication --- app/sql.js | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/app/sql.js b/app/sql.js index ef1aec203..7b4be3393 100644 --- a/app/sql.js +++ b/app/sql.js @@ -2750,22 +2750,11 @@ async function removeAll() { db.serialize(() => { promise = Promise.all([ db.run('BEGIN TRANSACTION;'), + ...getRemoveConfigurationPromises(), db.run('DELETE FROM conversations;'), - db.run('DELETE FROM identityKeys;'), - db.run('DELETE FROM items;'), db.run('DELETE FROM messages;'), - db.run('DELETE FROM preKeys;'), - db.run('DELETE FROM sessions;'), - db.run('DELETE FROM signedPreKeys;'), - db.run('DELETE FROM unprocessed;'), - db.run('DELETE FROM contactPreKeys;'), - db.run('DELETE FROM contactSignedPreKeys;'), db.run('DELETE FROM attachment_downloads;'), db.run('DELETE FROM messages_fts;'), - db.run('DELETE FROM servers;'), - db.run('DELETE FROM lastHashes;'), - db.run('DELETE FROM seenMessages;'), - db.run('DELETE FROM sessions;'), db.run('COMMIT TRANSACTION;'), ]); }); @@ -2773,6 +2762,22 @@ async function removeAll() { await promise; } +function getRemoveConfigurationPromises() { + return [ + db.run('DELETE FROM identityKeys;'), + db.run('DELETE FROM items;'), + db.run('DELETE FROM preKeys;'), + db.run('DELETE FROM sessions;'), + db.run('DELETE FROM signedPreKeys;'), + db.run('DELETE FROM unprocessed;'), + db.run('DELETE FROM contactPreKeys;'), + db.run('DELETE FROM contactSignedPreKeys;'), + db.run('DELETE FROM servers;'), + db.run('DELETE FROM lastHashes;'), + db.run('DELETE FROM seenMessages;'), + ]; +} + // Anything that isn't user-visible data async function removeAllConfiguration() { let promise; @@ -2780,15 +2785,7 @@ async function removeAllConfiguration() { db.serialize(() => { promise = Promise.all([ db.run('BEGIN TRANSACTION;'), - db.run('DELETE FROM identityKeys;'), - db.run('DELETE FROM items;'), - db.run('DELETE FROM preKeys;'), - db.run('DELETE FROM sessions;'), - db.run('DELETE FROM signedPreKeys;'), - db.run('DELETE FROM unprocessed;'), - db.run('DELETE FROM contactPreKeys;'), - db.run('DELETE FROM contactSignedPreKeys;'), - db.run('DELETE FROM servers;'), + ...getRemoveConfigurationPromises(), db.run('COMMIT TRANSACTION;'), ]); });