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.
This fixes various race conditions and leaks related to the user's sync
and API event stream. It was possible for a sync/stream to begin after a
user was already closed; this change prevents that by managing the
goroutines related to sync/stream within cancellable groups.
Add missing Close calls.
Properly handle nil channel for `user.startSync`.
This patch also updated liteapi and Gluon to latest master and dev
version respectively.
There was a race condition internal to the go-smtp library.
In order to fix it, a version bump was necessary.
However, this significantly changed the library interface.
We need to unlock the user keyring anyway to unlock the address keyring,
so we should just return it instead of re-unlocking the user keyring
when sending a message.
When an IMAP client appends a message to a mailbox, it can specify
which flags it wants the appended message to have. We need to handle
these in a proton-specific way; not-seen messages need to be imported
with the Unread bool set to true, and flagged messages need to
additionally be imported with the Starred label.
Other: renaming of bridge-gui.
WIP: locate bridge exe.
WIP: bridge process launch.
WIP: cleaner closure of bridge.
WIP: grpcClient connection retries.
WIP: clean exit when bridge process is killed.
Fixed issues from MR review. [skip-ci].
WIP: Fixed gRPC case in CMakelists.txt [skip-ci]
It caused issues on Debian.
WIP: update gRPC/protobuf and tweaked CMakeLists.txt. [skip-ci]
WIP: Fixed a bug where splash screen could not be dismissed. [skip-ci]
WIP: updates
WIP: cache on disk and autostart.
WIP: mail, keychain and more.
WIP: updated grpc version in go mod file.
WIP: user list.
WIP: RPC service placeholder
WIP: test C++ RPC client skeleton.
Other: missing license script update.
WIP: use Qt test framework.
WIP: test for app and login calls.
WIP: test for update & cache on disk calls.
WIP: tests for mail settings calls.
WIP: all client tests.
WIP: linter fixes.
WIP: fix missing license link.
WIP: update dependency_license script for gRPC and protobuf.
WIP: removed unused file.
WIP: app & login event streaming tests.
WIP: update event stream tests.
WIP: completed event streaming tests.
GODT-1554: qt C++ frontend skeleton.
WIP: C++ backend declaration.
wip: started drafting user model.
WIP: users. not functional.
WIP: invokable methods
WIP: Exception class + backend 'injection' into QML.
WIP: switch to VCPKG to ease multi-arch compilation, C++ RPC client skeleton.
WIP: Renaming and reorganisation
WIP:introduced new 'grpc' go frontend.
WIP: Worker & Oveerseer for thread management.
WIP: added log to C++ app.
WIP: event stream architecture on Go side.
WIP: event parsing and streamer stopping.
WIP: Moved grpc to frontend subfolder + use vcpkg for gRPC and protobuf.
WIP: windows building ok
WIP: wired a few messages
WIP: more wiring.
WIP: Fixed imports after rebase on top of devel.
WIP: wired some bool and string properties.
WIP: more properties.
WIP: wired cache on disk stuff
WIP: connect event watcher.
WIP: login
WIP: fix showSplashScreen
WIP: Wired login calls.
WIP: user list.
WIP: Refactored main().
WIP: User retrieval .
WIP: no shared pointer in user model.
WIP: fixed user count.
WIP: cached goos.
WIP: Wired autostart
WIP: beta channel toggle wired.
WIP: User removal
WIP: wired theme
WIP: implemented configure apple mail.
WIP: split mode.
WIP: fixed user updates.
WIP: fixed Quit from tray icon
WIP: wired CurrentEmailClient
WIP: wired UseSSLForSMTP
WIP: wired change ports .
WIP: wired DoH. .
WIP: wired keychain calls.
WIP: wired autoupdate option.
WIP: QML Backend clean-up.
WIP: cleanup.
WIP: moved user related files in subfolder. .
WIP: User are managed using smart pointers.
WIP: cleanup.
WIP: more cleanup.
WIP: mail events forwarding
WIP: code inspection tweaks from CLion.
WIP: moved QML, cleanup, and missing copyright notices.
WIP: Backend is not QMLBackend.
Other: fixed issues reported by Leander. [skip ci]
WIP: updates
WIP: cache on disk and autostart.
WIP: mail, keychain and more.
WIP: updated grpc version in go mod file.
WIP: user list.
WIP: RPC service placeholder
WIP: test C++ RPC client skeleton.
Other: missing license script update.
WIP: use Qt test framework.
WIP: test for app and login calls.
WIP: test for update & cache on disk calls.
WIP: tests for mail settings calls.
WIP: all client tests.
WIP: linter fixes.
WIP: fix missing license link.
WIP: update dependency_license script for gRPC and protobuf.
WIP: removed unused file.
WIP: app & login event streaming tests.
WIP: update event stream tests.
WIP: completed event streaming tests.