Commit Graph

1750 Commits (df883d33280a7c1b72686d1519294fa78de26cbb)

Author SHA1 Message Date
Damir Jelić 5df9ae350c client: Require a proper Url to create a client 2021-05-06 09:58:21 +02:00
Damir Jelić d90e112c06 Merge branch 'encryption-info-v2' 2021-04-29 16:54:14 +02:00
poljar 6048a1a507
crypto: Fix a typo
Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>
2021-04-29 15:34:53 +02:00
poljar 233c4355d8
crypto: Use encryption info in the docstring for the type of the same name
Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>
2021-04-29 15:34:39 +02:00
poljar e71cabc8f0
crypto: Fix a typo.
Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>
2021-04-29 15:34:04 +02:00
poljar 22b333a0d9
Use as_str() to get the string event type.
Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>
2021-04-29 15:33:45 +02:00
Damir Jelić c720abfa87 base: Fix the wasm example 2021-04-29 12:46:21 +02:00
Damir Jelić 5d73dd7da7 room: Add methods to get members that don't do any requests
Our main methods to get members nowadays ensure that the member list is
synchronized with the server. This is nice and convenient but might not
be desirable for a couple of reasons.

Firstly it might be costly to fetch all members at once depending on
what the client is doing and the number of rooms and secondly some
clients might have a hybrid setup where not everything is running on a
tokio thread, sending out requests is only possible on a tokio thread.
2021-04-29 12:38:07 +02:00
Damir Jelić 5cf0fd2b85 room: Override the method to get a specific room member 2021-04-29 11:08:09 +02:00
Damir Jelić b3cf2c5899 base: Fix a clippy warning if the encryption feature is turned off 2021-04-29 10:46:47 +02:00
Damir Jelić 4fc21a8860 base: Store the raw versions of events in the state store
This patch changes the way we store and load the majority of events that
are in the state store. This is done so custom fields in the event
aren't lost since a deserialize/serialize cycle removes all the unknown
fields from the event.
2021-04-29 10:35:54 +02:00
Damir Jelić cff90b1480 matrix-sdk: Add encryption info to our sync events. 2021-04-29 10:35:54 +02:00
Damir Jelić 5ed0c7a7b3 Merge branch 'notifications' 2021-04-28 10:30:06 +02:00
Kévin Commaille 0e2017e537
matrix-sdk: Fix clippy warning 2021-04-27 14:37:43 +02:00
Kévin Commaille 1cc4f953b3
matrix-sdk: Small fixes 2021-04-27 13:47:07 +02:00
Kévin Commaille f8bc9f3dc9
matrix-sdk: handle overflow in active_members_count 2021-04-27 13:47:06 +02:00
Kévin Commaille 24e96df7ea
matrix-sdk: Propagate store error in get_push_rules 2021-04-27 13:47:06 +02:00
Kévin Commaille c569436ba4
matrix-sdk: Add StateChanges::add_notification 2021-04-27 13:47:06 +02:00
Kévin Commaille f6c4fdde7d
matrix-sdk: Implement EncodeKey for EventType 2021-04-27 13:47:06 +02:00
Kévin Commaille 3f2c5d22b6
matrix-sdk: Get notifications locally on sync 2021-04-27 13:46:56 +02:00
Jonas Platte bd02ff901f Avoid needless copies by changing http::Request<Vec<u8>> to http::Request<Bytes> 2021-04-26 17:31:27 +02:00
Johannes Becker 242d46c9a1 matrix-sdk: require_auth_for_profile_requests feature and force_auth request config
forces authentication for `get_avatar` which was previously done with
the unstable-synapse-quirks feature in ruma
2021-04-26 17:31:25 +02:00
Johannes Becker 5c882f89e8 chore: bump ruma 2021-04-26 08:05:58 +02:00
Damir Jelić ab180362c9 Merge branch 'json-sync-builder' 2021-04-23 15:38:00 +02:00
Johannes Becker 28ddb9b70b ci: clippy check without default features 2021-04-23 10:42:12 +02:00
Johannes Becker 910a45b3d5 chore: cleanup clippy warnings 2021-04-23 10:38:49 +02:00
Damir Jelić a1c0acbd0c test: Add a method to build a sync response as a JsonValue 2021-04-21 16:12:05 +02:00
Damir Jelić a7c2a645aa rooms: Override the joined_members() method so we return the correct RoomMember 2021-04-21 15:47:44 +02:00
Damir Jelić 2a5ede9e1a client: Better docs for the get_or_upload_filter() method 2021-04-21 15:08:36 +02:00
Damir Jelić 324a0aafca Merge branch 'key-share-improvements' 2021-04-21 13:47:02 +02:00
Damir Jelić bfc7434f7e crypto: Move the outbound session filter logic into the group session cache 2021-04-20 13:35:47 +02:00
poljar e15f7264dc
crypto: Don't borrow inside a format unnecessarily
Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>
2021-04-20 12:27:56 +02:00
Damir Jelić 4a7be13961 crypto: Only send out automatic key requests if we have a verified device
Sending out automatic key requests is a bit spammy for new logins,
they'll likely have many undecryptable events upon an initial sync.

It's unlikely that anyone will respond to such a key request since keys are
shared only with verified devices between devices of the same user or if
the key owner knows that the device should have received the key.

Upon initial sync it's unlikely that we have been verified and the key
owner likely did not intend to send us the key since we just created the
new device.
2021-04-20 11:47:11 +02:00
Damir Jelić 65d84c111b Merge branch 'exhaustive-sync-events-conv' 2021-04-19 15:05:52 +02:00
Damir Jelić 78b7dcac61 crypto: Add a public method to request and re-request keys. 2021-04-19 15:00:21 +02:00
Jonas Platte 796354ce5d
Ensure exhaustiveness for sync_events::Response destructuring
So the SDKs own SyncResponse type doesn't get out-of-sync.
2021-04-19 13:42:16 +02:00
Johannes Becker 95421f1713 matrix-sdk!: send_request returns Bytes
Prevents unnecessary copy
2021-04-19 12:26:10 +02:00
Jonas Platte 1578067498
Only activate the client parts of ruma-client-api
… to reduce compile times.
2021-04-19 12:23:09 +02:00
Jonas Platte 401cf282a7
Upgrade ruma dependency 2021-04-19 12:16:13 +02:00
Johannes Becker 3414a59b91 chore: bump ruma 2021-04-16 12:45:21 +02:00
Damir Jelić 8c007510cd crypto: Only load the outgoing key requests when we want to send them out 2021-04-15 19:40:24 +02:00
Damir Jelić f9d290746c crypto: Load unsent outgoing key requests when we open a store 2021-04-15 17:48:37 +02:00
Damir Jelić d4c56cc5b3 crypto: Refactor the outobund group session storing
This introduces a group session cache struct that can be shared between
components that need to access the currently active group session.
2021-04-15 15:19:21 +02:00
Damir Jelić 9e817a623b crypto: Fix an invalid assert in the crypto bench 2021-04-15 15:01:56 +02:00
Damir Jelić 02331fa325 crypto: Add specialized methods to store outgoing key requests 2021-04-15 13:28:50 +02:00
Damir Jelić 5637ca3080 crypto: Simplify the should_share_session method 2021-04-15 13:28:50 +02:00
Damir Jelić 975f9a0b41 crypto: Improve the way we decide if we honor room key requests
This improves two things, use the correct outbound session to check if
the session should be shared.

Check first if the session has been shared if there isn't a session or
it hasn't been shared check if the request is comming from our own user.
2021-04-14 14:30:53 +02:00
Damir Jelić 4713af6aac crypto: Fix a typo 2021-04-14 11:14:59 +02:00
Damir Jelić ba81c2460c crypto: Ignore key requests from ourselves 2021-04-13 17:17:09 +02:00
Damir Jelić 5132971558 crypto: Add a progress listener for key imports 2021-04-13 12:47:22 +02:00