Damir Jelić
cb12bc1584
base: Use Instant instead of SystemTime for wasm compatibility
2021-01-22 18:07:34 +01:00
Damir Jelić
b83399ba14
base: Fix a typo take two
2021-01-22 16:07:24 +01:00
Damir Jelić
5daa22250f
base: Fix a typo
2021-01-22 15:45:14 +01:00
Damir Jelić
c034de470b
base: Allow using the same sled database for the state and cryptostore
2021-01-22 11:33:06 +01:00
Damir Jelić
cf07fc8e8e
Merge branch 'master' into new-state-store
2021-01-21 19:58:40 +01:00
Tilo Spannagel
7b8d2b5319
Add support for ruma feature flag `markdown`
...
Signed-off-by: Tilo Spannagel <development@tilosp.de>
2021-01-21 18:22:17 +01:00
Damir Jelić
7d45417a17
base: Add a memory-only store
2021-01-21 16:31:33 +01:00
Damir Jelić
66ecb4c1e6
base: Store room infos for left and invited rooms
2021-01-21 15:12:13 +01:00
Damir Jelić
ae0d810fb0
base: Avoid the Trait is not general enough issue again
2021-01-21 14:03:41 +01:00
Damir Jelić
303ac513e5
base: Remove some stale files from the old state store
2021-01-21 12:13:46 +01:00
Damir Jelić
de4df4e50a
base: Re-introduce a state store trait.
2021-01-21 12:08:16 +01:00
Damir Jelić
2bcc0afb91
base: Use a CSPRNG to get our randomness and handle randomness errors
...
Since we're going to encrypt a lot of small objects separately we're
gonna need a lot of random nonces, it doesn't help that our nonces are
24 bytes long either. So use a CSPRNG to random data faster, also don't
panic if there wasn't enough randomness.
2021-01-20 16:59:46 +01:00
Damir Jelić
0a6b0e5804
base: Properly handle crypto related errors in the sled store
2021-01-20 16:27:59 +01:00
Damir Jelić
4a06c9e82d
base: Initial support for an encrypted sled store.
2021-01-20 15:57:23 +01:00
Damir Jelić
28cc5acc87
base: Add a store key struct
2021-01-20 14:10:57 +01:00
Damir Jelić
2b5ff82414
base: Move the sled store into a subfolder
2021-01-20 10:25:54 +01:00
Damir Jelić
3472c99c27
base: Split out the store module into smaller submodules
2021-01-19 16:48:37 +01:00
Damir Jelić
17f3dbb0a0
crypto: Return a deserialized ToDevice struct when we receive a sync
2021-01-19 12:59:31 +01:00
Damir Jelić
6a30514d40
base: Move the deserialized responses types into the common crate
2021-01-19 12:30:58 +01:00
Damir Jelić
b8fcc003ea
base: Finish up the error handling for the new stores
2021-01-19 12:03:46 +01:00
Damir Jelić
d07063af2b
base: Add some error handling to the state store
2021-01-18 18:07:53 +01:00
Damir Jelić
1746690eda
crypto: Add a sled cryptostore
2021-01-18 13:38:00 +01:00
Amanda Graven
aadbc14dc6
Add accessor for room member avatar urls
2021-01-15 18:59:51 +01:00
Damir Jelić
bab8fde0ac
crypto: Change the way we share group sessions
...
This patch removes the need to ask if a group session needs to be shared
it also adapts the method so it re-shares sessions if new users or
devices join the group.
2021-01-15 18:04:45 +01:00
Damir Jelić
40c53f09ba
base: Handle room avatar updates
2021-01-15 09:57:59 +01:00
Damir Jelić
508bf3b23d
base: Include the to-device events when returning the sync response
2021-01-14 13:35:21 +01:00
Amanda Graven
9efece4f7a
Remove unnecessary clones
2021-01-11 14:17:17 +01:00
Damir Jelić
077c20ed74
base: Really fix the holding on across await points issue for room names
2021-01-11 13:40:35 +01:00
Amanda Graven
6c4888a123
Don't hold lock during await in name calculation
2021-01-11 13:18:26 +01:00
Damir Jelić
643526987f
Merge branch 'master' into new-state-store
2021-01-05 21:40:39 +01:00
Damir Jelić
b311a31c9e
matrix-sdk: Bump our tokio and reqwest versions.
2021-01-05 21:39:52 +01:00
Damir Jelić
b8c6c2e07c
rooms: Use unstable member sorting for the room name calculation
2021-01-05 20:26:27 +01:00
Damir Jelić
cdc93ddd0f
base: Refactor and fix the room name calculation for non-stripped rooms
2021-01-05 20:09:06 +01:00
Damir Jelić
ccd8a4d602
Merge branch 'master' into new-state-store
2021-01-05 17:03:24 +01:00
Damir Jelić
4f2cad8f62
matrix-sdk: Bump our versions
2021-01-05 11:23:18 +01:00
Damir Jelić
f3acf582ec
base: Fix a typo.
2021-01-04 18:34:23 +01:00
Damir Jelić
22b13c369b
base: Add a method to check if the room is public.
2021-01-04 18:26:53 +01:00
Damir Jelić
c6a80dc921
Merge branch 'master' into new-state-store
2021-01-04 17:34:33 +01:00
Damir Jelić
60950044f2
matrix-sdk: Bump our deps.
2021-01-04 17:22:09 +01:00
Damir Jelić
4c6c1d2107
matrix-sdk: Get rid of the common macros crate
...
This crate was used to support different trait bounds on WASM vs other
targets, since we only define async traits in a couple of places having
a whole crate to support this feels a bit excessive.
This patch defines a target specific super trait instead, this lowers
the compile time a couple of seconds.
2021-01-04 16:34:14 +01:00
Damir Jelić
2e3b6fba7d
common: Use the re-exported versions of js_int and assign
2021-01-04 15:29:49 +01:00
Damir Jelić
e9d22c95a4
base: Handle the join rules, history visibility and guest access
2021-01-04 15:12:02 +01:00
Damir Jelić
e66add476f
base: Store the room creation content
...
The power level depends on a bunch of stuff, if no power level event
exists the default for a room creator is 100 while for every other user
is 0, thus we need to know the room creator.
2021-01-04 12:32:54 +01:00
Damir Jelić
4afc6b2567
base: Don't mark all the room methods as public.
2021-01-04 12:26:13 +01:00
Damir Jelić
83b850d8f9
base: Add the last missing accessors and reorder them.
2021-01-04 10:15:02 +01:00
Damir Jelić
e7e1d2d3eb
base: Add more accessors for the room info.
2021-01-04 10:03:16 +01:00
Damir Jelić
74998c8dd8
rooms: Add a method to get the room topic.
2021-01-03 16:52:47 +01:00
Damir Jelić
0edef38eb7
base: Fix some clippy warnings
2021-01-02 13:54:47 +01:00
Damir Jelić
f9f176ccfd
base: Rename the state store example.
2021-01-02 13:04:05 +01:00
Damir Jelić
16f94ecc1d
base: Improve the state store example so it can run non-interactively
2021-01-02 12:58:52 +01:00
Damir Jelić
b995492457
base: Add a method to get either the display name or the localpart of an user
2021-01-01 14:59:30 +01:00
Damir Jelić
0c81f3d9ae
base: Add a method to get all joined members.
2021-01-01 14:58:44 +01:00
Damir Jelić
c804104293
client: Add the get_x_room methods back.
2021-01-01 14:57:39 +01:00
Damir Jelić
0952205e1e
base: Restore rooms and the sync token when we restore the login.
2021-01-01 14:56:06 +01:00
Damir Jelić
4d7da05b90
base: Store the sync token.
2021-01-01 14:54:52 +01:00
Damir Jelić
d121a856c4
base: Remember the direct target for rooms.
2021-01-01 14:31:50 +01:00
Damir Jelić
2384069641
base: Add the normalized_power_level method back to the member.
2020-12-24 17:14:46 +01:00
Damir Jelić
a29d2e39c4
base: Save profiles independently from membership events.
...
The sender controls the content of the membership event, since the
content contains profile data (display names, avatar urls) a sender
might incorrectly change the profile of another member inside the room.
This is allowed in the case where the sender is kicking or inviting the
member, this it will self heal once the member re-joins. Still, to
mitigate this a bit we're storing the profile data when we know that the
member sent out the content on their own.
2020-12-24 16:35:32 +01:00
Damir Jelić
e2225b2700
base: Add a state store inspector to the examples.
2020-12-23 14:53:14 +01:00
Damir Jelić
8857335a7d
Merge branch 'crypto-improvements' into new-state-store
2020-12-22 16:18:46 +01:00
Damir Jelić
1313c3da3c
client: Restore the membership based get room methods.
2020-12-22 10:47:21 +01:00
Damir Jelić
1bfb2d08a6
base: Remove the obsolete models files.
2020-12-22 10:14:16 +01:00
Damir Jelić
c5709d23a5
base: Implement the last missing thing to get the emitter working again.
2020-12-22 10:09:59 +01:00
Damir Jelić
e25441babc
base: Create a store wrapp and move store methods under it.
2020-12-20 16:27:29 +01:00
Damir Jelić
a370eb1e37
base: Re-introduce the event emitter.
2020-12-19 20:20:39 +01:00
Damir Jelić
f9af880176
base: Upcast the bare rooms based on the membership state
2020-12-19 16:37:35 +01:00
Damir Jelić
7abf0c8805
store: Honor state keys for the state storage.
2020-12-19 14:44:46 +01:00
Alex Black
d4327d4cfc
EventEmitter: add VoIP event support (m.call.* event types)
...
Signed-off-by: Alex Black <blacka101@gmail.com>
2020-12-17 00:19:37 +11:00
Damir Jelić
b05fed5a3b
matrix-sdk: Fix our tests now that the state store is roughly done.
2020-12-15 10:23:31 +01:00
Damir Jelić
b4edaffbe1
base: Rename the method to get joined/invited members.
2020-12-14 15:54:49 +01:00
Damir Jelić
45db95742a
base: Add a common room info struct for normal and stripped rooms.
2020-12-14 14:53:50 +01:00
Damir Jelić
3a76cf7692
base: Restore getting the user ids when receiving a sync.
2020-12-14 13:48:29 +01:00
Damir Jelić
05b1384d16
base: Upcast member events so the state key is an user id.
2020-12-12 21:44:53 +01:00
Damir Jelić
e245599913
base: Save the stripped state of invited rooms.
2020-12-11 21:17:27 +01:00
Damir Jelić
b16e3b6bd8
base: Rename joined rooms as they are used for left rooms as well.
2020-12-11 16:42:38 +01:00
Damir Jelić
6f35a05311
matrix-sdk: Allow users to get a reference to the store.
2020-12-11 09:52:39 +01:00
Damir Jelić
a4e7dc1042
base: Correctly store the state events of rooms.
2020-12-10 10:01:53 +01:00
Damir Jelić
ae33904a93
base: Rename some structs.
2020-12-09 20:22:11 +01:00
Damir Jelić
a08f857e49
base: Split out the new room and member structs from the state store
2020-12-09 18:12:51 +01:00
Damir Jelić
a80aa4c2ad
base: Fix some lint issues.
2020-12-08 12:11:55 +01:00
Damir Jelić
27d9cf04de
base: Remove a flaky state store test.
...
The state store is undergoing a rewrite and this test fails more often
than i would like making our CI seem flaky.
Remove the test since it's going to become obsolete anyways.
2020-12-08 11:52:21 +01:00
Damir Jelić
6d2d48a35a
base: WIP inivted rooms handling.
2020-12-08 09:52:27 +01:00
Damir Jelić
5c608ed474
base: Store main account data.
2020-12-07 16:35:00 +01:00
Damir Jelić
e38f0762ee
base: Store the notification counts.
2020-12-07 15:11:18 +01:00
Damir Jelić
ab832da03e
base: Deserialize ephemeral events.
2020-12-07 14:34:18 +01:00
Damir Jelić
de61798d78
base: Store room account data.
2020-12-07 14:17:18 +01:00
Damir Jelić
b36d907fac
base: Add the power level event to the room member.
2020-12-06 18:11:32 +01:00
Damir Jelić
8a842ec0a5
base: Log deserialization errors for decrypted events.
2020-12-04 15:13:37 +01:00
Damir Jelić
27b5bf3ddd
base: Add initial left rooms handling.
2020-12-01 10:23:28 +01:00
Damir Jelić
0e563a9a81
base: Refactor out the room state/timeline handling.
2020-11-30 17:25:29 +01:00
Damir Jelić
7dd834a214
base: Add some more sync response fields.
2020-11-30 15:50:47 +01:00
Damir Jelić
b4d0179c18
base: Fetch the member presence when we fetch members.
2020-11-30 14:55:18 +01:00
Damir Jelić
38048a2043
base: Add presence storing.
2020-11-30 14:42:08 +01:00
Damir Jelić
ac2d90e92a
client: Apply room changes when fetching members.
2020-11-30 09:19:11 +01:00
Damir Jelić
baa5bed1c9
Merge branch 'crypto-improvements' into new-state-store
2020-11-26 14:00:18 +01:00
Damir Jelić
7ec5a5ad1a
Merge branch 'master' into crypto-improvements
2020-11-26 13:24:57 +01:00
Damir Jelić
de5f5cf00a
base: A better log message for unhandled member events.
2020-11-24 10:58:33 +01:00
Damir Jelić
35069c5252
base: Turn the get member method async.
2020-11-24 10:58:14 +01:00
Damir Jelić
dadcc68336
base: Use the room summary for the display name calculation if we have one.
2020-11-24 10:57:21 +01:00
Damir Jelić
64fff933af
base: Store the room topic with the room summary.
2020-11-24 10:56:43 +01:00