mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-29 01:33:10 -06:00
Merge branch 'master' into add-media-config
This commit is contained in:
commit
474bb1e79a
|
|
@ -89,7 +89,7 @@ We are prioritising features that will benefit single-user homeservers first (e.
|
||||||
than features that massive deployments may be interested in (User Directory, OpenID, Guests, Admin APIs, AS API).
|
than features that massive deployments may be interested in (User Directory, OpenID, Guests, Admin APIs, AS API).
|
||||||
This means Dendrite supports amongst others:
|
This means Dendrite supports amongst others:
|
||||||
- Core room functionality (creating rooms, invites, auth rules)
|
- Core room functionality (creating rooms, invites, auth rules)
|
||||||
- Federation in rooms v1-v6
|
- Federation in rooms v1-v7
|
||||||
- Backfilling locally and via federation
|
- Backfilling locally and via federation
|
||||||
- Accounts, Profiles and Devices
|
- Accounts, Profiles and Devices
|
||||||
- Published room lists
|
- Published room lists
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package storage
|
package storage
|
||||||
|
|
|
||||||
|
|
@ -152,219 +152,219 @@ jon Joining room twice is idempotent
|
||||||
syn New room members see their own join event
|
syn New room members see their own join event
|
||||||
v1s New room members see existing users' presence in room initialSync
|
v1s New room members see existing users' presence in room initialSync
|
||||||
syn Existing members see new members' join events
|
syn Existing members see new members' join events
|
||||||
syn Existing members see new members' presence
|
pre Existing members see new members' presence
|
||||||
v1s All room members see all room members' presence in global initialSync
|
v1s All room members see all room members' presence in global initialSync
|
||||||
f,jon Remote users can join room by alias
|
f,jon Remote users can join room by alias
|
||||||
syn New room members see their own join event
|
syn New room members see their own join event
|
||||||
v1s New room members see existing members' presence in room initialSync
|
v1s New room members see existing members' presence in room initialSync
|
||||||
syn Existing members see new members' join events
|
syn Existing members see new members' join events
|
||||||
syn Existing members see new member's presence
|
pre Existing members see new member's presence
|
||||||
v1s New room members see first user's profile information in global initialSync
|
v1s New room members see first user's profile information in global initialSync
|
||||||
v1s New room members see first user's profile information in per-room initialSync
|
v1s New room members see first user's profile information in per-room initialSync
|
||||||
f,jon Remote users may not join unfederated rooms
|
f,jon Remote users may not join unfederated rooms
|
||||||
syn Local room members see posted message events
|
syn Local room members see posted message events
|
||||||
v1s Fetching eventstream a second time doesn't yield the message again
|
v1s Fetching eventstream a second time doesn't yield the message again
|
||||||
syn Local non-members don't see posted message events
|
syn Local non-members don't see posted message events
|
||||||
get Local room members can get room messages
|
get Local room members can get room messages
|
||||||
f,syn Remote room members also see posted message events
|
f,syn Remote room members also see posted message events
|
||||||
f,get Remote room members can get room messages
|
f,get Remote room members can get room messages
|
||||||
get Message history can be paginated
|
get Message history can be paginated
|
||||||
f,get Message history can be paginated over federation
|
f,get Message history can be paginated over federation
|
||||||
eph Ephemeral messages received from clients are correctly expired
|
eph Ephemeral messages received from clients are correctly expired
|
||||||
ali Room aliases can contain Unicode
|
ali Room aliases can contain Unicode
|
||||||
f,ali Remote room alias queries can handle Unicode
|
f,ali Remote room alias queries can handle Unicode
|
||||||
ali Canonical alias can be set
|
ali Canonical alias can be set
|
||||||
ali Canonical alias can include alt_aliases
|
ali Canonical alias can include alt_aliases
|
||||||
ali Regular users can add and delete aliases in the default room configuration
|
ali Regular users can add and delete aliases in the default room configuration
|
||||||
ali Regular users can add and delete aliases when m.room.aliases is restricted
|
ali Regular users can add and delete aliases when m.room.aliases is restricted
|
||||||
ali Deleting a non-existent alias should return a 404
|
ali Deleting a non-existent alias should return a 404
|
||||||
ali Users can't delete other's aliases
|
ali Users can't delete other's aliases
|
||||||
ali Users with sufficient power-level can delete other's aliases
|
ali Users with sufficient power-level can delete other's aliases
|
||||||
ali Can delete canonical alias
|
ali Can delete canonical alias
|
||||||
ali Alias creators can delete alias with no ops
|
ali Alias creators can delete alias with no ops
|
||||||
ali Alias creators can delete canonical alias with no ops
|
ali Alias creators can delete canonical alias with no ops
|
||||||
msc Only room members can list aliases of a room
|
msc Only room members can list aliases of a room
|
||||||
inv Can invite users to invite-only rooms
|
inv Can invite users to invite-only rooms
|
||||||
inv Uninvited users cannot join the room
|
inv Uninvited users cannot join the room
|
||||||
inv Invited user can reject invite
|
inv Invited user can reject invite
|
||||||
f,inv Invited user can reject invite over federation
|
f,inv Invited user can reject invite over federation
|
||||||
f,inv Invited user can reject invite over federation several times
|
f,inv Invited user can reject invite over federation several times
|
||||||
inv Invited user can reject invite for empty room
|
inv Invited user can reject invite for empty room
|
||||||
f,inv Invited user can reject invite over federation for empty room
|
f,inv Invited user can reject invite over federation for empty room
|
||||||
inv Invited user can reject local invite after originator leaves
|
inv Invited user can reject local invite after originator leaves
|
||||||
inv Invited user can see room metadata
|
inv Invited user can see room metadata
|
||||||
f,inv Remote invited user can see room metadata
|
f,inv Remote invited user can see room metadata
|
||||||
inv Users cannot invite themselves to a room
|
inv Users cannot invite themselves to a room
|
||||||
inv Users cannot invite a user that is already in the room
|
inv Users cannot invite a user that is already in the room
|
||||||
ban Banned user is kicked and may not rejoin until unbanned
|
ban Banned user is kicked and may not rejoin until unbanned
|
||||||
f,ban Remote banned user is kicked and may not rejoin until unbanned
|
f,ban Remote banned user is kicked and may not rejoin until unbanned
|
||||||
ban 'ban' event respects room powerlevel
|
ban 'ban' event respects room powerlevel
|
||||||
plv setting 'm.room.name' respects room powerlevel
|
plv setting 'm.room.name' respects room powerlevel
|
||||||
plv setting 'm.room.power_levels' respects room powerlevel (2 subtests)
|
plv setting 'm.room.power_levels' respects room powerlevel (2 subtests)
|
||||||
plv Unprivileged users can set m.room.topic if it only needs level 0
|
plv Unprivileged users can set m.room.topic if it only needs level 0
|
||||||
plv Users cannot set ban powerlevel higher than their own (2 subtests)
|
plv Users cannot set ban powerlevel higher than their own (2 subtests)
|
||||||
plv Users cannot set kick powerlevel higher than their own (2 subtests)
|
plv Users cannot set kick powerlevel higher than their own (2 subtests)
|
||||||
plv Users cannot set redact powerlevel higher than their own (2 subtests)
|
plv Users cannot set redact powerlevel higher than their own (2 subtests)
|
||||||
v1s Check that event streams started after a client joined a room work (SYT-1)
|
v1s Check that event streams started after a client joined a room work (SYT-1)
|
||||||
v1s Event stream catches up fully after many messages
|
v1s Event stream catches up fully after many messages
|
||||||
xxx POST /rooms/:room_id/redact/:event_id as power user redacts message
|
xxx POST /rooms/:room_id/redact/:event_id as power user redacts message
|
||||||
xxx POST /rooms/:room_id/redact/:event_id as original message sender redacts message
|
xxx POST /rooms/:room_id/redact/:event_id as original message sender redacts message
|
||||||
xxx POST /rooms/:room_id/redact/:event_id as random user does not redact message
|
xxx POST /rooms/:room_id/redact/:event_id as random user does not redact message
|
||||||
xxx POST /redact disallows redaction of event in different room
|
xxx POST /redact disallows redaction of event in different room
|
||||||
xxx Redaction of a redaction redacts the redaction reason
|
xxx Redaction of a redaction redacts the redaction reason
|
||||||
v1s A departed room is still included in /initialSync (SPEC-216)
|
v1s A departed room is still included in /initialSync (SPEC-216)
|
||||||
v1s Can get rooms/{roomId}/initialSync for a departed room (SPEC-216)
|
v1s Can get rooms/{roomId}/initialSync for a departed room (SPEC-216)
|
||||||
rst Can get rooms/{roomId}/state for a departed room (SPEC-216)
|
rst Can get rooms/{roomId}/state for a departed room (SPEC-216)
|
||||||
mem Can get rooms/{roomId}/members for a departed room (SPEC-216)
|
mem Can get rooms/{roomId}/members for a departed room (SPEC-216)
|
||||||
get Can get rooms/{roomId}/messages for a departed room (SPEC-216)
|
get Can get rooms/{roomId}/messages for a departed room (SPEC-216)
|
||||||
rst Can get 'm.room.name' state for a departed room (SPEC-216)
|
rst Can get 'm.room.name' state for a departed room (SPEC-216)
|
||||||
syn Getting messages going forward is limited for a departed room (SPEC-216)
|
syn Getting messages going forward is limited for a departed room (SPEC-216)
|
||||||
3pd Can invite existing 3pid
|
3pd Can invite existing 3pid
|
||||||
3pd Can invite existing 3pid with no ops into a private room
|
3pd Can invite existing 3pid with no ops into a private room
|
||||||
3pd Can invite existing 3pid in createRoom
|
3pd Can invite existing 3pid in createRoom
|
||||||
3pd Can invite unbound 3pid
|
3pd Can invite unbound 3pid
|
||||||
f,3pd Can invite unbound 3pid over federation
|
f,3pd Can invite unbound 3pid over federation
|
||||||
3pd Can invite unbound 3pid with no ops into a private room
|
3pd Can invite unbound 3pid with no ops into a private room
|
||||||
f,3pd Can invite unbound 3pid over federation with no ops into a private room
|
f,3pd Can invite unbound 3pid over federation with no ops into a private room
|
||||||
f,3pd Can invite unbound 3pid over federation with users from both servers
|
f,3pd Can invite unbound 3pid over federation with users from both servers
|
||||||
3pd Can accept unbound 3pid invite after inviter leaves
|
3pd Can accept unbound 3pid invite after inviter leaves
|
||||||
3pd Can accept third party invite with /join
|
3pd Can accept third party invite with /join
|
||||||
3pd 3pid invite join with wrong but valid signature are rejected
|
3pd 3pid invite join with wrong but valid signature are rejected
|
||||||
3pd 3pid invite join valid signature but revoked keys are rejected
|
3pd 3pid invite join valid signature but revoked keys are rejected
|
||||||
3pd 3pid invite join valid signature but unreachable ID server are rejected
|
3pd 3pid invite join valid signature but unreachable ID server are rejected
|
||||||
gst Guest user cannot call /events globally
|
gst Guest user cannot call /events globally
|
||||||
gst Guest users can join guest_access rooms
|
gst Guest users can join guest_access rooms
|
||||||
gst Guest users can send messages to guest_access rooms if joined
|
gst Guest users can send messages to guest_access rooms if joined
|
||||||
gst Guest user calling /events doesn't tightloop
|
gst Guest user calling /events doesn't tightloop
|
||||||
gst Guest users are kicked from guest_access rooms on revocation of guest_access
|
gst Guest users are kicked from guest_access rooms on revocation of guest_access
|
||||||
gst Guest user can set display names
|
gst Guest user can set display names
|
||||||
gst Guest users are kicked from guest_access rooms on revocation of guest_access over federation
|
gst Guest users are kicked from guest_access rooms on revocation of guest_access over federation
|
||||||
gst Guest user can upgrade to fully featured user
|
gst Guest user can upgrade to fully featured user
|
||||||
gst Guest user cannot upgrade other users
|
gst Guest user cannot upgrade other users
|
||||||
pub GET /publicRooms lists rooms
|
pub GET /publicRooms lists rooms
|
||||||
pub GET /publicRooms includes avatar URLs
|
pub GET /publicRooms includes avatar URLs
|
||||||
gst Guest users can accept invites to private rooms over federation
|
gst Guest users can accept invites to private rooms over federation
|
||||||
gst Guest users denied access over federation if guest access prohibited
|
gst Guest users denied access over federation if guest access prohibited
|
||||||
mem Room members can override their displayname on a room-specific basis
|
mem Room members can override their displayname on a room-specific basis
|
||||||
mem Room members can join a room with an overridden displayname
|
mem Room members can join a room with an overridden displayname
|
||||||
mem Users cannot kick users from a room they are not in
|
mem Users cannot kick users from a room they are not in
|
||||||
mem Users cannot kick users who have already left a room
|
mem Users cannot kick users who have already left a room
|
||||||
typ Typing notification sent to local room members
|
typ Typing notification sent to local room members
|
||||||
f,typ Typing notifications also sent to remote room members
|
f,typ Typing notifications also sent to remote room members
|
||||||
typ Typing can be explicitly stopped
|
typ Typing can be explicitly stopped
|
||||||
rct Read receipts are visible to /initialSync
|
rct Read receipts are visible to /initialSync
|
||||||
rct Read receipts are sent as events
|
rct Read receipts are sent as events
|
||||||
rct Receipts must be m.read
|
rct Receipts must be m.read
|
||||||
pro displayname updates affect room member events
|
pro displayname updates affect room member events
|
||||||
pro avatar_url updates affect room member events
|
pro avatar_url updates affect room member events
|
||||||
gst m.room.history_visibility == "world_readable" allows/forbids appropriately for Guest users
|
gst m.room.history_visibility == "world_readable" allows/forbids appropriately for Guest users
|
||||||
gst m.room.history_visibility == "shared" allows/forbids appropriately for Guest users
|
gst m.room.history_visibility == "shared" allows/forbids appropriately for Guest users
|
||||||
gst m.room.history_visibility == "invited" allows/forbids appropriately for Guest users
|
gst m.room.history_visibility == "invited" allows/forbids appropriately for Guest users
|
||||||
gst m.room.history_visibility == "joined" allows/forbids appropriately for Guest users
|
gst m.room.history_visibility == "joined" allows/forbids appropriately for Guest users
|
||||||
gst m.room.history_visibility == "default" allows/forbids appropriately for Guest users
|
gst m.room.history_visibility == "default" allows/forbids appropriately for Guest users
|
||||||
gst Guest non-joined user cannot call /events on shared room
|
gst Guest non-joined user cannot call /events on shared room
|
||||||
gst Guest non-joined user cannot call /events on invited room
|
gst Guest non-joined user cannot call /events on invited room
|
||||||
gst Guest non-joined user cannot call /events on joined room
|
gst Guest non-joined user cannot call /events on joined room
|
||||||
gst Guest non-joined user cannot call /events on default room
|
gst Guest non-joined user cannot call /events on default room
|
||||||
gst Guest non-joined user can call /events on world_readable room
|
gst Guest non-joined user can call /events on world_readable room
|
||||||
gst Guest non-joined users can get state for world_readable rooms
|
gst Guest non-joined users can get state for world_readable rooms
|
||||||
gst Guest non-joined users can get individual state for world_readable rooms
|
gst Guest non-joined users can get individual state for world_readable rooms
|
||||||
gst Guest non-joined users cannot room initalSync for non-world_readable rooms
|
gst Guest non-joined users cannot room initalSync for non-world_readable rooms
|
||||||
gst Guest non-joined users can room initialSync for world_readable rooms
|
gst Guest non-joined users can room initialSync for world_readable rooms
|
||||||
gst Guest non-joined users can get individual state for world_readable rooms after leaving
|
gst Guest non-joined users can get individual state for world_readable rooms after leaving
|
||||||
gst Guest non-joined users cannot send messages to guest_access rooms if not joined
|
gst Guest non-joined users cannot send messages to guest_access rooms if not joined
|
||||||
gst Guest users can sync from world_readable guest_access rooms if joined
|
gst Guest users can sync from world_readable guest_access rooms if joined
|
||||||
gst Guest users can sync from shared guest_access rooms if joined
|
gst Guest users can sync from shared guest_access rooms if joined
|
||||||
gst Guest users can sync from invited guest_access rooms if joined
|
gst Guest users can sync from invited guest_access rooms if joined
|
||||||
gst Guest users can sync from joined guest_access rooms if joined
|
gst Guest users can sync from joined guest_access rooms if joined
|
||||||
gst Guest users can sync from default guest_access rooms if joined
|
gst Guest users can sync from default guest_access rooms if joined
|
||||||
ath m.room.history_visibility == "world_readable" allows/forbids appropriately for Real users
|
ath m.room.history_visibility == "world_readable" allows/forbids appropriately for Real users
|
||||||
ath m.room.history_visibility == "shared" allows/forbids appropriately for Real users
|
ath m.room.history_visibility == "shared" allows/forbids appropriately for Real users
|
||||||
ath m.room.history_visibility == "invited" allows/forbids appropriately for Real users
|
ath m.room.history_visibility == "invited" allows/forbids appropriately for Real users
|
||||||
ath m.room.history_visibility == "joined" allows/forbids appropriately for Real users
|
ath m.room.history_visibility == "joined" allows/forbids appropriately for Real users
|
||||||
ath m.room.history_visibility == "default" allows/forbids appropriately for Real users
|
ath m.room.history_visibility == "default" allows/forbids appropriately for Real users
|
||||||
ath Real non-joined user cannot call /events on shared room
|
ath Real non-joined user cannot call /events on shared room
|
||||||
ath Real non-joined user cannot call /events on invited room
|
ath Real non-joined user cannot call /events on invited room
|
||||||
ath Real non-joined user cannot call /events on joined room
|
ath Real non-joined user cannot call /events on joined room
|
||||||
ath Real non-joined user cannot call /events on default room
|
ath Real non-joined user cannot call /events on default room
|
||||||
ath Real non-joined user can call /events on world_readable room
|
ath Real non-joined user can call /events on world_readable room
|
||||||
ath Real non-joined users can get state for world_readable rooms
|
ath Real non-joined users can get state for world_readable rooms
|
||||||
ath Real non-joined users can get individual state for world_readable rooms
|
ath Real non-joined users can get individual state for world_readable rooms
|
||||||
ath Real non-joined users cannot room initalSync for non-world_readable rooms
|
ath Real non-joined users cannot room initalSync for non-world_readable rooms
|
||||||
ath Real non-joined users can room initialSync for world_readable rooms
|
ath Real non-joined users can room initialSync for world_readable rooms
|
||||||
ath Real non-joined users can get individual state for world_readable rooms after leaving
|
ath Real non-joined users can get individual state for world_readable rooms after leaving
|
||||||
ath Real non-joined users cannot send messages to guest_access rooms if not joined
|
ath Real non-joined users cannot send messages to guest_access rooms if not joined
|
||||||
ath Real users can sync from world_readable guest_access rooms if joined
|
ath Real users can sync from world_readable guest_access rooms if joined
|
||||||
ath Real users can sync from shared guest_access rooms if joined
|
ath Real users can sync from shared guest_access rooms if joined
|
||||||
ath Real users can sync from invited guest_access rooms if joined
|
ath Real users can sync from invited guest_access rooms if joined
|
||||||
ath Real users can sync from joined guest_access rooms if joined
|
ath Real users can sync from joined guest_access rooms if joined
|
||||||
ath Real users can sync from default guest_access rooms if joined
|
ath Real users can sync from default guest_access rooms if joined
|
||||||
ath Only see history_visibility changes on boundaries
|
ath Only see history_visibility changes on boundaries
|
||||||
f,ath Backfill works correctly with history visibility set to joined
|
f,ath Backfill works correctly with history visibility set to joined
|
||||||
fgt Forgotten room messages cannot be paginated
|
fgt Forgotten room messages cannot be paginated
|
||||||
fgt Forgetting room does not show up in v2 /sync
|
fgt Forgetting room does not show up in v2 /sync
|
||||||
fgt Can forget room you've been kicked from
|
fgt Can forget room you've been kicked from
|
||||||
fgt Can't forget room you're still in
|
fgt Can't forget room you're still in
|
||||||
fgt Can re-join room if re-invited
|
fgt Can re-join room if re-invited
|
||||||
ath Only original members of the room can see messages from erased users
|
ath Only original members of the room can see messages from erased users
|
||||||
mem /joined_rooms returns only joined rooms
|
mem /joined_rooms returns only joined rooms
|
||||||
mem /joined_members return joined members
|
mem /joined_members return joined members
|
||||||
ctx /context/ on joined room works
|
ctx /context/ on joined room works
|
||||||
ctx /context/ on non world readable room does not work
|
ctx /context/ on non world readable room does not work
|
||||||
ctx /context/ returns correct number of events
|
ctx /context/ returns correct number of events
|
||||||
ctx /context/ with lazy_load_members filter works
|
ctx /context/ with lazy_load_members filter works
|
||||||
get /event/ on joined room works
|
get /event/ on joined room works
|
||||||
get /event/ on non world readable room does not work
|
get /event/ on non world readable room does not work
|
||||||
get /event/ does not allow access to events before the user joined
|
get /event/ does not allow access to events before the user joined
|
||||||
mem Can get rooms/{roomId}/members
|
mem Can get rooms/{roomId}/members
|
||||||
mem Can get rooms/{roomId}/members at a given point
|
mem Can get rooms/{roomId}/members at a given point
|
||||||
mem Can filter rooms/{roomId}/members
|
mem Can filter rooms/{roomId}/members
|
||||||
upg /upgrade creates a new room
|
upg /upgrade creates a new room
|
||||||
upg /upgrade should preserve room visibility for public rooms
|
upg /upgrade should preserve room visibility for public rooms
|
||||||
upg /upgrade should preserve room visibility for private rooms
|
upg /upgrade should preserve room visibility for private rooms
|
||||||
upg /upgrade copies >100 power levels to the new room
|
upg /upgrade copies >100 power levels to the new room
|
||||||
upg /upgrade copies the power levels to the new room
|
upg /upgrade copies the power levels to the new room
|
||||||
upg /upgrade preserves the power level of the upgrading user in old and new rooms
|
upg /upgrade preserves the power level of the upgrading user in old and new rooms
|
||||||
upg /upgrade copies important state to the new room
|
upg /upgrade copies important state to the new room
|
||||||
upg /upgrade copies ban events to the new room
|
upg /upgrade copies ban events to the new room
|
||||||
upg local user has push rules copied to upgraded room
|
upg local user has push rules copied to upgraded room
|
||||||
f,upg remote user has push rules copied to upgraded room
|
f,upg remote user has push rules copied to upgraded room
|
||||||
upg /upgrade moves aliases to the new room
|
upg /upgrade moves aliases to the new room
|
||||||
upg /upgrade moves remote aliases to the new room
|
upg /upgrade moves remote aliases to the new room
|
||||||
upg /upgrade preserves direct room state
|
upg /upgrade preserves direct room state
|
||||||
upg /upgrade preserves room federation ability
|
upg /upgrade preserves room federation ability
|
||||||
upg /upgrade restricts power levels in the old room
|
upg /upgrade restricts power levels in the old room
|
||||||
upg /upgrade restricts power levels in the old room when the old PLs are unusual
|
upg /upgrade restricts power levels in the old room when the old PLs are unusual
|
||||||
upg /upgrade to an unknown version is rejected
|
upg /upgrade to an unknown version is rejected
|
||||||
upg /upgrade is rejected if the user can't send state events
|
upg /upgrade is rejected if the user can't send state events
|
||||||
upg /upgrade of a bogus room fails gracefully
|
upg /upgrade of a bogus room fails gracefully
|
||||||
upg Cannot send tombstone event that points to the same room
|
upg Cannot send tombstone event that points to the same room
|
||||||
f,upg Local and remote users' homeservers remove a room from their public directory on upgrade
|
f,upg Local and remote users' homeservers remove a room from their public directory on upgrade
|
||||||
rst Name/topic keys are correct
|
rst Name/topic keys are correct
|
||||||
f,pub Can get remote public room list
|
f,pub Can get remote public room list
|
||||||
pub Can paginate public room list
|
pub Can paginate public room list
|
||||||
pub Can search public room list
|
pub Can search public room list
|
||||||
syn Can create filter
|
syn Can create filter
|
||||||
syn Can download filter
|
syn Can download filter
|
||||||
syn Can sync
|
syn Can sync
|
||||||
syn Can sync a joined room
|
syn Can sync a joined room
|
||||||
syn Full state sync includes joined rooms
|
syn Full state sync includes joined rooms
|
||||||
syn Newly joined room is included in an incremental sync
|
syn Newly joined room is included in an incremental sync
|
||||||
syn Newly joined room has correct timeline in incremental sync
|
syn Newly joined room has correct timeline in incremental sync
|
||||||
syn Newly joined room includes presence in incremental sync
|
pre Newly joined room includes presence in incremental sync
|
||||||
syn Get presence for newly joined members in incremental sync
|
pre Get presence for newly joined members in incremental sync
|
||||||
syn Can sync a room with a single message
|
syn Can sync a room with a single message
|
||||||
syn Can sync a room with a message with a transaction id
|
syn Can sync a room with a message with a transaction id
|
||||||
syn A message sent after an initial sync appears in the timeline of an incremental sync.
|
syn A message sent after an initial sync appears in the timeline of an incremental sync.
|
||||||
syn A filtered timeline reaches its limit
|
syn A filtered timeline reaches its limit
|
||||||
syn Syncing a new room with a large timeline limit isn't limited
|
syn Syncing a new room with a large timeline limit isn't limited
|
||||||
syn A full_state incremental update returns only recent timeline
|
syn A full_state incremental update returns only recent timeline
|
||||||
syn A prev_batch token can be used in the v1 messages API
|
syn A prev_batch token can be used in the v1 messages API
|
||||||
syn A next_batch token can be used in the v1 messages API
|
syn A next_batch token can be used in the v1 messages API
|
||||||
syn A prev_batch token from incremental sync can be used in the v1 messages API
|
syn A prev_batch token from incremental sync can be used in the v1 messages API
|
||||||
syn User sees their own presence in a sync
|
pre User sees their own presence in a sync
|
||||||
syn User is offline if they set_presence=offline in their sync
|
pre User is offline if they set_presence=offline in their sync
|
||||||
syn User sees updates to presence from other users in the incremental sync.
|
pre User sees updates to presence from other users in the incremental sync.
|
||||||
syn State is included in the timeline in the initial sync
|
syn State is included in the timeline in the initial sync
|
||||||
f,syn State from remote users is included in the state in the initial sync
|
f,syn State from remote users is included in the state in the initial sync
|
||||||
syn Changes to state are included in an incremental sync
|
syn Changes to state are included in an incremental sync
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,7 @@ func (m *DendriteMonolith) Conduit(zone string, peertype int) (*Conduit, error)
|
||||||
for i := 1; i <= 10; i++ {
|
for i := 1; i <= 10; i++ {
|
||||||
logrus.Errorf("Attempting authenticated connect (attempt %d)", i)
|
logrus.Errorf("Attempting authenticated connect (attempt %d)", i)
|
||||||
var err error
|
var err error
|
||||||
conduit.port, err = m.PineconeRouter.AuthenticatedConnect(l, zone, peertype)
|
conduit.port, err = m.PineconeRouter.AuthenticatedConnect(l, zone, peertype, true)
|
||||||
switch err {
|
switch err {
|
||||||
case io.ErrClosedPipe:
|
case io.ErrClosedPipe:
|
||||||
logrus.Errorf("Authenticated connect failed due to closed pipe (attempt %d)", i)
|
logrus.Errorf("Authenticated connect failed due to closed pipe (attempt %d)", i)
|
||||||
|
|
@ -253,7 +253,7 @@ func (m *DendriteMonolith) Start() {
|
||||||
logrus.SetOutput(BindLogger{})
|
logrus.SetOutput(BindLogger{})
|
||||||
|
|
||||||
logger := log.New(os.Stdout, "PINECONE: ", 0)
|
logger := log.New(os.Stdout, "PINECONE: ", 0)
|
||||||
m.PineconeRouter = pineconeRouter.NewRouter(logger, sk, "dendrite", nil)
|
m.PineconeRouter = pineconeRouter.NewRouter(logger, sk, false)
|
||||||
m.PineconeQUIC = pineconeSessions.NewSessions(logger, m.PineconeRouter)
|
m.PineconeQUIC = pineconeSessions.NewSessions(logger, m.PineconeRouter)
|
||||||
m.PineconeMulticast = pineconeMulticast.NewMulticast(logger, m.PineconeRouter)
|
m.PineconeMulticast = pineconeMulticast.NewMulticast(logger, m.PineconeRouter)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//go:build ios
|
||||||
// +build ios
|
// +build ios
|
||||||
|
|
||||||
package gobind
|
package gobind
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//go:build !ios
|
||||||
// +build !ios
|
// +build !ios
|
||||||
|
|
||||||
package gobind
|
package gobind
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//go:build ios
|
||||||
// +build ios
|
// +build ios
|
||||||
|
|
||||||
package gobind
|
package gobind
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//go:build !ios
|
||||||
// +build !ios
|
// +build !ios
|
||||||
|
|
||||||
package gobind
|
package gobind
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ func ConnectToPeer(pRouter *pineconeRouter.Router, peer string) error {
|
||||||
if parent == nil {
|
if parent == nil {
|
||||||
return fmt.Errorf("failed to wrap connection")
|
return fmt.Errorf("failed to wrap connection")
|
||||||
}
|
}
|
||||||
_, err := pRouter.AuthenticatedConnect(parent, "static", pineconeRouter.PeerTypeRemote)
|
_, err := pRouter.AuthenticatedConnect(parent, "static", pineconeRouter.PeerTypeRemote, true)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//go:build elementweb
|
||||||
// +build elementweb
|
// +build elementweb
|
||||||
|
|
||||||
package embed
|
package embed
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//go:build !elementweb
|
||||||
// +build !elementweb
|
// +build !elementweb
|
||||||
|
|
||||||
package embed
|
package embed
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
logger := log.New(os.Stdout, "", 0)
|
logger := log.New(os.Stdout, "", 0)
|
||||||
pRouter := pineconeRouter.NewRouter(logger, sk, "dendrite", nil)
|
pRouter := pineconeRouter.NewRouter(logger, sk, false)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
listener, err := net.Listen("tcp", *instanceListen)
|
listener, err := net.Listen("tcp", *instanceListen)
|
||||||
|
|
@ -108,7 +108,7 @@ func main() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
port, err := pRouter.AuthenticatedConnect(conn, "", pineconeRouter.PeerTypeRemote)
|
port, err := pRouter.AuthenticatedConnect(conn, "", pineconeRouter.PeerTypeRemote, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.WithError(err).Error("pSwitch.AuthenticatedConnect failed")
|
logrus.WithError(err).Error("pSwitch.AuthenticatedConnect failed")
|
||||||
continue
|
continue
|
||||||
|
|
@ -231,7 +231,7 @@ func main() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
conn := conn.WrapWebSocketConn(c)
|
conn := conn.WrapWebSocketConn(c)
|
||||||
if _, err = pRouter.AuthenticatedConnect(conn, "websocket", pineconeRouter.PeerTypeRemote); err != nil {
|
if _, err = pRouter.AuthenticatedConnect(conn, "websocket", pineconeRouter.PeerTypeRemote, true); err != nil {
|
||||||
logrus.WithError(err).Error("Failed to connect WebSocket peer to Pinecone switch")
|
logrus.WithError(err).Error("Failed to connect WebSocket peer to Pinecone switch")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//go:build elementweb
|
||||||
// +build elementweb
|
// +build elementweb
|
||||||
|
|
||||||
package embed
|
package embed
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//go:build !elementweb
|
||||||
// +build !elementweb
|
// +build !elementweb
|
||||||
|
|
||||||
package embed
|
package embed
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
// +build wasm
|
// +build wasm
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@ func startup() {
|
||||||
pk := sk.Public().(ed25519.PublicKey)
|
pk := sk.Public().(ed25519.PublicKey)
|
||||||
|
|
||||||
logger := log.New(os.Stdout, "", 0)
|
logger := log.New(os.Stdout, "", 0)
|
||||||
pRouter := pineconeRouter.NewRouter(logger, sk, "dendrite", nil)
|
pRouter := pineconeRouter.NewRouter(logger, sk, false)
|
||||||
pSessions := pineconeSessions.NewSessions(logger, pRouter)
|
pSessions := pineconeSessions.NewSessions(logger, pRouter)
|
||||||
|
|
||||||
cfg := &config.Dendrite{}
|
cfg := &config.Dendrite{}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
// +build wasm
|
// +build wasm
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
// +build wasm
|
// +build wasm
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
// +build wasm
|
// +build wasm
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
// +build wasm
|
// +build wasm
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
// +build wasm
|
// +build wasm
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,35 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/matrix-org/dendrite/setup/config"
|
"github.com/matrix-org/dendrite/setup/config"
|
||||||
|
"github.com/matrix-org/gomatrixserverlib"
|
||||||
"golang.org/x/crypto/bcrypt"
|
"golang.org/x/crypto/bcrypt"
|
||||||
"gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
defaultsForCI := flag.Bool("ci", false, "sane defaults for CI testing")
|
defaultsForCI := flag.Bool("ci", false, "sane defaults for CI testing")
|
||||||
|
serverName := flag.String("server", "", "The domain name of the server if not 'localhost'")
|
||||||
|
dbURI := flag.String("db", "", "The DB URI to use for all components if not SQLite files")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
cfg := &config.Dendrite{}
|
cfg := &config.Dendrite{}
|
||||||
cfg.Defaults()
|
cfg.Defaults()
|
||||||
|
if *serverName != "" {
|
||||||
|
cfg.Global.ServerName = gomatrixserverlib.ServerName(*serverName)
|
||||||
|
}
|
||||||
|
if *dbURI != "" {
|
||||||
|
cfg.Global.Kafka.Database.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
cfg.AppServiceAPI.Database.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
cfg.FederationSender.Database.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
cfg.KeyServer.Database.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
cfg.MSCs.Database.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
cfg.MediaAPI.Database.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
cfg.RoomServer.Database.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
cfg.SigningKeyServer.Database.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
cfg.SyncAPI.Database.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
cfg.UserAPI.AccountDatabase.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
cfg.UserAPI.DeviceDatabase.ConnectionString = config.DataSource(*dbURI)
|
||||||
|
}
|
||||||
cfg.Global.TrustedIDServers = []string{
|
cfg.Global.TrustedIDServers = []string{
|
||||||
"matrix.org",
|
"matrix.org",
|
||||||
"vector.im",
|
"vector.im",
|
||||||
|
|
|
||||||
|
|
@ -306,7 +306,7 @@ func (t *txnReq) processTransaction(ctx context.Context) (*gomatrixserverlib.Res
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if err = gomatrixserverlib.VerifyAllEventSignatures(ctx, []*gomatrixserverlib.Event{event}, t.keys); err != nil {
|
if err = event.VerifyEventSignatures(ctx, t.keys); err != nil {
|
||||||
util.GetLogger(ctx).WithError(err).Warnf("Transaction: Couldn't validate signature of event %q", event.EventID())
|
util.GetLogger(ctx).WithError(err).Warnf("Transaction: Couldn't validate signature of event %q", event.EventID())
|
||||||
results[event.EventID()] = gomatrixserverlib.PDUResult{
|
results[event.EventID()] = gomatrixserverlib.PDUResult{
|
||||||
Error: err.Error(),
|
Error: err.Error(),
|
||||||
|
|
@ -1358,7 +1358,7 @@ func (t *txnReq) lookupEvent(ctx context.Context, roomVersion gomatrixserverlib.
|
||||||
util.GetLogger(ctx).WithField("event_id", missingEventID).Warnf("Failed to get missing /event for event ID from %d server(s)", len(servers))
|
util.GetLogger(ctx).WithField("event_id", missingEventID).Warnf("Failed to get missing /event for event ID from %d server(s)", len(servers))
|
||||||
return nil, fmt.Errorf("wasn't able to find event via %d server(s)", len(servers))
|
return nil, fmt.Errorf("wasn't able to find event via %d server(s)", len(servers))
|
||||||
}
|
}
|
||||||
if err := gomatrixserverlib.VerifyAllEventSignatures(ctx, []*gomatrixserverlib.Event{event}, t.keys); err != nil {
|
if err := event.VerifyEventSignatures(ctx, t.keys); err != nil {
|
||||||
util.GetLogger(ctx).WithError(err).Warnf("Transaction: Couldn't validate signature of event %q", event.EventID())
|
util.GetLogger(ctx).WithError(err).Warnf("Transaction: Couldn't validate signature of event %q", event.EventID())
|
||||||
return nil, verifySigError{event.EventID(), err}
|
return nil, verifySigError{event.EventID(), err}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -713,14 +713,8 @@ func federatedAuthProvider(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check the signatures of the event.
|
// Check the signatures of the event.
|
||||||
if res, err := gomatrixserverlib.VerifyEventSignatures(ctx, []*gomatrixserverlib.Event{ev}, keyRing); err != nil {
|
if err := ev.VerifyEventSignatures(ctx, keyRing); err != nil {
|
||||||
return nil, fmt.Errorf("missingAuth VerifyEventSignatures: %w", err)
|
return nil, fmt.Errorf("missingAuth VerifyEventSignatures: %w", err)
|
||||||
} else {
|
|
||||||
for _, err := range res {
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("missingAuth VerifyEventSignatures: %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the event is OK then add it to the results and the retry map.
|
// If the event is OK then add it to the results and the retry map.
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package storage
|
package storage
|
||||||
|
|
|
||||||
10
go.mod
10
go.mod
|
|
@ -7,7 +7,7 @@ require (
|
||||||
github.com/Masterminds/semver/v3 v3.1.1
|
github.com/Masterminds/semver/v3 v3.1.1
|
||||||
github.com/Shopify/sarama v1.29.1
|
github.com/Shopify/sarama v1.29.1
|
||||||
github.com/codeclysm/extract v2.2.0+incompatible
|
github.com/codeclysm/extract v2.2.0+incompatible
|
||||||
github.com/containerd/containerd v1.5.5 // indirect
|
github.com/containerd/containerd v1.5.7 // indirect
|
||||||
github.com/docker/docker v20.10.7+incompatible
|
github.com/docker/docker v20.10.7+incompatible
|
||||||
github.com/docker/go-connections v0.4.0
|
github.com/docker/go-connections v0.4.0
|
||||||
github.com/getsentry/sentry-go v0.11.0
|
github.com/getsentry/sentry-go v0.11.0
|
||||||
|
|
@ -31,9 +31,9 @@ require (
|
||||||
github.com/matrix-org/go-http-js-libp2p v0.0.0-20200518170932-783164aeeda4
|
github.com/matrix-org/go-http-js-libp2p v0.0.0-20200518170932-783164aeeda4
|
||||||
github.com/matrix-org/go-sqlite3-js v0.0.0-20210709140738-b0d1ba599a6d
|
github.com/matrix-org/go-sqlite3-js v0.0.0-20210709140738-b0d1ba599a6d
|
||||||
github.com/matrix-org/gomatrix v0.0.0-20210324163249-be2af5ef2e16
|
github.com/matrix-org/gomatrix v0.0.0-20210324163249-be2af5ef2e16
|
||||||
github.com/matrix-org/gomatrixserverlib v0.0.0-20210817115641-f9416ac1a723
|
github.com/matrix-org/gomatrixserverlib v0.0.0-20211102101113-5e02b64e5312
|
||||||
github.com/matrix-org/naffka v0.0.0-20210623111924-14ff508b58e0
|
github.com/matrix-org/naffka v0.0.0-20210623111924-14ff508b58e0
|
||||||
github.com/matrix-org/pinecone v0.0.0-20211008142213-06dcf8511285
|
github.com/matrix-org/pinecone v0.0.0-20211022090602-08a50945ac89
|
||||||
github.com/matrix-org/util v0.0.0-20200807132607-55161520e1d4
|
github.com/matrix-org/util v0.0.0-20200807132607-55161520e1d4
|
||||||
github.com/mattn/go-sqlite3 v1.14.8
|
github.com/mattn/go-sqlite3 v1.14.8
|
||||||
github.com/morikuni/aec v1.0.0 // indirect
|
github.com/morikuni/aec v1.0.0 // indirect
|
||||||
|
|
@ -46,14 +46,14 @@ require (
|
||||||
github.com/pressly/goose v2.7.0+incompatible
|
github.com/pressly/goose v2.7.0+incompatible
|
||||||
github.com/prometheus/client_golang v1.11.0
|
github.com/prometheus/client_golang v1.11.0
|
||||||
github.com/sirupsen/logrus v1.8.1
|
github.com/sirupsen/logrus v1.8.1
|
||||||
github.com/tidwall/gjson v1.8.1
|
github.com/tidwall/gjson v1.9.3
|
||||||
github.com/tidwall/pretty v1.2.0 // indirect
|
|
||||||
github.com/tidwall/sjson v1.1.7
|
github.com/tidwall/sjson v1.1.7
|
||||||
github.com/uber/jaeger-client-go v2.29.1+incompatible
|
github.com/uber/jaeger-client-go v2.29.1+incompatible
|
||||||
github.com/uber/jaeger-lib v2.4.1+incompatible
|
github.com/uber/jaeger-lib v2.4.1+incompatible
|
||||||
github.com/yggdrasil-network/yggdrasil-go v0.4.1-0.20210715083903-52309d094c00
|
github.com/yggdrasil-network/yggdrasil-go v0.4.1-0.20210715083903-52309d094c00
|
||||||
go.uber.org/atomic v1.9.0
|
go.uber.org/atomic v1.9.0
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519
|
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519
|
||||||
|
golang.org/x/image v0.0.0-20211028202545-6944b10bf410
|
||||||
golang.org/x/mobile v0.0.0-20210716004757-34ab1303b554
|
golang.org/x/mobile v0.0.0-20210716004757-34ab1303b554
|
||||||
golang.org/x/net v0.0.0-20210927181540-4e4d966f7476
|
golang.org/x/net v0.0.0-20210927181540-4e4d966f7476
|
||||||
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b
|
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b
|
||||||
|
|
|
||||||
35
go.sum
35
go.sum
|
|
@ -77,7 +77,7 @@ github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg3
|
||||||
github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg=
|
github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg=
|
||||||
github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00=
|
github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00=
|
||||||
github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600=
|
github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600=
|
||||||
github.com/Microsoft/hcsshim v0.8.18/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4=
|
github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4=
|
||||||
github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU=
|
github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU=
|
||||||
github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY=
|
github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY=
|
||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
|
|
@ -217,8 +217,8 @@ github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo
|
||||||
github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI=
|
github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI=
|
||||||
github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s=
|
github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s=
|
||||||
github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
|
github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
|
||||||
github.com/containerd/containerd v1.5.5 h1:q1gxsZsGZ8ddVe98yO6pR21b5xQSMiR61lD0W96pgQo=
|
github.com/containerd/containerd v1.5.7 h1:rQyoYtj4KddB3bxG6SAqd4+08gePNyJjRqvOIfV3rkM=
|
||||||
github.com/containerd/containerd v1.5.5/go.mod h1:oSTh0QpT1w6jYcGmbiSbxv9OSQYaa88mPyWIuU79zyo=
|
github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c=
|
||||||
github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
||||||
github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
||||||
github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
||||||
|
|
@ -575,6 +575,7 @@ github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ
|
||||||
github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||||
github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
||||||
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
||||||
|
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
||||||
github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA=
|
github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
|
github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
|
||||||
|
|
@ -992,12 +993,12 @@ github.com/matrix-org/go-sqlite3-js v0.0.0-20210709140738-b0d1ba599a6d/go.mod h1
|
||||||
github.com/matrix-org/gomatrix v0.0.0-20190528120928-7df988a63f26/go.mod h1:3fxX6gUjWyI/2Bt7J1OLhpCzOfO/bB3AiX0cJtEKud0=
|
github.com/matrix-org/gomatrix v0.0.0-20190528120928-7df988a63f26/go.mod h1:3fxX6gUjWyI/2Bt7J1OLhpCzOfO/bB3AiX0cJtEKud0=
|
||||||
github.com/matrix-org/gomatrix v0.0.0-20210324163249-be2af5ef2e16 h1:ZtO5uywdd5dLDCud4r0r55eP4j9FuUNpl60Gmntcop4=
|
github.com/matrix-org/gomatrix v0.0.0-20210324163249-be2af5ef2e16 h1:ZtO5uywdd5dLDCud4r0r55eP4j9FuUNpl60Gmntcop4=
|
||||||
github.com/matrix-org/gomatrix v0.0.0-20210324163249-be2af5ef2e16/go.mod h1:/gBX06Kw0exX1HrwmoBibFA98yBk/jxKpGVeyQbff+s=
|
github.com/matrix-org/gomatrix v0.0.0-20210324163249-be2af5ef2e16/go.mod h1:/gBX06Kw0exX1HrwmoBibFA98yBk/jxKpGVeyQbff+s=
|
||||||
github.com/matrix-org/gomatrixserverlib v0.0.0-20210817115641-f9416ac1a723 h1:b8cyR4aYv9Lmf1lKgASJ+PFSp/GBv8ZFgb/O42ZXLGA=
|
github.com/matrix-org/gomatrixserverlib v0.0.0-20211102101113-5e02b64e5312 h1:of3kbkOrjE8793Vsni8ofxMSy/vpO1SB+ZkHSfv4wrs=
|
||||||
github.com/matrix-org/gomatrixserverlib v0.0.0-20210817115641-f9416ac1a723/go.mod h1:JsAzE1Ll3+gDWS9JSUHPJiiyAksvOOnGWF2nXdg4ZzU=
|
github.com/matrix-org/gomatrixserverlib v0.0.0-20211102101113-5e02b64e5312/go.mod h1:rB8tBUUUo1rzUqpzklRDSooxZ6YMhoaEPx4SO5fGeUc=
|
||||||
github.com/matrix-org/naffka v0.0.0-20210623111924-14ff508b58e0 h1:HZCzy4oVzz55e+cOMiX/JtSF2UOY1evBl2raaE7ACcU=
|
github.com/matrix-org/naffka v0.0.0-20210623111924-14ff508b58e0 h1:HZCzy4oVzz55e+cOMiX/JtSF2UOY1evBl2raaE7ACcU=
|
||||||
github.com/matrix-org/naffka v0.0.0-20210623111924-14ff508b58e0/go.mod h1:sjyPyRxKM5uw1nD2cJ6O2OxI6GOqyVBfNXqKjBZTBZE=
|
github.com/matrix-org/naffka v0.0.0-20210623111924-14ff508b58e0/go.mod h1:sjyPyRxKM5uw1nD2cJ6O2OxI6GOqyVBfNXqKjBZTBZE=
|
||||||
github.com/matrix-org/pinecone v0.0.0-20211008142213-06dcf8511285 h1:W5OSspxTxZlb03wUEywga5DickEmUdQzzWFSJfmy6Oc=
|
github.com/matrix-org/pinecone v0.0.0-20211022090602-08a50945ac89 h1:6JkIymZ1vxfI0shSpg6gNPTJaF4/95Evy34slPVZGKM=
|
||||||
github.com/matrix-org/pinecone v0.0.0-20211008142213-06dcf8511285/go.mod h1:r6dsL+ylE0yXe/7zh8y/Bdh6aBYI1r+u4yZni9A4iyk=
|
github.com/matrix-org/pinecone v0.0.0-20211022090602-08a50945ac89/go.mod h1:r6dsL+ylE0yXe/7zh8y/Bdh6aBYI1r+u4yZni9A4iyk=
|
||||||
github.com/matrix-org/util v0.0.0-20190711121626-527ce5ddefc7/go.mod h1:vVQlW/emklohkZnOPwD3LrZUBqdfsbiyO3p1lNV8F6U=
|
github.com/matrix-org/util v0.0.0-20190711121626-527ce5ddefc7/go.mod h1:vVQlW/emklohkZnOPwD3LrZUBqdfsbiyO3p1lNV8F6U=
|
||||||
github.com/matrix-org/util v0.0.0-20200807132607-55161520e1d4 h1:eCEHXWDv9Rm335MSuB49mFUK44bwZPFSDde3ORE3syk=
|
github.com/matrix-org/util v0.0.0-20200807132607-55161520e1d4 h1:eCEHXWDv9Rm335MSuB49mFUK44bwZPFSDde3ORE3syk=
|
||||||
github.com/matrix-org/util v0.0.0-20200807132607-55161520e1d4/go.mod h1:vVQlW/emklohkZnOPwD3LrZUBqdfsbiyO3p1lNV8F6U=
|
github.com/matrix-org/util v0.0.0-20200807132607-55161520e1d4/go.mod h1:vVQlW/emklohkZnOPwD3LrZUBqdfsbiyO3p1lNV8F6U=
|
||||||
|
|
@ -1032,6 +1033,7 @@ github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyex
|
||||||
github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=
|
github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=
|
||||||
github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc=
|
github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc=
|
||||||
github.com/miekg/dns v1.1.12/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
github.com/miekg/dns v1.1.12/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||||
|
github.com/miekg/dns v1.1.25/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
|
||||||
github.com/miekg/dns v1.1.28/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
github.com/miekg/dns v1.1.28/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||||
github.com/miekg/dns v1.1.31 h1:sJFOl9BgwbYAWOGEwr61FU28pqsBNdpRBnhGXtO06Oo=
|
github.com/miekg/dns v1.1.31 h1:sJFOl9BgwbYAWOGEwr61FU28pqsBNdpRBnhGXtO06Oo=
|
||||||
github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||||
|
|
@ -1190,7 +1192,7 @@ github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59P
|
||||||
github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||||
github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||||
github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0=
|
github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0=
|
||||||
github.com/opencontainers/runc v1.0.1/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0=
|
github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0=
|
||||||
github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||||
github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||||
github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||||
|
|
@ -1364,15 +1366,12 @@ github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG
|
||||||
github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
|
github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
|
||||||
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
|
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
|
||||||
github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I=
|
github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I=
|
||||||
github.com/tidwall/gjson v1.6.0/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls=
|
|
||||||
github.com/tidwall/gjson v1.8.0/go.mod h1:5/xDoumyyDNerp2U36lyolv46b3uF/9Bu6OfyQ9GImk=
|
github.com/tidwall/gjson v1.8.0/go.mod h1:5/xDoumyyDNerp2U36lyolv46b3uF/9Bu6OfyQ9GImk=
|
||||||
github.com/tidwall/gjson v1.8.1 h1:8j5EE9Hrh3l9Od1OIEDAb7IpezNA20UdRngNAj5N0WU=
|
github.com/tidwall/gjson v1.9.3 h1:hqzS9wAHMO+KVBBkLxYdkEeeFHuqr95GfClRLKlgK0E=
|
||||||
github.com/tidwall/gjson v1.8.1/go.mod h1:5/xDoumyyDNerp2U36lyolv46b3uF/9Bu6OfyQ9GImk=
|
github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
|
||||||
github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E=
|
|
||||||
github.com/tidwall/match v1.0.3 h1:FQUVvBImDutD8wJLN6c5eMzWtjgONK9MwIBCOrUJKeE=
|
|
||||||
github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
|
github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
|
||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
|
||||||
github.com/tidwall/pretty v1.0.1/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
|
||||||
github.com/tidwall/pretty v1.1.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
github.com/tidwall/pretty v1.1.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
||||||
github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
|
github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
|
||||||
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
|
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
|
||||||
|
|
@ -1499,6 +1498,7 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190618222545-ea8f1a30c443/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190618222545-ea8f1a30c443/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
|
@ -1529,7 +1529,10 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0
|
||||||
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
|
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
|
||||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
|
golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=
|
||||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
|
golang.org/x/image v0.0.0-20211028202545-6944b10bf410 h1:hTftEOvwiOq2+O8k2D5/Q7COC7k5Qcrgc2TFURJYnvQ=
|
||||||
|
golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
|
||||||
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
|
|
@ -1660,6 +1663,7 @@ golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||||
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
|
@ -1755,6 +1759,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw
|
||||||
golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package sqlutil
|
package sqlutil
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
// +build wasm
|
// +build wasm
|
||||||
|
|
||||||
package sqlutil
|
package sqlutil
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package sqlutil
|
package sqlutil
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
// +build wasm
|
// +build wasm
|
||||||
|
|
||||||
package sqlutil
|
package sqlutil
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package storage
|
package storage
|
||||||
|
|
|
||||||
|
|
@ -737,7 +737,7 @@ func (r *downloadRequest) fetchRemoteFile(
|
||||||
return "", false, parseErr
|
return "", false, parseErr
|
||||||
}
|
}
|
||||||
|
|
||||||
if contentLength > int64(maxFileSizeBytes) {
|
if maxFileSizeBytes > 0 && contentLength > int64(maxFileSizeBytes) {
|
||||||
// TODO: Bubble up this as a 413
|
// TODO: Bubble up this as a 413
|
||||||
return "", false, fmt.Errorf("remote file is too large (%v > %v bytes)", contentLength, maxFileSizeBytes)
|
return "", false, fmt.Errorf("remote file is too large (%v > %v bytes)", contentLength, maxFileSizeBytes)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package storage
|
package storage
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build bimg
|
||||||
// +build bimg
|
// +build bimg
|
||||||
|
|
||||||
package thumbnailer
|
package thumbnailer
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !bimg
|
||||||
// +build !bimg
|
// +build !bimg
|
||||||
|
|
||||||
package thumbnailer
|
package thumbnailer
|
||||||
|
|
@ -27,6 +28,10 @@ import (
|
||||||
|
|
||||||
// Imported for png codec
|
// Imported for png codec
|
||||||
_ "image/png"
|
_ "image/png"
|
||||||
|
|
||||||
|
// Imported for webp codec
|
||||||
|
_ "golang.org/x/image/webp"
|
||||||
|
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -165,14 +165,21 @@ func (d *Database) AddState(
|
||||||
if berr != nil {
|
if berr != nil {
|
||||||
return 0, fmt.Errorf("d.StateBlockTable.BulkSelectStateBlockEntries: %w", berr)
|
return 0, fmt.Errorf("d.StateBlockTable.BulkSelectStateBlockEntries: %w", berr)
|
||||||
}
|
}
|
||||||
|
var found bool
|
||||||
for i := len(state) - 1; i >= 0; i-- {
|
for i := len(state) - 1; i >= 0; i-- {
|
||||||
|
found = false
|
||||||
for _, events := range blocks {
|
for _, events := range blocks {
|
||||||
for _, event := range events {
|
for _, event := range events {
|
||||||
if state[i].EventNID == event {
|
if state[i].EventNID == event {
|
||||||
state = append(state[:i], state[i+1:]...)
|
found = true
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if found {
|
||||||
|
state = append(state[:i], state[i+1:]...)
|
||||||
|
i--
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package storage
|
package storage
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package storage
|
package storage
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
// +build wasm
|
// +build wasm
|
||||||
|
|
||||||
package storage
|
package storage
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package storage
|
package storage
|
||||||
|
|
|
||||||
|
|
@ -1,52 +1,9 @@
|
||||||
# Blacklisted due to flakiness
|
|
||||||
Remote users can join room by alias
|
|
||||||
|
|
||||||
# Blacklisted due to flakiness
|
|
||||||
POST /login can log in as a user with just the local part of the id
|
|
||||||
|
|
||||||
# Blacklisted due to flakiness
|
|
||||||
avatar_url updates affect room member events
|
|
||||||
|
|
||||||
# Blacklisted due to flakiness
|
|
||||||
displayname updates affect room member events
|
|
||||||
|
|
||||||
# Blacklisted due to flakiness
|
|
||||||
Room members can override their displayname on a room-specific basis
|
|
||||||
|
|
||||||
# Blacklisted due to flakiness
|
|
||||||
Alias creators can delete alias with no ops
|
|
||||||
|
|
||||||
# Blacklisted because matrix-org/dendrite#847 might have broken it but we're not
|
|
||||||
# really sure and we need it pretty badly anyway
|
|
||||||
Real non-joined users can get individual state for world_readable rooms after leaving
|
|
||||||
|
|
||||||
# Blacklisted until matrix-org/dendrite#862 is reverted due to Riot bug
|
# Blacklisted until matrix-org/dendrite#862 is reverted due to Riot bug
|
||||||
Latest account data appears in v2 /sync
|
Latest account data appears in v2 /sync
|
||||||
|
|
||||||
# Blacklisted due to flakiness
|
|
||||||
Outbound federation can backfill events
|
|
||||||
|
|
||||||
# Blacklisted due to alias work on Synapse
|
|
||||||
Alias creators can delete canonical alias with no ops
|
|
||||||
|
|
||||||
# Blacklisted because we need to implement v2 invite endpoints for room versions
|
|
||||||
# to be supported (currently fails with M_UNSUPPORTED_ROOM_VERSION)
|
|
||||||
Inbound federation rejects invites which are not signed by the sender
|
|
||||||
|
|
||||||
# Blacklisted because we don't support ignores yet
|
# Blacklisted because we don't support ignores yet
|
||||||
Ignore invite in incremental sync
|
Ignore invite in incremental sync
|
||||||
|
|
||||||
# Blacklisted because this test calls /r0/events which we don't implement
|
|
||||||
New room members see their own join event
|
|
||||||
Existing members see new members' join events
|
|
||||||
|
|
||||||
# See https://github.com/matrix-org/sytest/pull/901
|
|
||||||
Remote invited user can see room metadata
|
|
||||||
|
|
||||||
# We don't implement soft-failed events yet, but because the /send response is vague,
|
|
||||||
# this test thinks it's all fine...
|
|
||||||
Inbound federation accepts a second soft-failed event
|
|
||||||
|
|
||||||
# Relies on a rejected PL event which will never be accepted into the DAG
|
# Relies on a rejected PL event which will never be accepted into the DAG
|
||||||
# Caused by https://github.com/matrix-org/sytest/pull/911
|
# Caused by https://github.com/matrix-org/sytest/pull/911
|
||||||
Outbound federation requests missing prev_events and then asks for /state_ids and resolves the state
|
Outbound federation requests missing prev_events and then asks for /state_ids and resolves the state
|
||||||
|
|
@ -59,21 +16,21 @@ Invited user can reject local invite after originator leaves
|
||||||
Invited user can reject invite for empty room
|
Invited user can reject invite for empty room
|
||||||
If user leaves room, remote user changes device and rejoins we see update in /sync and /keys/changes
|
If user leaves room, remote user changes device and rejoins we see update in /sync and /keys/changes
|
||||||
|
|
||||||
# Blacklisted due to flakiness
|
|
||||||
A prev_batch token from incremental sync can be used in the v1 messages API
|
|
||||||
|
|
||||||
# Blacklisted due to flakiness
|
# Blacklisted due to flakiness
|
||||||
Forgotten room messages cannot be paginated
|
Forgotten room messages cannot be paginated
|
||||||
|
|
||||||
# Blacklisted due to flakiness
|
|
||||||
Can re-join room if re-invited
|
|
||||||
|
|
||||||
# Blacklisted due to flakiness after #1774
|
# Blacklisted due to flakiness after #1774
|
||||||
Local device key changes get to remote servers with correct prev_id
|
Local device key changes get to remote servers with correct prev_id
|
||||||
|
|
||||||
# Flakey
|
# Flakey
|
||||||
Local device key changes appear in /keys/changes
|
Local device key changes appear in /keys/changes
|
||||||
|
Device list doesn't change if remote server is down
|
||||||
|
If a device list update goes missing, the server resyncs on the next one
|
||||||
|
|
||||||
# we don't support groups
|
# we don't support groups
|
||||||
Remove group category
|
Remove group category
|
||||||
Remove group role
|
Remove group role
|
||||||
|
|
||||||
|
# See https://github.com/matrix-org/sytest/pull/1142
|
||||||
|
Device list doesn't change if remote server is down
|
||||||
|
If a device list update goes missing, the server resyncs on the next one
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,6 @@ query for user with no keys returns empty key dict
|
||||||
Can claim one time key using POST
|
Can claim one time key using POST
|
||||||
Can claim remote one time key using POST
|
Can claim remote one time key using POST
|
||||||
Local device key changes appear in v2 /sync
|
Local device key changes appear in v2 /sync
|
||||||
Local device key changes appear in /keys/changes
|
|
||||||
New users appear in /keys/changes
|
New users appear in /keys/changes
|
||||||
Local delete device changes appear in v2 /sync
|
Local delete device changes appear in v2 /sync
|
||||||
Local new device changes appear in v2 /sync
|
Local new device changes appear in v2 /sync
|
||||||
|
|
@ -557,4 +556,19 @@ can fetch self-signing keys over federation
|
||||||
Changing master key notifies local users
|
Changing master key notifies local users
|
||||||
Changing user-signing key notifies local users
|
Changing user-signing key notifies local users
|
||||||
Inbound federation correctly handles soft failed events as extremities
|
Inbound federation correctly handles soft failed events as extremities
|
||||||
Can read configuration endpoint
|
Can read configuration endpoint
|
||||||
|
User can create and send/receive messages in a room with version 7
|
||||||
|
local user can join room with version 7
|
||||||
|
User can invite local user to room with version 7
|
||||||
|
remote user can join room with version 7
|
||||||
|
User can invite remote user to room with version 7
|
||||||
|
Remote user can backfill in a room with version 7
|
||||||
|
Can reject invites over federation for rooms with version 7
|
||||||
|
Can receive redactions from regular users over federation in room version 7
|
||||||
|
Federation publicRoom Name/topic keys are correct
|
||||||
|
Remote invited user can see room metadata
|
||||||
|
Can re-join room if re-invited
|
||||||
|
A prev_batch token from incremental sync can be used in the v1 messages API
|
||||||
|
Inbound federation rejects invites which are not signed by the sender
|
||||||
|
Invited user can reject invite over federation several times
|
||||||
|
Test that we can be reinvited to a room we created
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
// +build wasm
|
// +build wasm
|
||||||
|
|
||||||
package sqlite3
|
package sqlite3
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package accounts
|
package accounts
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !wasm
|
||||||
// +build !wasm
|
// +build !wasm
|
||||||
|
|
||||||
package devices
|
package devices
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue