Client worker/websocket
Closes #30 (closed)
TODO:
-
Load root certificate. -
Decide whether to stay with rustls or move to OpenSSL. Actix allows both OpenSSL gives an immediate segfault, nevermind. Let's avoid more C code :'-)
-
-
WebSocket things -
Make sure we're not doing too much socket work on the main thread. -
Mostly, the decrypt with libsignal-protocol-rs should be called on a thread pool, because it happens synchronously and loads data from storage.#85 (closed)
-
-
Dispatch of password towards socket is dirty. This needs some re-engineering, maybe should be postponed to %"v0.7.0: cleaned and refactored"/another issue. -
When everything is more or less ready, make sure Cargo.lock doesn't experience a very hectic life, squash it a bit. -
Especially squash all "Update libsignal-protocol-rs" commits into "Add libsignal-protocol and libsignal-service git versions". -
Get rid of the git-versions of libsignal-protocol, especially all the branches.
-
-
This MR possibly imports AGPLv3+ code. Fix the LICENSE statements; we can combine Whisperfish 0.5 GPLv3 code + libsignal-service-rs AGPLv3+ code into Whisperfish 0.6, I'd think. -
Handle all incoming message types -
DataMessage with attachments -
Download the attachments -
Decrypt attachments
-
-
Group messages -
Wtf is group Delivery
message? -
Receipts -
Synchronize requestpostponed #83 (closed) -
Additional synchronize responses, which would start work towards #77.Postponed to #83 (closed) and #77.
-
-
Emit signals to QML (cfr. https://gitlab.com/rubdos/whisperfish/-/merge_requests/27#note_377865196): The Go code emits the signals
c.MessageReceived(sess.ID, message.ID) c.NotifyMessage(sess.ID, sess.Source, sess.Message, sess.IsGroup)
-
Make sure that the GUI actually updates !30 (merged)
-
These are things I note down while receiving messages from all over the place:
-
Where should read receipts be handled? Currently it panics, because SessionCipher::open_envelope
doesn't know the type. Check this with the Java and Go versions. -
Fix up tests
Edited by Ruben De Smet