From 4d1134a2db4a922876222737298ce9a88e6397ad Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Mon, 18 Jan 2021 22:28:09 +0100 Subject: [PATCH] fix: Logout after failed init --- lib/src/client.dart | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/lib/src/client.dart b/lib/src/client.dart index 34354523..2188ab27 100644 --- a/lib/src/client.dart +++ b/lib/src/client.dart @@ -351,17 +351,12 @@ class Client extends MatrixApi { response.userId == null) { throw Exception('Registered but token, device ID or user ID is null.'); } - try { - await init( - newToken: response.accessToken, - newUserID: response.userId, - newHomeserver: homeserver, - newDeviceName: initialDeviceDisplayName ?? '', - newDeviceID: response.deviceId); - } catch (_) { - await logout().catchError((_) => null); - rethrow; - } + await init( + newToken: response.accessToken, + newUserID: response.userId, + newHomeserver: homeserver, + newDeviceName: initialDeviceDisplayName ?? '', + newDeviceID: response.deviceId); return response; } @@ -401,19 +396,14 @@ class Client extends MatrixApi { loginResp.userId == null) { throw Exception('Registered but token, device ID or user ID is null.'); } - try { - await init( - newToken: loginResp.accessToken, - newUserID: loginResp.userId, - newHomeserver: homeserver, - newDeviceName: initialDeviceDisplayName ?? '', - newDeviceID: loginResp.deviceId, - ); - return loginResp; - } catch (_) { - await logout().catchError((_) => null); - rethrow; - } + await init( + newToken: loginResp.accessToken, + newUserID: loginResp.userId, + newHomeserver: homeserver, + newDeviceName: initialDeviceDisplayName ?? '', + newDeviceID: loginResp.deviceId, + ); + return loginResp; } /// Sends a logout command to the homeserver and clears all local data, @@ -843,7 +833,7 @@ class Client extends MatrixApi { return _sync(); } catch (e, s) { Logs().e('Initialization failed', e, s); - clear(); + await logout().catchError((_) => null); onLoginStateChanged.addError(e, s); _initLock = false; rethrow;