Commit Graph

54 Commits

Author SHA1 Message Date
Romain Le Jeune ee4da8a89c GODT-2291: Change gluon store default location from Cache to Data. 2023-01-24 13:35:45 +00:00
James Houlahan c8925cd270 GODT-2223(test): Assert that bad request errors lead to user logout 2023-01-18 14:10:23 +00:00
James Houlahan 03c8c323bc GODT-2251: Store gluon cache in user cache rather than user data 2023-01-16 16:27:41 +01:00
Romain Le Jeune 0580842ad2 GODT-2229: Own the full path for gluon and do not change Database path. 2023-01-12 13:23:09 +00:00
Jakub 715efaa087 Revert "GODT-2229: Allow changing cache folder to a non-empty folder."
This reverts commit b19e16e4b8.
2023-01-11 10:19:38 +01:00
Romain Le Jeune b19e16e4b8 GODT-2229: Allow changing cache folder to a non-empty folder. 2023-01-10 16:40:52 +00:00
Romain Le Jeune 3743e45566 GODT-2221: Set DOH off by default. 2023-01-04 12:08:06 +00:00
Leander Beernaert 6d0a128111 Other: Update copyright year 2023-01-02 11:09:11 +01:00
James Houlahan 1aca2cde71 GODT-2181(test): Refactor integration test setup a bit 2022-12-13 10:28:59 +01:00
Leander Beernaert 6ac8a4c0bc GODT-2160: Ensure we can safely move cache file
It's currently impossible to wait until all SQLite write finish to disk.
This is not guaranteed when closing the ent DB client.

The existing code to move the cache handles the case where the
new location is on a new drive. However, due to the above issue this can
now lead to database corruption.

To avoid database corruption we now use the `os.Rename` function and
prevent moving the cache between drives until a better solution can be
implemented.
2022-11-29 16:33:53 +01:00
James Houlahan e71e56f7fe Other: Ensure context is string in sentry reports 2022-11-29 14:58:29 +00:00
James Houlahan 9f64e8a6fa Other: Wipe vault properly on factory reset
Deleting the file isn't enough because it's still held in memory
and is written back to disk on the next write (SetLastVersion during
bridge teardown).
2022-11-29 09:59:30 +01:00
Leander Beernaert 1c374b59d3 GODT-2160: Prevent double closing of bridge if restart fails
Set imapServer instance to nil once the server is no longer running to
prevent multiple calls to close on shutdown.
2022-11-29 08:38:21 +01:00
James Houlahan ae7ae2886f GODT-2041: Crash after factory reset
I forgot to remove the user from the users map during factory reset.
This meant the (deleted) would attempt to be closed during teardown.
2022-11-28 19:58:10 +01:00
James Houlahan e601245f01 Other(chore): Bump major version to v3 2022-11-23 16:08:27 +01:00
James Houlahan ad1fb47b0d Other: Switch from liteapi to go-proton-api 2022-11-23 15:17:56 +01:00
James Houlahan 57e9310510 Other: Use API call rather than server-specific method in test code 2022-11-22 16:01:01 +01:00
Xavier Michelon e087a7972e
GODT-2003: introduces 3 phases user state (SignedOut/Locked/Connected)
WIP: introduced UserState enum in GUI and implemented logic.
2022-11-16 16:24:55 +01:00
Jakub ae87d7b236 GODT-1913: pass reporter to gluon, limit restarts, add crash handlers. 2022-11-16 13:48:31 +01:00
James Houlahan 59278913ca GODT-2037: Handle and log API refresh event 2022-11-16 13:48:31 +01:00
James Houlahan d093488522 GODT-1978: Auto-updates 2022-11-16 13:48:30 +01:00
James Houlahan d066e32719 GODT-1986: Handle case where an address has no decryption entities
It's possible (but very rare, I don't think proton still allows it)
for an address to have no keys. If we try to load the address keyring
for such an address, this change logs a warning that no decryption
entities were found in the unlocked keyring.

It bumps liteapi to a version that does not return an error when no
keys could be unlocked.
2022-11-16 13:48:30 +01:00
James Houlahan 5a4f733518 Other(refactor): Remove unused safe types 2022-11-16 13:48:30 +01:00
James Houlahan 8749d5dc7d Other(refactor): Remove always-nil return value of (*Bridge).Close 2022-11-16 13:48:30 +01:00
James Houlahan 5adbf74cbe Other(test): Ensure calls are protected by mutex 2022-11-16 13:48:30 +01:00
James Houlahan 6fbf6d90dc Other: Fix IMAP/SMTP/Login leaks/race conditions
Depending on the timing of bridge closure, it was possible for the 
IMAP/SMTP servers to not have started serving yet. By grouping this in
a cancelable goroutine group (*xsync.Group), we mitigate this issue.

Further, depending on internet disconnection timing during user login,
it was possible for a user to be improperly logged in. This change 
fixes this and adds test coverage for it.

Lastly, depending on timing, certain background tasks (updates check,
connectivity ping) could be improperly started or closed. This change
groups them in the *xsync.Group as well to be closed properly.
2022-11-16 13:48:30 +01:00
James Houlahan c4343e0124 Other: Bump liteapi and clean up tests a bit 2022-11-16 13:48:30 +01:00
James Houlahan bf29090ffa Other: Fix log message, rename test fixture 2022-11-16 12:26:09 +01:00
Leander Beernaert 7c62312220 Other: Fix all linter errors 2022-11-16 12:26:09 +01:00
Leander Beernaert e10cd2a3ed GODT-1901: Allow to set IMAP SSL from UI 2022-11-16 12:26:09 +01:00
James Houlahan fd63611b41 Other: Safer user types 2022-11-16 12:26:09 +01:00
James Houlahan 2450511555 Other: Put back split login process in backend 2022-11-16 12:26:09 +01:00
James Houlahan 1c922ca083 Other: Fix flaky cookies test 2022-11-16 12:26:09 +01:00
James Houlahan 14a578f319 Other: Linter fixes after bumping linter version 2022-11-16 12:26:09 +01:00
James Houlahan 0de30afba1 Other: Better cookies test 2022-11-16 12:26:09 +01:00
Leander Beernaert f01c70e506 GODT-1816: Connect Gluon Logs to bridge Logs
Ensure the IMAP commands and SMTP commands are logged to trace channels
with an entry so they are recognizable as before.
2022-11-16 12:26:09 +01:00
James Houlahan 509a767e50 GODT-1657: More stable sync, with some tests 2022-11-16 12:26:09 +01:00
James Houlahan 9d69a2e565 GODT-1657: Stable sync (still needs more tests) 2022-11-16 12:26:09 +01:00
James Houlahan cce372fc50 GODT-1650: Test of end-to-end send with attachments (internal) 2022-11-16 12:26:09 +01:00
James Houlahan ba9368426c GODT-1650: Send extras 2022-11-16 12:26:09 +01:00
Romain LE JEUNE b536b8707e GODT-1609: use byte array for password 2022-11-16 12:26:09 +01:00
James Houlahan e9672e6bba GODT-1815: Combined/Split mode 2022-11-16 12:26:08 +01:00
James Houlahan 9670e29d9f GODT-1815: Start with missing gluon files 2022-11-16 12:26:08 +01:00
James Houlahan 612fb7ad7b GODT-1815: Start without internet, load users later 2022-11-16 12:26:08 +01:00
James Houlahan 39433fe707 GODT-1779: Remove go-imap 2022-11-16 12:26:08 +01:00
Michal Horejsek 4d2baa6b85 Renamed bridge to general users and keep bridge only for bridge stuff 2020-05-25 09:02:34 +02:00
James Houlahan 522cadb8b1 refactor: dedicated constants package, no explicit bridge version 2020-04-28 12:39:05 +00:00
James Houlahan e95aece6d3 refactor: don't pass client directly to store syncer 2020-04-21 08:36:39 +00:00
Jakub 80f4e1e346 Fixing unit tests for client manager.
* [x] pmapi: refresh auth uid won't change
* [x] bridge tests:
    * update mocks
    * delete auth when FinishLogin fails
    * check for mailbox password
    * add `gomock.InOrder` for better test control
* [x] fix linter issues except TODOs
* [x] make rootScheme unexported
* [x] store tests: update mocks
2020-04-21 08:36:39 +00:00
James Houlahan b01be382fc refactor: GetBridgeAuthChannel --> GetAuthUpdateChannel 2020-04-21 08:36:38 +00:00