aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--appservice/appservice.go5
-rw-r--r--appservice/appservice_test.go6
-rw-r--r--appservice/consumers/roomserver.go7
-rw-r--r--build/dendritejs-pinecone/main.go2
-rw-r--r--build/gobind-pinecone/monolith.go19
-rw-r--r--build/gobind-pinecone/monolith_test.go4
-rw-r--r--build/gobind-yggdrasil/monolith.go3
-rw-r--r--clientapi/admin_test.go10
-rw-r--r--clientapi/auth/user_interactive_test.go4
-rw-r--r--clientapi/producers/syncapi.go7
-rw-r--r--clientapi/routing/admin.go3
-rw-r--r--clientapi/routing/aliases.go5
-rw-r--r--clientapi/routing/createroom.go68
-rw-r--r--clientapi/routing/directory.go9
-rw-r--r--clientapi/routing/directory_public.go4
-rw-r--r--clientapi/routing/joinroom.go4
-rw-r--r--clientapi/routing/membership.go15
-rw-r--r--clientapi/routing/peekroom.go4
-rw-r--r--clientapi/routing/presence.go4
-rw-r--r--clientapi/routing/profile.go3
-rw-r--r--clientapi/routing/receipt.go4
-rw-r--r--clientapi/routing/redaction.go5
-rw-r--r--clientapi/routing/register.go15
-rw-r--r--clientapi/routing/routing.go10
-rw-r--r--clientapi/routing/sendevent.go5
-rw-r--r--clientapi/routing/state.go11
-rw-r--r--clientapi/routing/userdirectory.go3
-rw-r--r--clientapi/threepid/invites.go3
-rw-r--r--clientapi/userutil/userutil.go5
-rw-r--r--clientapi/userutil/userutil_test.go12
-rw-r--r--cmd/dendrite-demo-pinecone/defaults/defaults.go4
-rw-r--r--cmd/dendrite-demo-pinecone/main.go3
-rw-r--r--cmd/dendrite-demo-pinecone/monolith/monolith.go6
-rw-r--r--cmd/dendrite-demo-pinecone/relay/retriever.go36
-rw-r--r--cmd/dendrite-demo-pinecone/relay/retriever_test.go8
-rw-r--r--cmd/dendrite-demo-pinecone/rooms/rooms.go14
-rw-r--r--cmd/dendrite-demo-pinecone/users/users.go10
-rw-r--r--cmd/dendrite-demo-yggdrasil/main.go3
-rw-r--r--cmd/dendrite-demo-yggdrasil/signing/fetcher.go5
-rw-r--r--cmd/dendrite-demo-yggdrasil/yggconn/node.go8
-rw-r--r--cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go10
-rw-r--r--cmd/furl/main.go9
-rw-r--r--cmd/generate-config/main.go4
-rw-r--r--federationapi/api/api.go103
-rw-r--r--federationapi/api/servers.go3
-rw-r--r--federationapi/consumers/keychange.go5
-rw-r--r--federationapi/consumers/presence.go7
-rw-r--r--federationapi/consumers/receipts.go9
-rw-r--r--federationapi/consumers/roomserver.go21
-rw-r--r--federationapi/consumers/sendtodevice.go7
-rw-r--r--federationapi/consumers/typing.go5
-rw-r--r--federationapi/federationapi_keys_test.go29
-rw-r--r--federationapi/federationapi_test.go29
-rw-r--r--federationapi/internal/api.go7
-rw-r--r--federationapi/internal/federationclient.go25
-rw-r--r--federationapi/internal/federationclient_test.go6
-rw-r--r--federationapi/internal/keys.go23
-rw-r--r--federationapi/internal/perform.go35
-rw-r--r--federationapi/internal/perform_test.go24
-rw-r--r--federationapi/internal/query.go3
-rw-r--r--federationapi/producers/syncapi.go9
-rw-r--r--federationapi/queue/destinationqueue.go13
-rw-r--r--federationapi/queue/queue.go31
-rw-r--r--federationapi/queue/queue_test.go105
-rw-r--r--federationapi/routing/backfill.go6
-rw-r--r--federationapi/routing/devices.go5
-rw-r--r--federationapi/routing/eventauth.go2
-rw-r--r--federationapi/routing/events.go10
-rw-r--r--federationapi/routing/invite.go10
-rw-r--r--federationapi/routing/join.go15
-rw-r--r--federationapi/routing/keys.go19
-rw-r--r--federationapi/routing/leave.go18
-rw-r--r--federationapi/routing/missingevents.go2
-rw-r--r--federationapi/routing/peek.go2
-rw-r--r--federationapi/routing/profile_test.go6
-rw-r--r--federationapi/routing/publicrooms.go13
-rw-r--r--federationapi/routing/query_test.go7
-rw-r--r--federationapi/routing/routing.go64
-rw-r--r--federationapi/routing/send.go3
-rw-r--r--federationapi/routing/send_test.go8
-rw-r--r--federationapi/routing/state.go8
-rw-r--r--federationapi/routing/threepid.go12
-rw-r--r--federationapi/statistics/statistics.go42
-rw-r--r--federationapi/statistics/statistics_test.go10
-rw-r--r--federationapi/storage/cache/keydb.go3
-rw-r--r--federationapi/storage/interface.go57
-rw-r--r--federationapi/storage/postgres/assumed_offline_table.go8
-rw-r--r--federationapi/storage/postgres/blacklist_table.go8
-rw-r--r--federationapi/storage/postgres/deltas/2022042812473400_addexpiresat.go4
-rw-r--r--federationapi/storage/postgres/inbound_peeks_table.go10
-rw-r--r--federationapi/storage/postgres/joined_hosts_table.go18
-rw-r--r--federationapi/storage/postgres/notary_server_keys_json_table.go3
-rw-r--r--federationapi/storage/postgres/notary_server_keys_metadata_table.go7
-rw-r--r--federationapi/storage/postgres/outbound_peeks_table.go10
-rw-r--r--federationapi/storage/postgres/queue_edus_table.go20
-rw-r--r--federationapi/storage/postgres/queue_pdus_table.go13
-rw-r--r--federationapi/storage/postgres/relay_servers_table.go20
-rw-r--r--federationapi/storage/postgres/server_key_table.go9
-rw-r--r--federationapi/storage/postgres/storage.go4
-rw-r--r--federationapi/storage/shared/storage.go51
-rw-r--r--federationapi/storage/shared/storage_edus.go21
-rw-r--r--federationapi/storage/shared/storage_keys.go3
-rw-r--r--federationapi/storage/shared/storage_pdus.go9
-rw-r--r--federationapi/storage/sqlite3/assumed_offline_table.go8
-rw-r--r--federationapi/storage/sqlite3/blacklist_table.go8
-rw-r--r--federationapi/storage/sqlite3/deltas/2022042812473400_addexpiresat.go4
-rw-r--r--federationapi/storage/sqlite3/inbound_peeks_table.go10
-rw-r--r--federationapi/storage/sqlite3/joined_hosts_table.go18
-rw-r--r--federationapi/storage/sqlite3/notary_server_keys_json_table.go3
-rw-r--r--federationapi/storage/sqlite3/notary_server_keys_metadata_table.go7
-rw-r--r--federationapi/storage/sqlite3/outbound_peeks_table.go10
-rw-r--r--federationapi/storage/sqlite3/queue_edus_table.go21
-rw-r--r--federationapi/storage/sqlite3/queue_pdus_table.go15
-rw-r--r--federationapi/storage/sqlite3/relay_servers_table.go20
-rw-r--r--federationapi/storage/sqlite3/server_key_table.go9
-rw-r--r--federationapi/storage/sqlite3/storage.go4
-rw-r--r--federationapi/storage/storage.go4
-rw-r--r--federationapi/storage/storage_test.go27
-rw-r--r--federationapi/storage/storage_wasm.go2
-rw-r--r--federationapi/storage/tables/interface.go79
-rw-r--r--federationapi/storage/tables/relay_servers_table_test.go28
-rw-r--r--federationapi/types/types.go14
-rw-r--r--go.mod2
-rw-r--r--go.sum8
-rw-r--r--internal/caching/cache_serverkeys.go5
-rw-r--r--internal/eventutil/events.go3
-rw-r--r--internal/fulltext/bleve.go6
-rw-r--r--internal/fulltext/bleve_test.go6
-rw-r--r--internal/pushrules/default.go8
-rw-r--r--internal/transactionrequest.go23
-rw-r--r--internal/transactionrequest_test.go17
-rw-r--r--internal/validate.go6
-rw-r--r--internal/validate_test.go4
-rw-r--r--mediaapi/routing/download.go4
-rw-r--r--mediaapi/routing/routing.go4
-rw-r--r--mediaapi/storage/interface.go10
-rw-r--r--mediaapi/storage/postgres/media_repository_table.go8
-rw-r--r--mediaapi/storage/postgres/thumbnail_table.go8
-rw-r--r--mediaapi/storage/shared/mediaapi.go10
-rw-r--r--mediaapi/storage/sqlite3/media_repository_table.go8
-rw-r--r--mediaapi/storage/sqlite3/thumbnail_table.go8
-rw-r--r--mediaapi/storage/tables/interface.go10
-rw-r--r--mediaapi/types/types.go6
-rw-r--r--relayapi/api/api.go9
-rw-r--r--relayapi/internal/api.go5
-rw-r--r--relayapi/internal/perform.go11
-rw-r--r--relayapi/internal/perform_test.go17
-rw-r--r--relayapi/relayapi_test.go13
-rw-r--r--relayapi/routing/relaytxn.go6
-rw-r--r--relayapi/routing/relaytxn_test.go21
-rw-r--r--relayapi/routing/routing.go18
-rw-r--r--relayapi/routing/sendrelay.go5
-rw-r--r--relayapi/routing/sendrelay_test.go26
-rw-r--r--relayapi/storage/interface.go9
-rw-r--r--relayapi/storage/postgres/relay_queue_table.go9
-rw-r--r--relayapi/storage/postgres/storage.go4
-rw-r--r--relayapi/storage/shared/storage.go11
-rw-r--r--relayapi/storage/sqlite3/relay_queue_table.go9
-rw-r--r--relayapi/storage/sqlite3/storage.go4
-rw-r--r--relayapi/storage/storage.go4
-rw-r--r--relayapi/storage/storage_wasm.go2
-rw-r--r--relayapi/storage/tables/interface.go9
-rw-r--r--relayapi/storage/tables/relay_queue_json_table_test.go3
-rw-r--r--relayapi/storage/tables/relay_queue_table_test.go15
-rw-r--r--roomserver/acls/acls.go5
-rw-r--r--roomserver/api/api.go3
-rw-r--r--roomserver/api/input.go9
-rw-r--r--roomserver/api/output.go3
-rw-r--r--roomserver/api/perform.go54
-rw-r--r--roomserver/api/query.go11
-rw-r--r--roomserver/api/wrapper.go25
-rw-r--r--roomserver/auth/auth.go13
-rw-r--r--roomserver/internal/alias.go7
-rw-r--r--roomserver/internal/api.go7
-rw-r--r--roomserver/internal/helpers/auth.go3
-rw-r--r--roomserver/internal/helpers/helpers.go15
-rw-r--r--roomserver/internal/input/input.go5
-rw-r--r--roomserver/internal/input/input_events.go23
-rw-r--r--roomserver/internal/input/input_events_test.go9
-rw-r--r--roomserver/internal/input/input_membership.go13
-rw-r--r--roomserver/internal/input/input_missing.go13
-rw-r--r--roomserver/internal/perform/perform_admin.go11
-rw-r--r--roomserver/internal/perform/perform_backfill.go35
-rw-r--r--roomserver/internal/perform/perform_invite.go18
-rw-r--r--roomserver/internal/perform/perform_join.go17
-rw-r--r--roomserver/internal/perform/perform_leave.go9
-rw-r--r--roomserver/internal/perform/perform_peek.go3
-rw-r--r--roomserver/internal/perform/perform_unpeek.go3
-rw-r--r--roomserver/internal/perform/perform_upgrade.go59
-rw-r--r--roomserver/internal/query/query.go17
-rw-r--r--roomserver/roomserver_test.go29
-rw-r--r--roomserver/storage/interface.go3
-rw-r--r--roomserver/storage/postgres/membership_table.go4
-rw-r--r--roomserver/storage/shared/storage.go9
-rw-r--r--roomserver/storage/sqlite3/membership_table.go5
-rw-r--r--roomserver/storage/tables/interface.go15
-rw-r--r--setup/config/config.go3
-rw-r--r--setup/config/config_federationapi.go3
-rw-r--r--setup/config/config_global.go17
-rw-r--r--setup/config/config_test.go10
-rw-r--r--setup/mscs/msc2836/msc2836.go13
-rw-r--r--setup/mscs/msc2836/msc2836_test.go3
-rw-r--r--setup/mscs/msc2836/storage.go7
-rw-r--r--setup/mscs/msc2946/msc2946.go43
-rw-r--r--syncapi/consumers/clientapi.go8
-rw-r--r--syncapi/consumers/presence.go8
-rw-r--r--syncapi/consumers/receipts.go4
-rw-r--r--syncapi/consumers/roomserver.go15
-rw-r--r--syncapi/consumers/sendtodevice.go3
-rw-r--r--syncapi/internal/history_visibility.go15
-rw-r--r--syncapi/internal/keychange.go13
-rw-r--r--syncapi/internal/keychange_test.go5
-rw-r--r--syncapi/notifier/notifier.go9
-rw-r--r--syncapi/producers/federationapi_presence.go4
-rw-r--r--syncapi/routing/context.go3
-rw-r--r--syncapi/routing/messages.go5
-rw-r--r--syncapi/routing/routing.go12
-rw-r--r--syncapi/routing/search.go3
-rw-r--r--syncapi/routing/search_test.go3
-rw-r--r--syncapi/storage/interface.go5
-rw-r--r--syncapi/storage/postgres/current_room_state_table.go5
-rw-r--r--syncapi/storage/postgres/presence_table.go6
-rw-r--r--syncapi/storage/postgres/receipt_table.go4
-rw-r--r--syncapi/storage/shared/storage_consumer.go11
-rw-r--r--syncapi/storage/shared/storage_sync.go33
-rw-r--r--syncapi/storage/sqlite3/current_room_state_table.go5
-rw-r--r--syncapi/storage/sqlite3/presence_table.go6
-rw-r--r--syncapi/storage/sqlite3/receipt_table.go4
-rw-r--r--syncapi/storage/storage_test.go39
-rw-r--r--syncapi/storage/tables/current_room_state_test.go4
-rw-r--r--syncapi/storage/tables/interface.go5
-rw-r--r--syncapi/storage/tables/memberships_test.go17
-rw-r--r--syncapi/storage/tables/output_room_events_test.go9
-rw-r--r--syncapi/storage/tables/presence_table_test.go5
-rw-r--r--syncapi/streams/stream_accountdata.go7
-rw-r--r--syncapi/streams/stream_invite.go8
-rw-r--r--syncapi/streams/stream_pdu.go25
-rw-r--r--syncapi/streams/stream_presence.go6
-rw-r--r--syncapi/streams/stream_receipt.go8
-rw-r--r--syncapi/streams/stream_typing.go7
-rw-r--r--syncapi/sync/requestpool.go8
-rw-r--r--syncapi/sync/requestpool_test.go6
-rw-r--r--syncapi/syncapi_test.go19
-rw-r--r--syncapi/synctypes/clientevent.go27
-rw-r--r--syncapi/types/presence.go10
-rw-r--r--syncapi/types/provider.go8
-rw-r--r--syncapi/types/types.go11
-rw-r--r--test/event.go5
-rw-r--r--test/memory_federation_db.go107
-rw-r--r--test/memory_relay_db.go13
-rw-r--r--test/room.go15
-rw-r--r--test/user.go7
-rw-r--r--userapi/api/api.go73
-rw-r--r--userapi/consumers/clientapi.go5
-rw-r--r--userapi/consumers/devicelistupdate.go5
-rw-r--r--userapi/consumers/roomserver.go45
-rw-r--r--userapi/consumers/roomserver_test.go11
-rw-r--r--userapi/consumers/signingkeyupdate.go5
-rw-r--r--userapi/internal/cross_signing.go7
-rw-r--r--userapi/internal/device_list_update.go31
-rw-r--r--userapi/internal/device_list_update_test.go9
-rw-r--r--userapi/internal/key_api.go23
-rw-r--r--userapi/internal/user_api.go7
-rw-r--r--userapi/storage/interface.go75
-rw-r--r--userapi/storage/postgres/account_data_table.go8
-rw-r--r--userapi/storage/postgres/accounts_table.go19
-rw-r--r--userapi/storage/postgres/cross_signing_keys_table.go6
-rw-r--r--userapi/storage/postgres/cross_signing_sigs_table.go7
-rw-r--r--userapi/storage/postgres/deltas/2022110411000000_server_names.go4
-rw-r--r--userapi/storage/postgres/deltas/2022110411000001_server_names.go4
-rw-r--r--userapi/storage/postgres/devices_table.go28
-rw-r--r--userapi/storage/postgres/notifications_table.go16
-rw-r--r--userapi/storage/postgres/openid_table.go10
-rw-r--r--userapi/storage/postgres/profile_table.go10
-rw-r--r--userapi/storage/postgres/pusher_table.go8
-rw-r--r--userapi/storage/postgres/stale_device_lists.go5
-rw-r--r--userapi/storage/postgres/stats_table.go32
-rw-r--r--userapi/storage/postgres/storage.go5
-rw-r--r--userapi/storage/postgres/threepid_table.go8
-rw-r--r--userapi/storage/shared/storage.go85
-rw-r--r--userapi/storage/sqlite3/account_data_table.go8
-rw-r--r--userapi/storage/sqlite3/accounts_table.go19
-rw-r--r--userapi/storage/sqlite3/cross_signing_keys_table.go6
-rw-r--r--userapi/storage/sqlite3/cross_signing_sigs_table.go7
-rw-r--r--userapi/storage/sqlite3/deltas/2022110411000000_server_names.go4
-rw-r--r--userapi/storage/sqlite3/deltas/2022110411000001_server_names.go4
-rw-r--r--userapi/storage/sqlite3/devices_table.go28
-rw-r--r--userapi/storage/sqlite3/notifications_table.go16
-rw-r--r--userapi/storage/sqlite3/openid_table.go10
-rw-r--r--userapi/storage/sqlite3/profile_table.go10
-rw-r--r--userapi/storage/sqlite3/pusher_table.go8
-rw-r--r--userapi/storage/sqlite3/stale_device_lists.go5
-rw-r--r--userapi/storage/sqlite3/stats_table.go36
-rw-r--r--userapi/storage/sqlite3/storage.go5
-rw-r--r--userapi/storage/sqlite3/threepid_table.go8
-rw-r--r--userapi/storage/storage.go4
-rw-r--r--userapi/storage/storage_test.go5
-rw-r--r--userapi/storage/storage_wasm.go2
-rw-r--r--userapi/storage/tables/interface.go81
-rw-r--r--userapi/storage/tables/stale_device_lists_test.go8
-rw-r--r--userapi/storage/tables/stats_table_test.go8
-rw-r--r--userapi/types/storage.go5
-rw-r--r--userapi/userapi_test.go5
-rw-r--r--userapi/util/devices.go4
-rw-r--r--userapi/util/notify.go4
-rw-r--r--userapi/util/phonehomestats.go4
306 files changed, 2120 insertions, 1937 deletions
diff --git a/appservice/appservice.go b/appservice/appservice.go
index 1f6037ee..d94a483e 100644
--- a/appservice/appservice.go
+++ b/appservice/appservice.go
@@ -20,10 +20,9 @@ import (
"github.com/matrix-org/dendrite/setup/jetstream"
"github.com/matrix-org/dendrite/setup/process"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
- "github.com/matrix-org/gomatrixserverlib"
-
appserviceAPI "github.com/matrix-org/dendrite/appservice/api"
"github.com/matrix-org/dendrite/appservice/consumers"
"github.com/matrix-org/dendrite/appservice/query"
@@ -86,7 +85,7 @@ func NewInternalAPI(
func generateAppServiceAccount(
userAPI userapi.AppserviceUserAPI,
as config.ApplicationService,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
var accRes userapi.PerformAccountCreationResponse
err := userAPI.PerformAccountCreation(context.Background(), &userapi.PerformAccountCreationRequest{
diff --git a/appservice/appservice_test.go b/appservice/appservice_test.go
index 282c6312..878ca566 100644
--- a/appservice/appservice_test.go
+++ b/appservice/appservice_test.go
@@ -27,7 +27,7 @@ import (
"github.com/matrix-org/dendrite/setup/jetstream"
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/dendrite/userapi"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/test/testrig"
)
@@ -326,7 +326,7 @@ func TestRoomserverConsumerOneInvite(t *testing.T) {
room := test.NewRoom(t, alice)
// Invite Bob
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(bob.ID))
@@ -345,7 +345,7 @@ func TestRoomserverConsumerOneInvite(t *testing.T) {
t.Fatal(err)
}
for _, ev := range txn.Events {
- if ev.Type != gomatrixserverlib.MRoomMember {
+ if ev.Type != spec.MRoomMember {
continue
}
// Usually we would check the event content for the membership, but since
diff --git a/appservice/consumers/roomserver.go b/appservice/consumers/roomserver.go
index 586ca33a..8ca8220d 100644
--- a/appservice/consumers/roomserver.go
+++ b/appservice/consumers/roomserver.go
@@ -26,6 +26,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -240,7 +241,7 @@ func (s *OutputRoomEventConsumer) appserviceIsInterestedInEvent(ctx context.Cont
return true
}
- if event.Type() == gomatrixserverlib.MRoomMember && event.StateKey() != nil {
+ if event.Type() == spec.MRoomMember && event.StateKey() != nil {
if appservice.IsInterestedInUserID(*event.StateKey()) {
return true
}
@@ -286,7 +287,7 @@ func (s *OutputRoomEventConsumer) appserviceJoinedAtEvent(ctx context.Context, e
switch {
case ev.StateKey == nil:
continue
- case ev.Type != gomatrixserverlib.MRoomMember:
+ case ev.Type != spec.MRoomMember:
continue
}
var membership gomatrixserverlib.MemberContent
@@ -294,7 +295,7 @@ func (s *OutputRoomEventConsumer) appserviceJoinedAtEvent(ctx context.Context, e
switch {
case err != nil:
continue
- case membership.Membership == gomatrixserverlib.Join:
+ case membership.Membership == spec.Join:
if appservice.IsInterestedInUserID(*ev.StateKey) {
return true
}
diff --git a/build/dendritejs-pinecone/main.go b/build/dendritejs-pinecone/main.go
index bc9535fc..61baed90 100644
--- a/build/dendritejs-pinecone/main.go
+++ b/build/dendritejs-pinecone/main.go
@@ -171,7 +171,7 @@ func startup() {
cfg.Global.TrustedIDServers = []string{}
cfg.Global.KeyID = gomatrixserverlib.KeyID(signing.KeyID)
cfg.Global.PrivateKey = sk
- cfg.Global.ServerName = gomatrixserverlib.ServerName(hex.EncodeToString(pk))
+ cfg.Global.ServerName = spec.ServerName(hex.EncodeToString(pk))
cfg.ClientAPI.RegistrationDisabled = false
cfg.ClientAPI.OpenRegistrationWithoutVerificationEnabled = true
diff --git a/build/gobind-pinecone/monolith.go b/build/gobind-pinecone/monolith.go
index 2e2ca04d..8718c71f 100644
--- a/build/gobind-pinecone/monolith.go
+++ b/build/gobind-pinecone/monolith.go
@@ -35,6 +35,7 @@ import (
"github.com/matrix-org/dendrite/setup/process"
userapiAPI "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/pinecone/types"
"github.com/sirupsen/logrus"
@@ -140,9 +141,9 @@ func (m *DendriteMonolith) SetStaticPeer(uri string) {
}
}
-func getServerKeyFromString(nodeID string) (gomatrixserverlib.ServerName, error) {
- var nodeKey gomatrixserverlib.ServerName
- if userID, err := gomatrixserverlib.NewUserID(nodeID, false); err == nil {
+func getServerKeyFromString(nodeID string) (spec.ServerName, error) {
+ var nodeKey spec.ServerName
+ if userID, err := spec.NewUserID(nodeID, false); err == nil {
hexKey, decodeErr := hex.DecodeString(string(userID.Domain()))
if decodeErr != nil || len(hexKey) != ed25519.PublicKeySize {
return "", fmt.Errorf("UserID domain is not a valid ed25519 public key: %v", userID.Domain())
@@ -154,7 +155,7 @@ func getServerKeyFromString(nodeID string) (gomatrixserverlib.ServerName, error)
if decodeErr != nil || len(hexKey) != ed25519.PublicKeySize {
return "", fmt.Errorf("Relay server uri is not a valid ed25519 public key: %v", nodeID)
} else {
- nodeKey = gomatrixserverlib.ServerName(nodeID)
+ nodeKey = spec.ServerName(nodeID)
}
}
@@ -162,7 +163,7 @@ func getServerKeyFromString(nodeID string) (gomatrixserverlib.ServerName, error)
}
func (m *DendriteMonolith) SetRelayServers(nodeID string, uris string) {
- relays := []gomatrixserverlib.ServerName{}
+ relays := []spec.ServerName{}
for _, uri := range strings.Split(uris, ",") {
uri = strings.TrimSpace(uri)
if len(uri) == 0 {
@@ -188,7 +189,7 @@ func (m *DendriteMonolith) SetRelayServers(nodeID string, uris string) {
m.p2pMonolith.RelayRetriever.SetRelayServers(relays)
} else {
relay.UpdateNodeRelayServers(
- gomatrixserverlib.ServerName(nodeKey),
+ spec.ServerName(nodeKey),
relays,
m.p2pMonolith.ProcessCtx.Context(),
m.p2pMonolith.GetFederationAPI(),
@@ -215,7 +216,7 @@ func (m *DendriteMonolith) GetRelayServers(nodeID string) string {
relaysString += string(relay)
}
} else {
- request := api.P2PQueryRelayServersRequest{Server: gomatrixserverlib.ServerName(nodeKey)}
+ request := api.P2PQueryRelayServersRequest{Server: spec.ServerName(nodeKey)}
response := api.P2PQueryRelayServersResponse{}
err := m.p2pMonolith.GetFederationAPI().P2PQueryRelayServers(m.p2pMonolith.ProcessCtx.Context(), &request, &response)
if err != nil {
@@ -291,7 +292,7 @@ func (m *DendriteMonolith) RegisterUser(localpart, password string) (string, err
pubkey := m.p2pMonolith.Router.PublicKey()
userID := userutil.MakeUserID(
localpart,
- gomatrixserverlib.ServerName(hex.EncodeToString(pubkey[:])),
+ spec.ServerName(hex.EncodeToString(pubkey[:])),
)
userReq := &userapiAPI.PerformAccountCreationRequest{
AccountType: userapiAPI.AccountTypeUser,
@@ -342,7 +343,7 @@ func (m *DendriteMonolith) Start() {
prefix := hex.EncodeToString(pk)
cfg := monolith.GenerateDefaultConfig(sk, m.StorageDirectory, m.CacheDirectory, prefix)
- cfg.Global.ServerName = gomatrixserverlib.ServerName(hex.EncodeToString(pk))
+ cfg.Global.ServerName = spec.ServerName(hex.EncodeToString(pk))
cfg.Global.KeyID = gomatrixserverlib.KeyID(signing.KeyID)
cfg.Global.JetStream.InMemory = false
// NOTE : disabled for now since there is a 64 bit alignment panic on 32 bit systems
diff --git a/build/gobind-pinecone/monolith_test.go b/build/gobind-pinecone/monolith_test.go
index 434e07ef..7a7e36c7 100644
--- a/build/gobind-pinecone/monolith_test.go
+++ b/build/gobind-pinecone/monolith_test.go
@@ -18,7 +18,7 @@ import (
"strings"
"testing"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
func TestMonolithStarts(t *testing.T) {
@@ -110,7 +110,7 @@ func TestParseServerKey(t *testing.T) {
name string
serverKey string
expectedErr bool
- expectedKey gomatrixserverlib.ServerName
+ expectedKey spec.ServerName
}{
{
name: "valid userid as key",
diff --git a/build/gobind-yggdrasil/monolith.go b/build/gobind-yggdrasil/monolith.go
index 7ce1892c..720ce37e 100644
--- a/build/gobind-yggdrasil/monolith.go
+++ b/build/gobind-yggdrasil/monolith.go
@@ -33,6 +33,7 @@ import (
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/dendrite/userapi"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
_ "golang.org/x/mobile/bind"
@@ -134,7 +135,7 @@ func (m *DendriteMonolith) Start() {
Generate: true,
SingleDatabase: true,
})
- cfg.Global.ServerName = gomatrixserverlib.ServerName(hex.EncodeToString(pk))
+ cfg.Global.ServerName = spec.ServerName(hex.EncodeToString(pk))
cfg.Global.PrivateKey = sk
cfg.Global.KeyID = gomatrixserverlib.KeyID(signing.KeyID)
cfg.Global.JetStream.StoragePath = config.Path(fmt.Sprintf("%s/", m.StorageDirectory))
diff --git a/clientapi/admin_test.go b/clientapi/admin_test.go
index da1ac70b..cf1c4ef3 100644
--- a/clientapi/admin_test.go
+++ b/clientapi/admin_test.go
@@ -18,8 +18,8 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/setup/jetstream"
"github.com/matrix-org/dendrite/syncapi"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/tidwall/gjson"
@@ -123,7 +123,7 @@ func TestPurgeRoom(t *testing.T) {
room := test.NewRoom(t, aliceAdmin, test.RoomPreset(test.PresetTrustedPrivateChat))
// Invite Bob
- room.CreateAndInsert(t, aliceAdmin, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, aliceAdmin, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(bob.ID))
@@ -194,7 +194,7 @@ func TestAdminEvacuateRoom(t *testing.T) {
room := test.NewRoom(t, aliceAdmin)
// Join Bob
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
@@ -291,10 +291,10 @@ func TestAdminEvacuateUser(t *testing.T) {
room2 := test.NewRoom(t, aliceAdmin)
// Join Bob
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
- room2.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room2.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
diff --git a/clientapi/auth/user_interactive_test.go b/clientapi/auth/user_interactive_test.go
index 383a5339..4003e964 100644
--- a/clientapi/auth/user_interactive_test.go
+++ b/clientapi/auth/user_interactive_test.go
@@ -8,14 +8,14 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
var (
ctx = context.Background()
- serverName = gomatrixserverlib.ServerName("example.com")
+ serverName = spec.ServerName("example.com")
// space separated localpart+password -> account
lookup = make(map[string]*api.Account)
device = &api.Device{
diff --git a/clientapi/producers/syncapi.go b/clientapi/producers/syncapi.go
index 2dc0c484..905ecce4 100644
--- a/clientapi/producers/syncapi.go
+++ b/clientapi/producers/syncapi.go
@@ -22,6 +22,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
@@ -37,13 +38,13 @@ type SyncAPIProducer struct {
TopicTypingEvent string
TopicPresenceEvent string
JetStream nats.JetStreamContext
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
UserAPI userapi.ClientUserAPI
}
func (p *SyncAPIProducer) SendReceipt(
ctx context.Context,
- userID, roomID, eventID, receiptType string, timestamp gomatrixserverlib.Timestamp,
+ userID, roomID, eventID, receiptType string, timestamp spec.Timestamp,
) error {
m := &nats.Msg{
Subject: p.TopicReceiptEvent,
@@ -154,7 +155,7 @@ func (p *SyncAPIProducer) SendPresence(
m.Header.Set("status_msg", *statusMsg)
}
- m.Header.Set("last_active_ts", strconv.Itoa(int(gomatrixserverlib.AsTimestamp(time.Now()))))
+ m.Header.Set("last_active_ts", strconv.Itoa(int(spec.AsTimestamp(time.Now()))))
_, err := p.JetStream.PublishMsg(m, nats.Context(ctx))
return err
diff --git a/clientapi/routing/admin.go b/clientapi/routing/admin.go
index 76e18f2f..809d486d 100644
--- a/clientapi/routing/admin.go
+++ b/clientapi/routing/admin.go
@@ -10,6 +10,7 @@ import (
"github.com/gorilla/mux"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/nats-io/nats.go"
"github.com/sirupsen/logrus"
@@ -262,7 +263,7 @@ func AdminDownloadState(req *http.Request, cfg *config.ClientAPI, device *api.De
&roomserverAPI.PerformAdminDownloadStateRequest{
UserID: device.UserID,
RoomID: roomID,
- ServerName: gomatrixserverlib.ServerName(serverName),
+ ServerName: spec.ServerName(serverName),
},
res,
); err != nil {
diff --git a/clientapi/routing/aliases.go b/clientapi/routing/aliases.go
index 68d0f419..90621daf 100644
--- a/clientapi/routing/aliases.go
+++ b/clientapi/routing/aliases.go
@@ -22,6 +22,7 @@ import (
"github.com/matrix-org/dendrite/roomserver/api"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -31,7 +32,7 @@ func GetAliases(
req *http.Request, rsAPI api.ClientRoomserverAPI, device *userapi.Device, roomID string,
) util.JSONResponse {
stateTuple := gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomHistoryVisibility,
+ EventType: spec.MRoomHistoryVisibility,
StateKey: "",
}
stateReq := &api.QueryCurrentStateRequest{
@@ -53,7 +54,7 @@ func GetAliases(
return util.ErrorResponse(fmt.Errorf("historyVisEvent.HistoryVisibility: %w", err))
}
}
- if visibility != gomatrixserverlib.WorldReadable {
+ if visibility != spec.WorldReadable {
queryReq := api.QueryMembershipForUserRequest{
RoomID: roomID,
UserID: device.UserID,
diff --git a/clientapi/routing/createroom.go b/clientapi/routing/createroom.go
index c2a43213..a07ef2f5 100644
--- a/clientapi/routing/createroom.go
+++ b/clientapi/routing/createroom.go
@@ -26,6 +26,8 @@ import (
roomserverAPI "github.com/matrix-org/dendrite/roomserver/api"
roomserverVersion "github.com/matrix-org/dendrite/roomserver/version"
"github.com/matrix-org/dendrite/userapi/api"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
@@ -233,7 +235,7 @@ func createRoom(
createContent["room_version"] = roomVersion
powerLevelContent := eventutil.InitialPowerLevelsContent(userID)
joinRuleContent := gomatrixserverlib.JoinRuleContent{
- JoinRule: gomatrixserverlib.Invite,
+ JoinRule: spec.Invite,
}
historyVisibilityContent := gomatrixserverlib.HistoryVisibilityContent{
HistoryVisibility: historyVisibilityShared,
@@ -253,40 +255,40 @@ func createRoom(
switch r.Preset {
case presetPrivateChat:
- joinRuleContent.JoinRule = gomatrixserverlib.Invite
+ joinRuleContent.JoinRule = spec.Invite
historyVisibilityContent.HistoryVisibility = historyVisibilityShared
case presetTrustedPrivateChat:
- joinRuleContent.JoinRule = gomatrixserverlib.Invite
+ joinRuleContent.JoinRule = spec.Invite
historyVisibilityContent.HistoryVisibility = historyVisibilityShared
for _, invitee := range r.Invite {
powerLevelContent.Users[invitee] = 100
}
case presetPublicChat:
- joinRuleContent.JoinRule = gomatrixserverlib.Public
+ joinRuleContent.JoinRule = spec.Public
historyVisibilityContent.HistoryVisibility = historyVisibilityShared
}
createEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomCreate,
+ Type: spec.MRoomCreate,
Content: createContent,
}
powerLevelEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomPowerLevels,
+ Type: spec.MRoomPowerLevels,
Content: powerLevelContent,
}
joinRuleEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomJoinRules,
+ Type: spec.MRoomJoinRules,
Content: joinRuleContent,
}
historyVisibilityEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomHistoryVisibility,
+ Type: spec.MRoomHistoryVisibility,
Content: historyVisibilityContent,
}
membershipEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomMember,
+ Type: spec.MRoomMember,
StateKey: userID,
Content: gomatrixserverlib.MemberContent{
- Membership: gomatrixserverlib.Join,
+ Membership: spec.Join,
DisplayName: profile.DisplayName,
AvatarURL: profile.AvatarURL,
},
@@ -299,7 +301,7 @@ func createRoom(
if r.Name != "" {
nameEvent = &fledglingEvent{
- Type: gomatrixserverlib.MRoomName,
+ Type: spec.MRoomName,
Content: eventutil.NameContent{
Name: r.Name,
},
@@ -308,7 +310,7 @@ func createRoom(
if r.Topic != "" {
topicEvent = &fledglingEvent{
- Type: gomatrixserverlib.MRoomTopic,
+ Type: spec.MRoomTopic,
Content: eventutil.TopicContent{
Topic: r.Topic,
},
@@ -317,7 +319,7 @@ func createRoom(
if r.GuestCanJoin {
guestAccessEvent = &fledglingEvent{
- Type: gomatrixserverlib.MRoomGuestAccess,
+ Type: spec.MRoomGuestAccess,
Content: eventutil.GuestAccessContent{
GuestAccess: "can_join",
},
@@ -347,7 +349,7 @@ func createRoom(
}
aliasEvent = &fledglingEvent{
- Type: gomatrixserverlib.MRoomCanonicalAlias,
+ Type: spec.MRoomCanonicalAlias,
Content: eventutil.CanonicalAlias{
Alias: roomAlias,
},
@@ -362,25 +364,25 @@ func createRoom(
}
switch r.InitialState[i].Type {
- case gomatrixserverlib.MRoomCreate:
+ case spec.MRoomCreate:
continue
- case gomatrixserverlib.MRoomPowerLevels:
+ case spec.MRoomPowerLevels:
powerLevelEvent = r.InitialState[i]
- case gomatrixserverlib.MRoomJoinRules:
+ case spec.MRoomJoinRules:
joinRuleEvent = r.InitialState[i]
- case gomatrixserverlib.MRoomHistoryVisibility:
+ case spec.MRoomHistoryVisibility:
historyVisibilityEvent = r.InitialState[i]
- case gomatrixserverlib.MRoomGuestAccess:
+ case spec.MRoomGuestAccess:
guestAccessEvent = &r.InitialState[i]
- case gomatrixserverlib.MRoomName:
+ case spec.MRoomName:
nameEvent = &r.InitialState[i]
- case gomatrixserverlib.MRoomTopic:
+ case spec.MRoomTopic:
topicEvent = &r.InitialState[i]
default:
@@ -510,30 +512,30 @@ func createRoom(
// If this is a direct message then we should invite the participants.
if len(r.Invite) > 0 {
// Build some stripped state for the invite.
- var globalStrippedState []gomatrixserverlib.InviteV2StrippedState
+ var globalStrippedState []fclient.InviteV2StrippedState
for _, event := range builtEvents {
// Chosen events from the spec:
// https://spec.matrix.org/v1.3/client-server-api/#stripped-state
switch event.Type() {
- case gomatrixserverlib.MRoomCreate:
+ case spec.MRoomCreate:
fallthrough
- case gomatrixserverlib.MRoomName:
+ case spec.MRoomName:
fallthrough
- case gomatrixserverlib.MRoomAvatar:
+ case spec.MRoomAvatar:
fallthrough
- case gomatrixserverlib.MRoomTopic:
+ case spec.MRoomTopic:
fallthrough
- case gomatrixserverlib.MRoomCanonicalAlias:
+ case spec.MRoomCanonicalAlias:
fallthrough
- case gomatrixserverlib.MRoomEncryption:
+ case spec.MRoomEncryption:
fallthrough
- case gomatrixserverlib.MRoomMember:
+ case spec.MRoomMember:
fallthrough
- case gomatrixserverlib.MRoomJoinRules:
+ case spec.MRoomJoinRules:
ev := event.Event
globalStrippedState = append(
globalStrippedState,
- gomatrixserverlib.NewInviteV2StrippedState(ev),
+ fclient.NewInviteV2StrippedState(ev),
)
}
}
@@ -542,7 +544,7 @@ func createRoom(
for _, invitee := range r.Invite {
// Build the invite event.
inviteEvent, err := buildMembershipEvent(
- ctx, invitee, "", profileAPI, device, gomatrixserverlib.Invite,
+ ctx, invitee, "", profileAPI, device, spec.Invite,
roomID, r.IsDirect, cfg, evTime, rsAPI, asAPI,
)
if err != nil {
@@ -551,7 +553,7 @@ func createRoom(
}
inviteStrippedState := append(
globalStrippedState,
- gomatrixserverlib.NewInviteV2StrippedState(inviteEvent.Event),
+ fclient.NewInviteV2StrippedState(inviteEvent.Event),
)
// Send the invite event to the roomserver.
var inviteRes roomserverAPI.PerformInviteResponse
diff --git a/clientapi/routing/directory.go b/clientapi/routing/directory.go
index 696f0c1e..e108f3cf 100644
--- a/clientapi/routing/directory.go
+++ b/clientapi/routing/directory.go
@@ -20,6 +20,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/clientapi/httputil"
@@ -35,7 +36,7 @@ type roomDirectoryResponse struct {
Servers []string `json:"servers"`
}
-func (r *roomDirectoryResponse) fillServers(servers []gomatrixserverlib.ServerName) {
+func (r *roomDirectoryResponse) fillServers(servers []spec.ServerName) {
r.Servers = make([]string, len(servers))
for i, s := range servers {
r.Servers[i] = string(s)
@@ -253,7 +254,7 @@ func GetVisibility(
var v roomVisibility
if len(res.RoomIDs) == 1 {
- v.Visibility = gomatrixserverlib.Public
+ v.Visibility = spec.Public
} else {
v.Visibility = "private"
}
@@ -278,7 +279,7 @@ func SetVisibility(
queryEventsReq := roomserverAPI.QueryLatestEventsAndStateRequest{
RoomID: roomID,
StateToFetch: []gomatrixserverlib.StateKeyTuple{{
- EventType: gomatrixserverlib.MRoomPowerLevels,
+ EventType: spec.MRoomPowerLevels,
StateKey: "",
}},
}
@@ -291,7 +292,7 @@ func SetVisibility(
// NOTSPEC: Check if the user's power is greater than power required to change m.room.canonical_alias event
power, _ := gomatrixserverlib.NewPowerLevelContentFromEvent(queryEventsRes.StateEvents[0].Event)
- if power.UserLevel(dev.UserID) < power.EventLevel(gomatrixserverlib.MRoomCanonicalAlias, true) {
+ if power.UserLevel(dev.UserID) < power.EventLevel(spec.MRoomCanonicalAlias, true) {
return util.JSONResponse{
Code: http.StatusForbidden,
JSON: jsonerror.Forbidden("userID doesn't have power level to change visibility"),
diff --git a/clientapi/routing/directory_public.go b/clientapi/routing/directory_public.go
index 8e1e05a5..0616e79e 100644
--- a/clientapi/routing/directory_public.go
+++ b/clientapi/routing/directory_public.go
@@ -23,8 +23,8 @@ import (
"strings"
"sync"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/clientapi/api"
@@ -72,7 +72,7 @@ func GetPostPublicRooms(
}
}
- serverName := gomatrixserverlib.ServerName(request.Server)
+ serverName := spec.ServerName(request.Server)
if serverName != "" && !cfg.Matrix.IsLocalServerName(serverName) {
res, err := federation.GetPublicRoomsFiltered(
req.Context(), cfg.Matrix.ServerName, serverName,
diff --git a/clientapi/routing/joinroom.go b/clientapi/routing/joinroom.go
index 3493dd6d..d736a958 100644
--- a/clientapi/routing/joinroom.go
+++ b/clientapi/routing/joinroom.go
@@ -23,7 +23,7 @@ import (
"github.com/matrix-org/dendrite/clientapi/jsonerror"
roomserverAPI "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -49,7 +49,7 @@ func JoinRoomByIDOrAlias(
for _, serverName := range serverNames {
joinReq.ServerNames = append(
joinReq.ServerNames,
- gomatrixserverlib.ServerName(serverName),
+ spec.ServerName(serverName),
)
}
}
diff --git a/clientapi/routing/membership.go b/clientapi/routing/membership.go
index 1a96d4b1..13de4d00 100644
--- a/clientapi/routing/membership.go
+++ b/clientapi/routing/membership.go
@@ -21,6 +21,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
appserviceAPI "github.com/matrix-org/dendrite/appservice/api"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
@@ -70,7 +71,7 @@ func SendBan(
}
}
- return sendMembership(req.Context(), profileAPI, device, roomID, gomatrixserverlib.Ban, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
+ return sendMembership(req.Context(), profileAPI, device, roomID, spec.Ban, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
}
func sendMembership(ctx context.Context, profileAPI userapi.ClientUserAPI, device *userapi.Device,
@@ -149,14 +150,14 @@ func SendKick(
return util.ErrorResponse(err)
}
// kick is only valid if the user is not currently banned or left (that is, they are joined or invited)
- if queryRes.Membership != gomatrixserverlib.Join && queryRes.Membership != gomatrixserverlib.Invite {
+ if queryRes.Membership != spec.Join && queryRes.Membership != spec.Invite {
return util.JSONResponse{
Code: http.StatusForbidden,
JSON: jsonerror.Unknown("cannot /kick banned or left users"),
}
}
// TODO: should we be using SendLeave instead?
- return sendMembership(req.Context(), profileAPI, device, roomID, gomatrixserverlib.Leave, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
+ return sendMembership(req.Context(), profileAPI, device, roomID, spec.Leave, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
}
func SendUnban(
@@ -190,14 +191,14 @@ func SendUnban(
}
// unban is only valid if the user is currently banned
- if queryRes.Membership != gomatrixserverlib.Ban {
+ if queryRes.Membership != spec.Ban {
return util.JSONResponse{
Code: http.StatusBadRequest,
JSON: jsonerror.Unknown("can only /unban users that are banned"),
}
}
// TODO: should we be using SendLeave instead?
- return sendMembership(req.Context(), profileAPI, device, roomID, gomatrixserverlib.Leave, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
+ return sendMembership(req.Context(), profileAPI, device, roomID, spec.Leave, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
}
func SendInvite(
@@ -255,7 +256,7 @@ func sendInvite(
asAPI appserviceAPI.AppServiceInternalAPI, evTime time.Time,
) (util.JSONResponse, error) {
event, err := buildMembershipEvent(
- ctx, userID, reason, profileAPI, device, gomatrixserverlib.Invite,
+ ctx, userID, reason, profileAPI, device, spec.Invite,
roomID, false, cfg, evTime, rsAPI, asAPI,
)
if err != nil {
@@ -480,7 +481,7 @@ func SendForget(
func getPowerlevels(req *http.Request, rsAPI roomserverAPI.ClientRoomserverAPI, roomID string) (*gomatrixserverlib.PowerLevelContent, *util.JSONResponse) {
plEvent := roomserverAPI.GetStateEvent(req.Context(), rsAPI, roomID, gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomPowerLevels,
+ EventType: spec.MRoomPowerLevels,
StateKey: "",
})
if plEvent == nil {
diff --git a/clientapi/routing/peekroom.go b/clientapi/routing/peekroom.go
index 9b2592eb..9a8f4378 100644
--- a/clientapi/routing/peekroom.go
+++ b/clientapi/routing/peekroom.go
@@ -20,7 +20,7 @@ import (
"github.com/matrix-org/dendrite/clientapi/jsonerror"
roomserverAPI "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -49,7 +49,7 @@ func PeekRoomByIDOrAlias(
for _, serverName := range serverNames {
peekReq.ServerNames = append(
peekReq.ServerNames,
- gomatrixserverlib.ServerName(serverName),
+ spec.ServerName(serverName),
)
}
}
diff --git a/clientapi/routing/presence.go b/clientapi/routing/presence.go
index 093a6246..c50b0943 100644
--- a/clientapi/routing/presence.go
+++ b/clientapi/routing/presence.go
@@ -27,7 +27,7 @@ import (
"github.com/matrix-org/dendrite/setup/jetstream"
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
@@ -123,7 +123,7 @@ func GetPresence(
}
}
- p := types.PresenceInternal{LastActiveTS: gomatrixserverlib.Timestamp(lastActive)}
+ p := types.PresenceInternal{LastActiveTS: spec.Timestamp(lastActive)}
currentlyActive := p.CurrentlyActive()
return util.JSONResponse{
Code: http.StatusOK,
diff --git a/clientapi/routing/profile.go b/clientapi/routing/profile.go
index 38b37a25..6d1a0824 100644
--- a/clientapi/routing/profile.go
+++ b/clientapi/routing/profile.go
@@ -21,6 +21,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
appserviceAPI "github.com/matrix-org/dendrite/appservice/api"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
@@ -351,7 +352,7 @@ func buildMembershipEvents(
}
content := gomatrixserverlib.MemberContent{
- Membership: gomatrixserverlib.Join,
+ Membership: spec.Join,
}
content.DisplayName = newProfile.DisplayName
diff --git a/clientapi/routing/receipt.go b/clientapi/routing/receipt.go
index 99217a78..634b60b7 100644
--- a/clientapi/routing/receipt.go
+++ b/clientapi/routing/receipt.go
@@ -22,7 +22,7 @@ import (
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/clientapi/producers"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/userapi/api"
userapi "github.com/matrix-org/dendrite/userapi/api"
@@ -31,7 +31,7 @@ import (
)
func SetReceipt(req *http.Request, userAPI api.ClientUserAPI, syncProducer *producers.SyncAPIProducer, device *userapi.Device, roomID, receiptType, eventID string) util.JSONResponse {
- timestamp := gomatrixserverlib.AsTimestamp(time.Now())
+ timestamp := spec.AsTimestamp(time.Now())
logrus.WithFields(logrus.Fields{
"roomID": roomID,
"receiptType": receiptType,
diff --git a/clientapi/routing/redaction.go b/clientapi/routing/redaction.go
index f86bbc8f..2bdf6705 100644
--- a/clientapi/routing/redaction.go
+++ b/clientapi/routing/redaction.go
@@ -20,6 +20,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/clientapi/httputil"
@@ -77,7 +78,7 @@ func SendRedaction(
allowedToRedact := ev.Sender() == device.UserID
if !allowedToRedact {
plEvent := roomserverAPI.GetStateEvent(req.Context(), rsAPI, roomID, gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomPowerLevels,
+ EventType: spec.MRoomPowerLevels,
StateKey: "",
})
if plEvent == nil {
@@ -114,7 +115,7 @@ func SendRedaction(
builder := gomatrixserverlib.EventBuilder{
Sender: device.UserID,
RoomID: roomID,
- Type: gomatrixserverlib.MRoomRedaction,
+ Type: spec.MRoomRedaction,
Redacts: eventID,
}
err := builder.SetContent(r)
diff --git a/clientapi/routing/register.go b/clientapi/routing/register.go
index d880961f..8e7f7758 100644
--- a/clientapi/routing/register.go
+++ b/clientapi/routing/register.go
@@ -37,6 +37,7 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/gomatrixserverlib/tokens"
"github.com/matrix-org/util"
"github.com/prometheus/client_golang/prometheus"
@@ -206,10 +207,10 @@ var (
// previous parameters with the ones supplied. This mean you cannot "build up" request params.
type registerRequest struct {
// registration parameters
- Password string `json:"password"`
- Username string `json:"username"`
- ServerName gomatrixserverlib.ServerName `json:"-"`
- Admin bool `json:"admin"`
+ Password string `json:"password"`
+ Username string `json:"username"`
+ ServerName spec.ServerName `json:"-"`
+ Admin bool `json:"admin"`
// user-interactive auth params
Auth authDict `json:"auth"`
@@ -478,7 +479,7 @@ func Register(
}
var r registerRequest
- host := gomatrixserverlib.ServerName(req.Host)
+ host := spec.ServerName(req.Host)
if v := cfg.Matrix.VirtualHostForHTTPHost(host); v != nil {
r.ServerName = v.ServerName
} else {
@@ -824,7 +825,7 @@ func checkAndCompleteFlow(
func completeRegistration(
ctx context.Context,
userAPI userapi.ClientUserAPI,
- username string, serverName gomatrixserverlib.ServerName, displayName string,
+ username string, serverName spec.ServerName, displayName string,
password, appserviceID, ipAddr, userAgent, sessionID string,
inhibitLogin eventutil.WeakBoolean,
deviceDisplayName, deviceID *string,
@@ -994,7 +995,7 @@ func RegisterAvailable(
// Squash username to all lowercase letters
username = strings.ToLower(username)
domain := cfg.Matrix.ServerName
- host := gomatrixserverlib.ServerName(req.Host)
+ host := spec.ServerName(req.Host)
if v := cfg.Matrix.VirtualHostForHTTPHost(host); v != nil {
domain = v.ServerName
}
diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go
index c7d01a01..9bf9ac80 100644
--- a/clientapi/routing/routing.go
+++ b/clientapi/routing/routing.go
@@ -22,8 +22,8 @@ import (
"github.com/gorilla/mux"
"github.com/matrix-org/dendrite/setup/base"
userapi "github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/nats-io/nats.go"
"github.com/prometheus/client_golang/prometheus"
@@ -257,7 +257,7 @@ func Setup(
}),
).Methods(http.MethodPost, http.MethodOptions)
v3mux.Handle("/join/{roomIDOrAlias}",
- httputil.MakeAuthAPI(gomatrixserverlib.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI(spec.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
if r := rateLimits.Limit(req, device); r != nil {
return *r
}
@@ -273,7 +273,7 @@ func Setup(
if mscCfg.Enabled("msc2753") {
v3mux.Handle("/peek/{roomIDOrAlias}",
- httputil.MakeAuthAPI(gomatrixserverlib.Peek, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI(spec.Peek, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
if r := rateLimits.Limit(req, device); r != nil {
return *r
}
@@ -293,7 +293,7 @@ func Setup(
}, httputil.WithAllowGuests()),
).Methods(http.MethodGet, http.MethodOptions)
v3mux.Handle("/rooms/{roomID}/join",
- httputil.MakeAuthAPI(gomatrixserverlib.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI(spec.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
if r := rateLimits.Limit(req, device); r != nil {
return *r
}
@@ -1398,7 +1398,7 @@ func Setup(
}, httputil.WithAllowGuests()),
).Methods(http.MethodPost, http.MethodOptions)
v3mux.Handle("/rooms/{roomId}/receipt/{receiptType}/{eventId}",
- httputil.MakeAuthAPI(gomatrixserverlib.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI(spec.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
if r := rateLimits.Limit(req, device); r != nil {
return *r
}
diff --git a/clientapi/routing/sendevent.go b/clientapi/routing/sendevent.go
index 90af9ac4..b1f8fa03 100644
--- a/clientapi/routing/sendevent.go
+++ b/clientapi/routing/sendevent.go
@@ -24,6 +24,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/prometheus/client_golang/prometheus"
"github.com/sirupsen/logrus"
@@ -117,7 +118,7 @@ func SendEvent(
// If we're sending a membership update, make sure to strip the authorised
// via key if it is present, otherwise other servers won't be able to auth
// the event if the room is set to the "restricted" join rule.
- if eventType == gomatrixserverlib.MRoomMember {
+ if eventType == spec.MRoomMember {
delete(r, "join_authorised_via_users_server")
}
@@ -136,7 +137,7 @@ func SendEvent(
timeToGenerateEvent := time.Since(startedGeneratingEvent)
// validate that the aliases exists
- if eventType == gomatrixserverlib.MRoomCanonicalAlias && stateKey != nil && *stateKey == "" {
+ if eventType == spec.MRoomCanonicalAlias && stateKey != nil && *stateKey == "" {
aliasReq := api.AliasEvent{}
if err = json.Unmarshal(e.Content(), &aliasReq); err != nil {
return util.ErrorResponse(fmt.Errorf("unable to parse alias event: %w", err))
diff --git a/clientapi/routing/state.go b/clientapi/routing/state.go
index 59ed9a5f..3fb15766 100644
--- a/clientapi/routing/state.go
+++ b/clientapi/routing/state.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/synctypes"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
log "github.com/sirupsen/logrus"
)
@@ -68,7 +69,7 @@ func OnIncomingStateRequest(ctx context.Context, device *userapi.Device, rsAPI a
// that marks the room as world-readable. If we don't then we assume that
// the room is not world-readable.
for _, ev := range stateRes.StateEvents {
- if ev.Type() == gomatrixserverlib.MRoomHistoryVisibility {
+ if ev.Type() == spec.MRoomHistoryVisibility {
content := map[string]string{}
if err := json.Unmarshal(ev.Content(), &content); err != nil {
util.GetLogger(ctx).WithError(err).Error("json.Unmarshal for history visibility failed")
@@ -185,9 +186,9 @@ func OnIncomingStateTypeRequest(
StateKey: stateKey,
},
}
- if evType != gomatrixserverlib.MRoomHistoryVisibility && stateKey != "" {
+ if evType != spec.MRoomHistoryVisibility && stateKey != "" {
stateToFetch = append(stateToFetch, gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomHistoryVisibility,
+ EventType: spec.MRoomHistoryVisibility,
StateKey: "",
})
}
@@ -208,7 +209,7 @@ func OnIncomingStateTypeRequest(
// that marks the room as world-readable. If we don't then we assume that
// the room is not world-readable.
for _, ev := range stateRes.StateEvents {
- if ev.Type() == gomatrixserverlib.MRoomHistoryVisibility {
+ if ev.Type() == spec.MRoomHistoryVisibility {
content := map[string]string{}
if err := json.Unmarshal(ev.Content(), &content); err != nil {
util.GetLogger(ctx).WithError(err).Error("json.Unmarshal for history visibility failed")
@@ -242,7 +243,7 @@ func OnIncomingStateTypeRequest(
}
// If the user has never been in the room then stop at this point.
// We won't tell the user about a room they have never joined.
- if !membershipRes.HasBeenInRoom || membershipRes.Membership == gomatrixserverlib.Ban {
+ if !membershipRes.HasBeenInRoom || membershipRes.Membership == spec.Ban {
return util.JSONResponse{
Code: http.StatusForbidden,
JSON: jsonerror.Forbidden(fmt.Sprintf("Unknown room %q or user %q has never joined this room", roomID, device.UserID)),
diff --git a/clientapi/routing/userdirectory.go b/clientapi/routing/userdirectory.go
index a4cf8e9c..0d021c7a 100644
--- a/clientapi/routing/userdirectory.go
+++ b/clientapi/routing/userdirectory.go
@@ -27,6 +27,7 @@ import (
"github.com/matrix-org/gomatrix"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -43,7 +44,7 @@ func SearchUserDirectory(
searchString string,
limit int,
federation *fclient.FederationClient,
- localServerName gomatrixserverlib.ServerName,
+ localServerName spec.ServerName,
) util.JSONResponse {
if limit < 10 {
limit = 10
diff --git a/clientapi/threepid/invites.go b/clientapi/threepid/invites.go
index a9910b78..34fa5415 100644
--- a/clientapi/threepid/invites.go
+++ b/clientapi/threepid/invites.go
@@ -30,6 +30,7 @@ import (
"github.com/matrix-org/dendrite/setup/config"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// MembershipRequest represents the body of an incoming POST request
@@ -278,7 +279,7 @@ func queryIDServerPubKey(ctx context.Context, idServerName string, keyID string)
}
var pubKeyRes struct {
- PublicKey gomatrixserverlib.Base64Bytes `json:"public_key"`
+ PublicKey spec.Base64Bytes `json:"public_key"`
}
if resp.StatusCode != http.StatusOK {
diff --git a/clientapi/userutil/userutil.go b/clientapi/userutil/userutil.go
index 9be1e9b3..26237142 100644
--- a/clientapi/userutil/userutil.go
+++ b/clientapi/userutil/userutil.go
@@ -19,13 +19,14 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// ParseUsernameParam extracts localpart from usernameParam.
// usernameParam can either be a user ID or just the localpart/username.
// If serverName is passed, it is verified against the domain obtained from usernameParam (if present)
// Returns error in case of invalid usernameParam.
-func ParseUsernameParam(usernameParam string, cfg *config.Global) (string, gomatrixserverlib.ServerName, error) {
+func ParseUsernameParam(usernameParam string, cfg *config.Global) (string, spec.ServerName, error) {
localpart := usernameParam
if strings.HasPrefix(usernameParam, "@") {
@@ -45,6 +46,6 @@ func ParseUsernameParam(usernameParam string, cfg *config.Global) (string, gomat
}
// MakeUserID generates user ID from localpart & server name
-func MakeUserID(localpart string, server gomatrixserverlib.ServerName) string {
+func MakeUserID(localpart string, server spec.ServerName) string {
return fmt.Sprintf("@%s:%s", localpart, string(server))
}
diff --git a/clientapi/userutil/userutil_test.go b/clientapi/userutil/userutil_test.go
index 8910983b..cdda0a88 100644
--- a/clientapi/userutil/userutil_test.go
+++ b/clientapi/userutil/userutil_test.go
@@ -16,16 +16,16 @@ import (
"testing"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
var (
- localpart = "somelocalpart"
- serverName gomatrixserverlib.ServerName = "someservername"
- invalidServerName gomatrixserverlib.ServerName = "invalidservername"
- goodUserID = "@" + localpart + ":" + string(serverName)
- badUserID = "@bad:user:name@noservername:"
+ localpart = "somelocalpart"
+ serverName spec.ServerName = "someservername"
+ invalidServerName spec.ServerName = "invalidservername"
+ goodUserID = "@" + localpart + ":" + string(serverName)
+ badUserID = "@bad:user:name@noservername:"
)
// TestGoodUserID checks that correct localpart is returned for a valid user ID.
diff --git a/cmd/dendrite-demo-pinecone/defaults/defaults.go b/cmd/dendrite-demo-pinecone/defaults/defaults.go
index c9249313..9da54d5f 100644
--- a/cmd/dendrite-demo-pinecone/defaults/defaults.go
+++ b/cmd/dendrite-demo-pinecone/defaults/defaults.go
@@ -14,8 +14,8 @@
package defaults
-import "github.com/matrix-org/gomatrixserverlib"
+import "github.com/matrix-org/gomatrixserverlib/spec"
-var DefaultServerNames = map[gomatrixserverlib.ServerName]struct{}{
+var DefaultServerNames = map[spec.ServerName]struct{}{
"3bf0258d23c60952639cc4c69c71d1508a7d43a0475d9000ff900a1848411ec7": {},
}
diff --git a/cmd/dendrite-demo-pinecone/main.go b/cmd/dendrite-demo-pinecone/main.go
index 7c710cbb..18d1dd31 100644
--- a/cmd/dendrite-demo-pinecone/main.go
+++ b/cmd/dendrite-demo-pinecone/main.go
@@ -33,6 +33,7 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/setup/process"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
pineconeRouter "github.com/matrix-org/pinecone/router"
@@ -77,7 +78,7 @@ func main() {
cfg = monolith.GenerateDefaultConfig(sk, *instanceDir, *instanceDir, *instanceName)
}
- cfg.Global.ServerName = gomatrixserverlib.ServerName(hex.EncodeToString(pk))
+ cfg.Global.ServerName = spec.ServerName(hex.EncodeToString(pk))
cfg.Global.KeyID = gomatrixserverlib.KeyID(signing.KeyID)
p2pMonolith := monolith.P2PMonolith{}
diff --git a/cmd/dendrite-demo-pinecone/monolith/monolith.go b/cmd/dendrite-demo-pinecone/monolith/monolith.go
index d1a6e39e..39747386 100644
--- a/cmd/dendrite-demo-pinecone/monolith/monolith.go
+++ b/cmd/dendrite-demo-pinecone/monolith/monolith.go
@@ -51,7 +51,7 @@ import (
"github.com/matrix-org/dendrite/setup/process"
"github.com/matrix-org/dendrite/userapi"
userAPI "github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
pineconeConnections "github.com/matrix-org/pinecone/connections"
@@ -347,7 +347,7 @@ func (p *P2PMonolith) startEventHandler() {
eLog := logrus.WithField("pinecone", "events")
p.RelayRetriever = relay.NewRelayServerRetriever(
context.Background(),
- gomatrixserverlib.ServerName(p.Router.PublicKey().String()),
+ spec.ServerName(p.Router.PublicKey().String()),
p.dendrite.FederationAPI,
p.dendrite.RelayAPI,
stopRelayServerSync,
@@ -373,7 +373,7 @@ func (p *P2PMonolith) startEventHandler() {
// eLog.Info("Broadcast received from: ", e.PeerID)
req := &federationAPI.PerformWakeupServersRequest{
- ServerNames: []gomatrixserverlib.ServerName{gomatrixserverlib.ServerName(e.PeerID)},
+ ServerNames: []spec.ServerName{spec.ServerName(e.PeerID)},
}
res := &federationAPI.PerformWakeupServersResponse{}
if err := p.dendrite.FederationAPI.PerformWakeupServers(p.ProcessCtx.Context(), req, res); err != nil {
diff --git a/cmd/dendrite-demo-pinecone/relay/retriever.go b/cmd/dendrite-demo-pinecone/relay/retriever.go
index 6b34f641..3c76ad60 100644
--- a/cmd/dendrite-demo-pinecone/relay/retriever.go
+++ b/cmd/dendrite-demo-pinecone/relay/retriever.go
@@ -21,7 +21,7 @@ import (
federationAPI "github.com/matrix-org/dendrite/federationapi/api"
relayServerAPI "github.com/matrix-org/dendrite/relayapi/api"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
"go.uber.org/atomic"
)
@@ -32,10 +32,10 @@ const (
type RelayServerRetriever struct {
ctx context.Context
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
federationAPI federationAPI.FederationInternalAPI
relayAPI relayServerAPI.RelayInternalAPI
- relayServersQueried map[gomatrixserverlib.ServerName]bool
+ relayServersQueried map[spec.ServerName]bool
queriedServersMutex sync.Mutex
running atomic.Bool
quit chan bool
@@ -43,7 +43,7 @@ type RelayServerRetriever struct {
func NewRelayServerRetriever(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
federationAPI federationAPI.FederationInternalAPI,
relayAPI relayServerAPI.RelayInternalAPI,
quit chan bool,
@@ -53,14 +53,14 @@ func NewRelayServerRetriever(
serverName: serverName,
federationAPI: federationAPI,
relayAPI: relayAPI,
- relayServersQueried: make(map[gomatrixserverlib.ServerName]bool),
+ relayServersQueried: make(map[spec.ServerName]bool),
running: *atomic.NewBool(false),
quit: quit,
}
}
func (r *RelayServerRetriever) InitializeRelayServers(eLog *logrus.Entry) {
- request := federationAPI.P2PQueryRelayServersRequest{Server: gomatrixserverlib.ServerName(r.serverName)}
+ request := federationAPI.P2PQueryRelayServersRequest{Server: spec.ServerName(r.serverName)}
response := federationAPI.P2PQueryRelayServersResponse{}
err := r.federationAPI.P2PQueryRelayServers(r.ctx, &request, &response)
if err != nil {
@@ -76,13 +76,13 @@ func (r *RelayServerRetriever) InitializeRelayServers(eLog *logrus.Entry) {
eLog.Infof("Registered relay servers: %v", response.RelayServers)
}
-func (r *RelayServerRetriever) SetRelayServers(servers []gomatrixserverlib.ServerName) {
+func (r *RelayServerRetriever) SetRelayServers(servers []spec.ServerName) {
UpdateNodeRelayServers(r.serverName, servers, r.ctx, r.federationAPI)
// Replace list of servers to sync with and mark them all as unsynced.
r.queriedServersMutex.Lock()
defer r.queriedServersMutex.Unlock()
- r.relayServersQueried = make(map[gomatrixserverlib.ServerName]bool)
+ r.relayServersQueried = make(map[spec.ServerName]bool)
for _, server := range servers {
r.relayServersQueried[server] = false
}
@@ -90,10 +90,10 @@ func (r *RelayServerRetriever) SetRelayServers(servers []gomatrixserverlib.Serve
r.StartSync()
}
-func (r *RelayServerRetriever) GetRelayServers() []gomatrixserverlib.ServerName {
+func (r *RelayServerRetriever) GetRelayServers() []spec.ServerName {
r.queriedServersMutex.Lock()
defer r.queriedServersMutex.Unlock()
- relayServers := []gomatrixserverlib.ServerName{}
+ relayServers := []spec.ServerName{}
for server := range r.relayServersQueried {
relayServers = append(relayServers, server)
}
@@ -101,11 +101,11 @@ func (r *RelayServerRetriever) GetRelayServers() []gomatrixserverlib.ServerName
return relayServers
}
-func (r *RelayServerRetriever) GetQueriedServerStatus() map[gomatrixserverlib.ServerName]bool {
+func (r *RelayServerRetriever) GetQueriedServerStatus() map[spec.ServerName]bool {
r.queriedServersMutex.Lock()
defer r.queriedServersMutex.Unlock()
- result := map[gomatrixserverlib.ServerName]bool{}
+ result := map[spec.ServerName]bool{}
for server, queried := range r.relayServersQueried {
result[server] = queried
}
@@ -128,7 +128,7 @@ func (r *RelayServerRetriever) SyncRelayServers(stop <-chan bool) {
t := time.NewTimer(relayServerRetryInterval)
for {
- relayServersToQuery := []gomatrixserverlib.ServerName{}
+ relayServersToQuery := []spec.ServerName{}
func() {
r.queriedServersMutex.Lock()
defer r.queriedServersMutex.Unlock()
@@ -158,10 +158,10 @@ func (r *RelayServerRetriever) SyncRelayServers(stop <-chan bool) {
}
}
-func (r *RelayServerRetriever) queryRelayServers(relayServers []gomatrixserverlib.ServerName) {
+func (r *RelayServerRetriever) queryRelayServers(relayServers []spec.ServerName) {
logrus.Info("Querying relay servers for any available transactions")
for _, server := range relayServers {
- userID, err := gomatrixserverlib.NewUserID("@user:"+string(r.serverName), false)
+ userID, err := spec.NewUserID("@user:"+string(r.serverName), false)
if err != nil {
return
}
@@ -187,8 +187,8 @@ func (r *RelayServerRetriever) queryRelayServers(relayServers []gomatrixserverli
}
func UpdateNodeRelayServers(
- node gomatrixserverlib.ServerName,
- relays []gomatrixserverlib.ServerName,
+ node spec.ServerName,
+ relays []spec.ServerName,
ctx context.Context,
fedAPI federationAPI.FederationInternalAPI,
) {
@@ -201,7 +201,7 @@ func UpdateNodeRelayServers(
}
// Remove old, non-matching relays
- var serversToRemove []gomatrixserverlib.ServerName
+ var serversToRemove []spec.ServerName
for _, existingServer := range response.RelayServers {
shouldRemove := true
for _, newServer := range relays {
diff --git a/cmd/dendrite-demo-pinecone/relay/retriever_test.go b/cmd/dendrite-demo-pinecone/relay/retriever_test.go
index 6c4c3a52..6ec9aaf5 100644
--- a/cmd/dendrite-demo-pinecone/relay/retriever_test.go
+++ b/cmd/dendrite-demo-pinecone/relay/retriever_test.go
@@ -21,13 +21,13 @@ import (
federationAPI "github.com/matrix-org/dendrite/federationapi/api"
relayServerAPI "github.com/matrix-org/dendrite/relayapi/api"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"gotest.tools/v3/poll"
)
-var testRelayServers = []gomatrixserverlib.ServerName{"relay1", "relay2"}
+var testRelayServers = []spec.ServerName{"relay1", "relay2"}
type FakeFedAPI struct {
federationAPI.FederationInternalAPI
@@ -48,8 +48,8 @@ type FakeRelayAPI struct {
func (r *FakeRelayAPI) PerformRelayServerSync(
ctx context.Context,
- userID gomatrixserverlib.UserID,
- relayServer gomatrixserverlib.ServerName,
+ userID spec.UserID,
+ relayServer spec.ServerName,
) error {
return nil
}
diff --git a/cmd/dendrite-demo-pinecone/rooms/rooms.go b/cmd/dendrite-demo-pinecone/rooms/rooms.go
index 808956c9..73423ef6 100644
--- a/cmd/dendrite-demo-pinecone/rooms/rooms.go
+++ b/cmd/dendrite-demo-pinecone/rooms/rooms.go
@@ -21,8 +21,8 @@ import (
"github.com/matrix-org/dendrite/cmd/dendrite-demo-pinecone/defaults"
"github.com/matrix-org/dendrite/federationapi/api"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
pineconeRouter "github.com/matrix-org/pinecone/router"
@@ -52,16 +52,16 @@ func NewPineconeRoomProvider(
}
func (p *PineconeRoomProvider) Rooms() []fclient.PublicRoom {
- list := map[gomatrixserverlib.ServerName]struct{}{}
+ list := map[spec.ServerName]struct{}{}
for k := range defaults.DefaultServerNames {
list[k] = struct{}{}
}
for _, k := range p.r.Peers() {
- list[gomatrixserverlib.ServerName(k.PublicKey)] = struct{}{}
+ list[spec.ServerName(k.PublicKey)] = struct{}{}
}
return bulkFetchPublicRoomsFromServers(
context.Background(), p.fedClient,
- gomatrixserverlib.ServerName(p.r.PublicKey().String()), list,
+ spec.ServerName(p.r.PublicKey().String()), list,
)
}
@@ -69,8 +69,8 @@ func (p *PineconeRoomProvider) Rooms() []fclient.PublicRoom {
// Returns a list of public rooms.
func bulkFetchPublicRoomsFromServers(
ctx context.Context, fedClient *fclient.FederationClient,
- origin gomatrixserverlib.ServerName,
- homeservers map[gomatrixserverlib.ServerName]struct{},
+ origin spec.ServerName,
+ homeservers map[spec.ServerName]struct{},
) (publicRooms []fclient.PublicRoom) {
limit := 200
// follow pipeline semantics, see https://blog.golang.org/pipelines for more info.
@@ -84,7 +84,7 @@ func bulkFetchPublicRoomsFromServers(
// concurrently query for public rooms
reqctx, reqcancel := context.WithTimeout(ctx, time.Second*5)
for hs := range homeservers {
- go func(homeserverDomain gomatrixserverlib.ServerName) {
+ go func(homeserverDomain spec.ServerName) {
defer wg.Done()
util.GetLogger(reqctx).WithField("hs", homeserverDomain).Info("Querying HS for public rooms")
fres, err := fedClient.GetPublicRooms(reqctx, origin, homeserverDomain, int(limit), "", false, "")
diff --git a/cmd/dendrite-demo-pinecone/users/users.go b/cmd/dendrite-demo-pinecone/users/users.go
index 5bd056e1..9c844ab6 100644
--- a/cmd/dendrite-demo-pinecone/users/users.go
+++ b/cmd/dendrite-demo-pinecone/users/users.go
@@ -27,8 +27,8 @@ import (
clienthttputil "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/cmd/dendrite-demo-pinecone/defaults"
userapi "github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
pineconeRouter "github.com/matrix-org/pinecone/router"
@@ -80,12 +80,12 @@ func (p *PineconeUserProvider) FederatedUserProfiles(w http.ResponseWriter, r *h
}
func (p *PineconeUserProvider) QuerySearchProfiles(ctx context.Context, req *userapi.QuerySearchProfilesRequest, res *userapi.QuerySearchProfilesResponse) error {
- list := map[gomatrixserverlib.ServerName]struct{}{}
+ list := map[spec.ServerName]struct{}{}
for k := range defaults.DefaultServerNames {
list[k] = struct{}{}
}
for _, k := range p.r.Peers() {
- list[gomatrixserverlib.ServerName(k.PublicKey)] = struct{}{}
+ list[spec.ServerName(k.PublicKey)] = struct{}{}
}
res.Profiles = bulkFetchUserDirectoriesFromServers(context.Background(), req, p.fedClient, list)
return nil
@@ -96,7 +96,7 @@ func (p *PineconeUserProvider) QuerySearchProfiles(ctx context.Context, req *use
func bulkFetchUserDirectoriesFromServers(
ctx context.Context, req *userapi.QuerySearchProfilesRequest,
fedClient *fclient.FederationClient,
- homeservers map[gomatrixserverlib.ServerName]struct{},
+ homeservers map[spec.ServerName]struct{},
) (profiles []authtypes.Profile) {
jsonBody, err := json.Marshal(req)
if err != nil {
@@ -115,7 +115,7 @@ func bulkFetchUserDirectoriesFromServers(
// concurrently query for public rooms
reqctx, reqcancel := context.WithTimeout(ctx, time.Second*5)
for hs := range homeservers {
- go func(homeserverDomain gomatrixserverlib.ServerName) {
+ go func(homeserverDomain spec.ServerName) {
defer wg.Done()
util.GetLogger(reqctx).WithField("hs", homeserverDomain).Info("Querying HS for users")
diff --git a/cmd/dendrite-demo-yggdrasil/main.go b/cmd/dendrite-demo-yggdrasil/main.go
index 9a195990..25c1475c 100644
--- a/cmd/dendrite-demo-yggdrasil/main.go
+++ b/cmd/dendrite-demo-yggdrasil/main.go
@@ -33,6 +33,7 @@ import (
"github.com/matrix-org/dendrite/setup/jetstream"
"github.com/matrix-org/dendrite/setup/process"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/gorilla/mux"
"github.com/matrix-org/dendrite/appservice"
@@ -145,7 +146,7 @@ func main() {
}
}
- cfg.Global.ServerName = gomatrixserverlib.ServerName(hex.EncodeToString(pk))
+ cfg.Global.ServerName = spec.ServerName(hex.EncodeToString(pk))
cfg.Global.KeyID = gomatrixserverlib.KeyID(signing.KeyID)
configErrors := &config.ConfigErrors{}
diff --git a/cmd/dendrite-demo-yggdrasil/signing/fetcher.go b/cmd/dendrite-demo-yggdrasil/signing/fetcher.go
index bcec0cbe..aeaa2022 100644
--- a/cmd/dendrite-demo-yggdrasil/signing/fetcher.go
+++ b/cmd/dendrite-demo-yggdrasil/signing/fetcher.go
@@ -21,6 +21,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const KeyID = "ed25519:dendrite-demo-yggdrasil"
@@ -36,7 +37,7 @@ func (f *YggdrasilKeys) KeyRing() *gomatrixserverlib.KeyRing {
func (f *YggdrasilKeys) FetchKeys(
ctx context.Context,
- requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
+ requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp,
) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) {
res := make(map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult)
for req := range requests {
@@ -54,7 +55,7 @@ func (f *YggdrasilKeys) FetchKeys(
Key: hexkey,
},
ExpiredTS: gomatrixserverlib.PublicKeyNotExpired,
- ValidUntilTS: gomatrixserverlib.AsTimestamp(time.Now().Add(24 * time.Hour * 365)),
+ ValidUntilTS: spec.AsTimestamp(time.Now().Add(24 * time.Hour * 365)),
}
}
return res, nil
diff --git a/cmd/dendrite-demo-yggdrasil/yggconn/node.go b/cmd/dendrite-demo-yggdrasil/yggconn/node.go
index 6df5fa87..26c30e48 100644
--- a/cmd/dendrite-demo-yggdrasil/yggconn/node.go
+++ b/cmd/dendrite-demo-yggdrasil/yggconn/node.go
@@ -23,7 +23,7 @@ import (
"regexp"
"strings"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/neilalexander/utp"
"github.com/sirupsen/logrus"
@@ -134,14 +134,14 @@ func (n *Node) PeerCount() int {
return len(n.core.GetPeers())
}
-func (n *Node) KnownNodes() []gomatrixserverlib.ServerName {
+func (n *Node) KnownNodes() []spec.ServerName {
nodemap := map[string]struct{}{}
for _, peer := range n.core.GetPeers() {
nodemap[hex.EncodeToString(peer.Key)] = struct{}{}
}
- var nodes []gomatrixserverlib.ServerName
+ var nodes []spec.ServerName
for node := range nodemap {
- nodes = append(nodes, gomatrixserverlib.ServerName(node))
+ nodes = append(nodes, spec.ServerName(node))
}
return nodes
}
diff --git a/cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go b/cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go
index 180990d5..f838dea0 100644
--- a/cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go
+++ b/cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go
@@ -21,8 +21,8 @@ import (
"github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/yggconn"
"github.com/matrix-org/dendrite/federationapi/api"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -46,7 +46,7 @@ func NewYggdrasilRoomProvider(
func (p *YggdrasilRoomProvider) Rooms() []fclient.PublicRoom {
return bulkFetchPublicRoomsFromServers(
context.Background(), p.fedClient,
- gomatrixserverlib.ServerName(p.node.DerivedServerName()),
+ spec.ServerName(p.node.DerivedServerName()),
p.node.KnownNodes(),
)
}
@@ -55,8 +55,8 @@ func (p *YggdrasilRoomProvider) Rooms() []fclient.PublicRoom {
// Returns a list of public rooms.
func bulkFetchPublicRoomsFromServers(
ctx context.Context, fedClient *fclient.FederationClient,
- origin gomatrixserverlib.ServerName,
- homeservers []gomatrixserverlib.ServerName,
+ origin spec.ServerName,
+ homeservers []spec.ServerName,
) (publicRooms []fclient.PublicRoom) {
limit := 200
// follow pipeline semantics, see https://blog.golang.org/pipelines for more info.
@@ -69,7 +69,7 @@ func bulkFetchPublicRoomsFromServers(
wg.Add(len(homeservers))
// concurrently query for public rooms
for _, hs := range homeservers {
- go func(homeserverDomain gomatrixserverlib.ServerName) {
+ go func(homeserverDomain spec.ServerName) {
defer wg.Done()
util.GetLogger(ctx).WithField("hs", homeserverDomain).Info("Querying HS for public rooms")
fres, err := fedClient.GetPublicRooms(ctx, origin, homeserverDomain, int(limit), "", false, "")
diff --git a/cmd/furl/main.go b/cmd/furl/main.go
index 32e99704..cdfef09f 100644
--- a/cmd/furl/main.go
+++ b/cmd/furl/main.go
@@ -14,6 +14,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
var requestFrom = flag.String("from", "", "the server name that the request should originate from")
@@ -49,7 +50,7 @@ func main() {
panic("unexpected key block")
}
- serverName := gomatrixserverlib.ServerName(*requestFrom)
+ serverName := spec.ServerName(*requestFrom)
client := fclient.NewFederationClient(
[]*fclient.SigningIdentity{
{
@@ -83,10 +84,10 @@ func main() {
}
}
- req := gomatrixserverlib.NewFederationRequest(
+ req := fclient.NewFederationRequest(
method,
serverName,
- gomatrixserverlib.ServerName(u.Host),
+ spec.ServerName(u.Host),
u.RequestURI(),
)
@@ -97,7 +98,7 @@ func main() {
}
if err = req.Sign(
- gomatrixserverlib.ServerName(*requestFrom),
+ spec.ServerName(*requestFrom),
gomatrixserverlib.KeyID(keyBlock.Headers["Key-ID"]),
privateKey,
); err != nil {
diff --git a/cmd/generate-config/main.go b/cmd/generate-config/main.go
index b0707be1..cb57ed78 100644
--- a/cmd/generate-config/main.go
+++ b/cmd/generate-config/main.go
@@ -5,11 +5,11 @@ import (
"fmt"
"path/filepath"
- "github.com/matrix-org/gomatrixserverlib"
"golang.org/x/crypto/bcrypt"
"gopkg.in/yaml.v2"
"github.com/matrix-org/dendrite/setup/config"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
func main() {
@@ -30,7 +30,7 @@ func main() {
SingleDatabase: true,
})
if *serverName != "" {
- cfg.Global.ServerName = gomatrixserverlib.ServerName(*serverName)
+ cfg.Global.ServerName = spec.ServerName(*serverName)
}
uri := config.DataSource(*dbURI)
if uri.IsSQLite() || uri == "" {
diff --git a/federationapi/api/api.go b/federationapi/api/api.go
index e23bec27..6b09b0cd 100644
--- a/federationapi/api/api.go
+++ b/federationapi/api/api.go
@@ -8,6 +8,7 @@ import (
"github.com/matrix-org/gomatrix"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/federationapi/types"
)
@@ -22,9 +23,9 @@ type FederationInternalAPI interface {
P2PFederationAPI
QueryServerKeys(ctx context.Context, request *QueryServerKeysRequest, response *QueryServerKeysResponse) error
- LookupServerKeys(ctx context.Context, s gomatrixserverlib.ServerName, keyRequests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp) ([]gomatrixserverlib.ServerKeys, error)
- MSC2836EventRelationships(ctx context.Context, origin, dst gomatrixserverlib.ServerName, r fclient.MSC2836EventRelationshipsRequest, roomVersion gomatrixserverlib.RoomVersion) (res fclient.MSC2836EventRelationshipsResponse, err error)
- MSC2946Spaces(ctx context.Context, origin, dst gomatrixserverlib.ServerName, roomID string, suggestedOnly bool) (res fclient.MSC2946SpacesResponse, err error)
+ LookupServerKeys(ctx context.Context, s spec.ServerName, keyRequests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp) ([]gomatrixserverlib.ServerKeys, error)
+ MSC2836EventRelationships(ctx context.Context, origin, dst spec.ServerName, r fclient.MSC2836EventRelationshipsRequest, roomVersion gomatrixserverlib.RoomVersion) (res fclient.MSC2836EventRelationshipsResponse, err error)
+ MSC2946Spaces(ctx context.Context, origin, dst spec.ServerName, roomID string, suggestedOnly bool) (res fclient.MSC2946SpacesResponse, err error)
// Broadcasts an EDU to all servers in rooms we are joined to. Used in the yggdrasil demos.
PerformBroadcastEDU(
@@ -67,9 +68,9 @@ type RoomserverFederationAPI interface {
// containing only the server names (without information for membership events).
// The response will include this server if they are joined to the room.
QueryJoinedHostServerNamesInRoom(ctx context.Context, request *QueryJoinedHostServerNamesInRoomRequest, response *QueryJoinedHostServerNamesInRoomResponse) error
- GetEventAuth(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomVersion gomatrixserverlib.RoomVersion, roomID, eventID string) (res fclient.RespEventAuth, err error)
- GetEvent(ctx context.Context, origin, s gomatrixserverlib.ServerName, eventID string) (res gomatrixserverlib.Transaction, err error)
- LookupMissingEvents(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID string, missing fclient.MissingEvents, roomVersion gomatrixserverlib.RoomVersion) (res fclient.RespMissingEvents, err error)
+ GetEventAuth(ctx context.Context, origin, s spec.ServerName, roomVersion gomatrixserverlib.RoomVersion, roomID, eventID string) (res fclient.RespEventAuth, err error)
+ GetEvent(ctx context.Context, origin, s spec.ServerName, eventID string) (res gomatrixserverlib.Transaction, err error)
+ LookupMissingEvents(ctx context.Context, origin, s spec.ServerName, roomID string, missing fclient.MissingEvents, roomVersion gomatrixserverlib.RoomVersion) (res fclient.RespMissingEvents, err error)
}
type P2PFederationAPI interface {
@@ -99,9 +100,9 @@ type P2PFederationAPI interface {
// implements as proxy calls, with built-in backoff/retries/etc. Errors returned from functions in
// this interface are of type FederationClientError
type KeyserverFederationAPI interface {
- GetUserDevices(ctx context.Context, origin, s gomatrixserverlib.ServerName, userID string) (res fclient.RespUserDevices, err error)
- ClaimKeys(ctx context.Context, origin, s gomatrixserverlib.ServerName, oneTimeKeys map[string]map[string]string) (res fclient.RespClaimKeys, err error)
- QueryKeys(ctx context.Context, origin, s gomatrixserverlib.ServerName, keys map[string][]string) (res fclient.RespQueryKeys, err error)
+ GetUserDevices(ctx context.Context, origin, s spec.ServerName, userID string) (res fclient.RespUserDevices, err error)
+ ClaimKeys(ctx context.Context, origin, s spec.ServerName, oneTimeKeys map[string]map[string]string) (res fclient.RespClaimKeys, err error)
+ QueryKeys(ctx context.Context, origin, s spec.ServerName, keys map[string][]string) (res fclient.RespQueryKeys, err error)
}
// an interface for gmsl.FederationClient - contains functions called by federationapi only.
@@ -111,33 +112,33 @@ type FederationClient interface {
SendTransaction(ctx context.Context, t gomatrixserverlib.Transaction) (res fclient.RespSend, err error)
// Perform operations
- LookupRoomAlias(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomAlias string) (res fclient.RespDirectory, err error)
- Peek(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID, peekID string, roomVersions []gomatrixserverlib.RoomVersion) (res fclient.RespPeek, err error)
- MakeJoin(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID, userID string, roomVersions []gomatrixserverlib.RoomVersion) (res fclient.RespMakeJoin, err error)
- SendJoin(ctx context.Context, origin, s gomatrixserverlib.ServerName, event *gomatrixserverlib.Event) (res fclient.RespSendJoin, err error)
- MakeLeave(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID, userID string) (res fclient.RespMakeLeave, err error)
- SendLeave(ctx context.Context, origin, s gomatrixserverlib.ServerName, event *gomatrixserverlib.Event) (err error)
- SendInviteV2(ctx context.Context, origin, s gomatrixserverlib.ServerName, request gomatrixserverlib.InviteV2Request) (res fclient.RespInviteV2, err error)
-
- GetEvent(ctx context.Context, origin, s gomatrixserverlib.ServerName, eventID string) (res gomatrixserverlib.Transaction, err error)
-
- GetEventAuth(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomVersion gomatrixserverlib.RoomVersion, roomID, eventID string) (res fclient.RespEventAuth, err error)
- GetUserDevices(ctx context.Context, origin, s gomatrixserverlib.ServerName, userID string) (fclient.RespUserDevices, error)
- ClaimKeys(ctx context.Context, origin, s gomatrixserverlib.ServerName, oneTimeKeys map[string]map[string]string) (fclient.RespClaimKeys, error)
- QueryKeys(ctx context.Context, origin, s gomatrixserverlib.ServerName, keys map[string][]string) (fclient.RespQueryKeys, error)
- Backfill(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID string, limit int, eventIDs []string) (res gomatrixserverlib.Transaction, err error)
- MSC2836EventRelationships(ctx context.Context, origin, dst gomatrixserverlib.ServerName, r fclient.MSC2836EventRelationshipsRequest, roomVersion gomatrixserverlib.RoomVersion) (res fclient.MSC2836EventRelationshipsResponse, err error)
- MSC2946Spaces(ctx context.Context, origin, dst gomatrixserverlib.ServerName, roomID string, suggestedOnly bool) (res fclient.MSC2946SpacesResponse, err error)
-
- ExchangeThirdPartyInvite(ctx context.Context, origin, s gomatrixserverlib.ServerName, builder gomatrixserverlib.EventBuilder) (err error)
- LookupState(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID string, eventID string, roomVersion gomatrixserverlib.RoomVersion) (res fclient.RespState, err error)
- LookupStateIDs(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID string, eventID string) (res fclient.RespStateIDs, err error)
- LookupMissingEvents(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID string, missing fclient.MissingEvents, roomVersion gomatrixserverlib.RoomVersion) (res fclient.RespMissingEvents, err error)
+ LookupRoomAlias(ctx context.Context, origin, s spec.ServerName, roomAlias string) (res fclient.RespDirectory, err error)
+ Peek(ctx context.Context, origin, s spec.ServerName, roomID, peekID string, roomVersions []gomatrixserverlib.RoomVersion) (res fclient.RespPeek, err error)
+ MakeJoin(ctx context.Context, origin, s spec.ServerName, roomID, userID string, roomVersions []gomatrixserverlib.RoomVersion) (res fclient.RespMakeJoin, err error)
+ SendJoin(ctx context.Context, origin, s spec.ServerName, event *gomatrixserverlib.Event) (res fclient.RespSendJoin, err error)
+ MakeLeave(ctx context.Context, origin, s spec.ServerName, roomID, userID string) (res fclient.RespMakeLeave, err error)
+ SendLeave(ctx context.Context, origin, s spec.ServerName, event *gomatrixserverlib.Event) (err error)
+ SendInviteV2(ctx context.Context, origin, s spec.ServerName, request fclient.InviteV2Request) (res fclient.RespInviteV2, err error)
+
+ GetEvent(ctx context.Context, origin, s spec.ServerName, eventID string) (res gomatrixserverlib.Transaction, err error)
+
+ GetEventAuth(ctx context.Context, origin, s spec.ServerName, roomVersion gomatrixserverlib.RoomVersion, roomID, eventID string) (res fclient.RespEventAuth, err error)
+ GetUserDevices(ctx context.Context, origin, s spec.ServerName, userID string) (fclient.RespUserDevices, error)
+ ClaimKeys(ctx context.Context, origin, s spec.ServerName, oneTimeKeys map[string]map[string]string) (fclient.RespClaimKeys, error)
+ QueryKeys(ctx context.Context, origin, s spec.ServerName, keys map[string][]string) (fclient.RespQueryKeys, error)
+ Backfill(ctx context.Context, origin, s spec.ServerName, roomID string, limit int, eventIDs []string) (res gomatrixserverlib.Transaction, err error)
+ MSC2836EventRelationships(ctx context.Context, origin, dst spec.ServerName, r fclient.MSC2836EventRelationshipsRequest, roomVersion gomatrixserverlib.RoomVersion) (res fclient.MSC2836EventRelationshipsResponse, err error)
+ MSC2946Spaces(ctx context.Context, origin, dst spec.ServerName, roomID string, suggestedOnly bool) (res fclient.MSC2946SpacesResponse, err error)
+
+ ExchangeThirdPartyInvite(ctx context.Context, origin, s spec.ServerName, builder gomatrixserverlib.EventBuilder) (err error)
+ LookupState(ctx context.Context, origin, s spec.ServerName, roomID string, eventID string, roomVersion gomatrixserverlib.RoomVersion) (res fclient.RespState, err error)
+ LookupStateIDs(ctx context.Context, origin, s spec.ServerName, roomID string, eventID string) (res fclient.RespStateIDs, err error)
+ LookupMissingEvents(ctx context.Context, origin, s spec.ServerName, roomID string, missing fclient.MissingEvents, roomVersion gomatrixserverlib.RoomVersion) (res fclient.RespMissingEvents, err error)
}
type P2PFederationClient interface {
- P2PSendTransactionToRelay(ctx context.Context, u gomatrixserverlib.UserID, t gomatrixserverlib.Transaction, forwardingServer gomatrixserverlib.ServerName) (res fclient.EmptyResp, err error)
- P2PGetTransactionFromRelay(ctx context.Context, u gomatrixserverlib.UserID, prev fclient.RelayEntry, relayServer gomatrixserverlib.ServerName) (res fclient.RespGetRelayTransaction, err error)
+ P2PSendTransactionToRelay(ctx context.Context, u spec.UserID, t gomatrixserverlib.Transaction, forwardingServer spec.ServerName) (res fclient.EmptyResp, err error)
+ P2PGetTransactionFromRelay(ctx context.Context, u spec.UserID, prev fclient.RelayEntry, relayServer spec.ServerName) (res fclient.RespGetRelayTransaction, err error)
}
// FederationClientError is returned from FederationClient methods in the event of a problem.
@@ -153,7 +154,7 @@ func (e FederationClientError) Error() string {
}
type QueryServerKeysRequest struct {
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
KeyIDToCriteria map[gomatrixserverlib.KeyID]gomatrixserverlib.PublicKeyNotaryQueryCriteria
}
@@ -172,7 +173,7 @@ type QueryServerKeysResponse struct {
}
type QueryPublicKeysRequest struct {
- Requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp `json:"requests"`
+ Requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp `json:"requests"`
}
type QueryPublicKeysResponse struct {
@@ -180,13 +181,13 @@ type QueryPublicKeysResponse struct {
}
type PerformDirectoryLookupRequest struct {
- RoomAlias string `json:"room_alias"`
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ RoomAlias string `json:"room_alias"`
+ ServerName spec.ServerName `json:"server_name"`
}
type PerformDirectoryLookupResponse struct {
- RoomID string `json:"room_id"`
- ServerNames []gomatrixserverlib.ServerName `json:"server_names"`
+ RoomID string `json:"room_id"`
+ ServerNames []spec.ServerName `json:"server_names"`
}
type PerformJoinRequest struct {
@@ -199,7 +200,7 @@ type PerformJoinRequest struct {
}
type PerformJoinResponse struct {
- JoinedVia gomatrixserverlib.ServerName
+ JoinedVia spec.ServerName
LastError *gomatrix.HTTPError
}
@@ -223,9 +224,9 @@ type PerformLeaveResponse struct {
}
type PerformInviteRequest struct {
- RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
- Event *gomatrixserverlib.HeaderedEvent `json:"event"`
- InviteRoomState []gomatrixserverlib.InviteV2StrippedState `json:"invite_room_state"`
+ RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
+ Event *gomatrixserverlib.HeaderedEvent `json:"event"`
+ InviteRoomState []fclient.InviteV2StrippedState `json:"invite_room_state"`
}
type PerformInviteResponse struct {
@@ -241,7 +242,7 @@ type QueryJoinedHostServerNamesInRoomRequest struct {
// QueryJoinedHostServerNamesInRoomResponse is a response to QueryJoinedHostServerNames
type QueryJoinedHostServerNamesInRoomResponse struct {
- ServerNames []gomatrixserverlib.ServerName `json:"server_names"`
+ ServerNames []spec.ServerName `json:"server_names"`
}
type PerformBroadcastEDURequest struct {
@@ -251,7 +252,7 @@ type PerformBroadcastEDUResponse struct {
}
type PerformWakeupServersRequest struct {
- ServerNames []gomatrixserverlib.ServerName `json:"server_names"`
+ ServerNames []spec.ServerName `json:"server_names"`
}
type PerformWakeupServersResponse struct {
@@ -265,24 +266,24 @@ type InputPublicKeysResponse struct {
}
type P2PQueryRelayServersRequest struct {
- Server gomatrixserverlib.ServerName
+ Server spec.ServerName
}
type P2PQueryRelayServersResponse struct {
- RelayServers []gomatrixserverlib.ServerName
+ RelayServers []spec.ServerName
}
type P2PAddRelayServersRequest struct {
- Server gomatrixserverlib.ServerName
- RelayServers []gomatrixserverlib.ServerName
+ Server spec.ServerName
+ RelayServers []spec.ServerName
}
type P2PAddRelayServersResponse struct {
}
type P2PRemoveRelayServersRequest struct {
- Server gomatrixserverlib.ServerName
- RelayServers []gomatrixserverlib.ServerName
+ Server spec.ServerName
+ RelayServers []spec.ServerName
}
type P2PRemoveRelayServersResponse struct {
diff --git a/federationapi/api/servers.go b/federationapi/api/servers.go
index 6bb15763..ff4dc6c9 100644
--- a/federationapi/api/servers.go
+++ b/federationapi/api/servers.go
@@ -4,8 +4,9 @@ import (
"context"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type ServersInRoomProvider interface {
- GetServersForRoom(ctx context.Context, roomID string, event *gomatrixserverlib.Event) []gomatrixserverlib.ServerName
+ GetServersForRoom(ctx context.Context, roomID string, event *gomatrixserverlib.Event) []spec.ServerName
}
diff --git a/federationapi/consumers/keychange.go b/federationapi/consumers/keychange.go
index 7d9df3d7..3fdc835b 100644
--- a/federationapi/consumers/keychange.go
+++ b/federationapi/consumers/keychange.go
@@ -20,6 +20,7 @@ import (
"github.com/getsentry/sentry-go"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/sirupsen/logrus"
@@ -40,7 +41,7 @@ type KeyChangeConsumer struct {
durable string
db storage.Database
queues *queue.OutgoingQueues
- isLocalServerName func(gomatrixserverlib.ServerName) bool
+ isLocalServerName func(spec.ServerName) bool
rsAPI roomserverAPI.FederationRoomserverAPI
topic string
}
@@ -140,7 +141,7 @@ func (t *KeyChangeConsumer) onDeviceKeyMessage(m api.DeviceMessage) bool {
}
// Pack the EDU and marshal it
edu := &gomatrixserverlib.EDU{
- Type: gomatrixserverlib.MDeviceListUpdate,
+ Type: spec.MDeviceListUpdate,
Origin: string(originServerName),
}
event := gomatrixserverlib.DeviceListUpdateEvent{
diff --git a/federationapi/consumers/presence.go b/federationapi/consumers/presence.go
index 29b16f37..e751b65d 100644
--- a/federationapi/consumers/presence.go
+++ b/federationapi/consumers/presence.go
@@ -28,6 +28,7 @@ import (
"github.com/matrix-org/dendrite/setup/process"
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
)
@@ -39,7 +40,7 @@ type OutputPresenceConsumer struct {
durable string
db storage.Database
queues *queue.OutgoingQueues
- isLocalServerName func(gomatrixserverlib.ServerName) bool
+ isLocalServerName func(spec.ServerName) bool
rsAPI roomserverAPI.FederationRoomserverAPI
topic string
outboundPresenceEnabled bool
@@ -127,7 +128,7 @@ func (t *OutputPresenceConsumer) onMessage(ctx context.Context, msgs []*nats.Msg
statusMsg = &status
}
- p := types.PresenceInternal{LastActiveTS: gomatrixserverlib.Timestamp(ts)}
+ p := types.PresenceInternal{LastActiveTS: spec.Timestamp(ts)}
content := fedTypes.Presence{
Push: []fedTypes.PresenceContent{
@@ -142,7 +143,7 @@ func (t *OutputPresenceConsumer) onMessage(ctx context.Context, msgs []*nats.Msg
}
edu := &gomatrixserverlib.EDU{
- Type: gomatrixserverlib.MPresence,
+ Type: spec.MPresence,
Origin: string(serverName),
}
if edu.Content, err = json.Marshal(content); err != nil {
diff --git a/federationapi/consumers/receipts.go b/federationapi/consumers/receipts.go
index 200c06e6..1407a88b 100644
--- a/federationapi/consumers/receipts.go
+++ b/federationapi/consumers/receipts.go
@@ -28,6 +28,7 @@ import (
"github.com/matrix-org/dendrite/setup/process"
syncTypes "github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
)
@@ -39,7 +40,7 @@ type OutputReceiptConsumer struct {
durable string
db storage.Database
queues *queue.OutgoingQueues
- isLocalServerName func(gomatrixserverlib.ServerName) bool
+ isLocalServerName func(spec.ServerName) bool
topic string
}
@@ -107,7 +108,7 @@ func (t *OutputReceiptConsumer) onMessage(ctx context.Context, msgs []*nats.Msg)
return true
}
- receipt.Timestamp = gomatrixserverlib.Timestamp(timestamp)
+ receipt.Timestamp = spec.Timestamp(timestamp)
joined, err := t.db.GetJoinedHosts(ctx, receipt.RoomID)
if err != nil {
@@ -115,7 +116,7 @@ func (t *OutputReceiptConsumer) onMessage(ctx context.Context, msgs []*nats.Msg)
return false
}
- names := make([]gomatrixserverlib.ServerName, len(joined))
+ names := make([]spec.ServerName, len(joined))
for i := range joined {
names[i] = joined[i].ServerName
}
@@ -133,7 +134,7 @@ func (t *OutputReceiptConsumer) onMessage(ctx context.Context, msgs []*nats.Msg)
}
edu := &gomatrixserverlib.EDU{
- Type: gomatrixserverlib.MReceipt,
+ Type: spec.MReceipt,
Origin: string(receiptServerName),
}
if edu.Content, err = json.Marshal(content); err != nil {
diff --git a/federationapi/consumers/roomserver.go b/federationapi/consumers/roomserver.go
index 378b96ba..5ef65ee5 100644
--- a/federationapi/consumers/roomserver.go
+++ b/federationapi/consumers/roomserver.go
@@ -22,6 +22,7 @@ import (
"time"
syncAPITypes "github.com/matrix-org/dendrite/syncapi/types"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/gomatrixserverlib"
"github.com/nats-io/nats.go"
@@ -207,9 +208,9 @@ func (s *OutputRoomEventConsumer) processMessage(ore api.OutputNewRoomEvent, rew
}
// If we added new hosts, inform them about our known presence events for this room
- if s.cfg.Matrix.Presence.EnableOutbound && len(addsJoinedHosts) > 0 && ore.Event.Type() == gomatrixserverlib.MRoomMember && ore.Event.StateKey() != nil {
+ if s.cfg.Matrix.Presence.EnableOutbound && len(addsJoinedHosts) > 0 && ore.Event.Type() == spec.MRoomMember && ore.Event.StateKey() != nil {
membership, _ := ore.Event.Membership()
- if membership == gomatrixserverlib.Join {
+ if membership == spec.Join {
s.sendPresence(ore.Event.RoomID(), addsJoinedHosts)
}
}
@@ -239,12 +240,12 @@ func (s *OutputRoomEventConsumer) processMessage(ore api.OutputNewRoomEvent, rew
// Send the event.
return s.queues.SendEvent(
- ore.Event, gomatrixserverlib.ServerName(ore.SendAsServer), joinedHostsAtEvent,
+ ore.Event, spec.ServerName(ore.SendAsServer), joinedHostsAtEvent,
)
}
func (s *OutputRoomEventConsumer) sendPresence(roomID string, addedJoined []types.JoinedHost) {
- joined := make([]gomatrixserverlib.ServerName, 0, len(addedJoined))
+ joined := make([]spec.ServerName, 0, len(addedJoined))
for _, added := range addedJoined {
joined = append(joined, added.ServerName)
}
@@ -285,7 +286,7 @@ func (s *OutputRoomEventConsumer) sendPresence(roomID string, addedJoined []type
continue
}
- p := syncAPITypes.PresenceInternal{LastActiveTS: gomatrixserverlib.Timestamp(lastActive)}
+ p := syncAPITypes.PresenceInternal{LastActiveTS: spec.Timestamp(lastActive)}
content.Push = append(content.Push, types.PresenceContent{
CurrentlyActive: p.CurrentlyActive(),
@@ -301,7 +302,7 @@ func (s *OutputRoomEventConsumer) sendPresence(roomID string, addedJoined []type
}
edu := &gomatrixserverlib.EDU{
- Type: gomatrixserverlib.MPresence,
+ Type: spec.MPresence,
Origin: string(s.cfg.Matrix.ServerName),
}
if edu.Content, err = json.Marshal(content); err != nil {
@@ -326,7 +327,7 @@ func (s *OutputRoomEventConsumer) sendPresence(roomID string, addedJoined []type
// Returns an error if there was a problem talking to the room server.
func (s *OutputRoomEventConsumer) joinedHostsAtEvent(
ore api.OutputNewRoomEvent, oldJoinedHosts []types.JoinedHost,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
// Combine the delta into a single delta so that the adds and removes can
// cancel each other out. This should reduce the number of times we need
// to fetch a state event from the room server.
@@ -349,7 +350,7 @@ func (s *OutputRoomEventConsumer) joinedHostsAtEvent(
removed[eventID] = true
}
- joined := map[gomatrixserverlib.ServerName]bool{}
+ joined := map[spec.ServerName]bool{}
for _, joinedHost := range oldJoinedHosts {
if removed[joinedHost.MemberEventID] {
// This m.room.member event is part of the current state of the
@@ -376,7 +377,7 @@ func (s *OutputRoomEventConsumer) joinedHostsAtEvent(
joined[inboundPeek.ServerName] = true
}
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for serverName, include := range joined {
if include {
result = append(result, serverName)
@@ -398,7 +399,7 @@ func JoinedHostsFromEvents(evs []*gomatrixserverlib.Event) ([]types.JoinedHost,
if err != nil {
return nil, err
}
- if membership != gomatrixserverlib.Join {
+ if membership != spec.Join {
continue
}
_, serverName, err := gomatrixserverlib.SplitID('@', *ev.StateKey())
diff --git a/federationapi/consumers/sendtodevice.go b/federationapi/consumers/sendtodevice.go
index 9620d161..91b28cdb 100644
--- a/federationapi/consumers/sendtodevice.go
+++ b/federationapi/consumers/sendtodevice.go
@@ -20,6 +20,7 @@ import (
"github.com/getsentry/sentry-go"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
@@ -39,7 +40,7 @@ type OutputSendToDeviceConsumer struct {
durable string
db storage.Database
queues *queue.OutgoingQueues
- isLocalServerName func(gomatrixserverlib.ServerName) bool
+ isLocalServerName func(spec.ServerName) bool
topic string
}
@@ -107,7 +108,7 @@ func (t *OutputSendToDeviceConsumer) onMessage(ctx context.Context, msgs []*nats
// Pack the EDU and marshal it
edu := &gomatrixserverlib.EDU{
- Type: gomatrixserverlib.MDirectToDevice,
+ Type: spec.MDirectToDevice,
Origin: string(originServerName),
}
tdm := gomatrixserverlib.ToDeviceMessage{
@@ -127,7 +128,7 @@ func (t *OutputSendToDeviceConsumer) onMessage(ctx context.Context, msgs []*nats
}
log.Debugf("Sending send-to-device message into %q destination queue", destServerName)
- if err := t.queues.SendEDU(edu, originServerName, []gomatrixserverlib.ServerName{destServerName}); err != nil {
+ if err := t.queues.SendEDU(edu, originServerName, []spec.ServerName{destServerName}); err != nil {
log.WithError(err).Error("failed to send EDU")
return false
}
diff --git a/federationapi/consumers/typing.go b/federationapi/consumers/typing.go
index c66f9751..134f2174 100644
--- a/federationapi/consumers/typing.go
+++ b/federationapi/consumers/typing.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/dendrite/setup/jetstream"
"github.com/matrix-org/dendrite/setup/process"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
)
@@ -36,7 +37,7 @@ type OutputTypingConsumer struct {
durable string
db storage.Database
queues *queue.OutgoingQueues
- isLocalServerName func(gomatrixserverlib.ServerName) bool
+ isLocalServerName func(spec.ServerName) bool
topic string
}
@@ -97,7 +98,7 @@ func (t *OutputTypingConsumer) onMessage(ctx context.Context, msgs []*nats.Msg)
return false
}
- names := make([]gomatrixserverlib.ServerName, len(joined))
+ names := make([]spec.ServerName, len(joined))
for i := range joined {
names[i] = joined[i].ServerName
}
diff --git a/federationapi/federationapi_keys_test.go b/federationapi/federationapi_keys_test.go
index 2fa748ba..50691334 100644
--- a/federationapi/federationapi_keys_test.go
+++ b/federationapi/federationapi_keys_test.go
@@ -17,6 +17,7 @@ import (
"github.com/matrix-org/dendrite/setup/process"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/federationapi/api"
"github.com/matrix-org/dendrite/federationapi/routing"
@@ -25,12 +26,12 @@ import (
)
type server struct {
- name gomatrixserverlib.ServerName // server name
- validity time.Duration // key validity duration from now
- config *config.FederationAPI // skeleton config, from TestMain
- fedclient *fclient.FederationClient // uses MockRoundTripper
- cache *caching.Caches // server-specific cache
- api api.FederationInternalAPI // server-specific server key API
+ name spec.ServerName // server name
+ validity time.Duration // key validity duration from now
+ config *config.FederationAPI // skeleton config, from TestMain
+ fedclient *fclient.FederationClient // uses MockRoundTripper
+ cache *caching.Caches // server-specific cache
+ api api.FederationInternalAPI // server-specific server key API
}
func (s *server) renew() {
@@ -83,7 +84,7 @@ func TestMain(m *testing.M) {
Generate: true,
SingleDatabase: false,
})
- cfg.Global.ServerName = gomatrixserverlib.ServerName(s.name)
+ cfg.Global.ServerName = spec.ServerName(s.name)
cfg.Global.PrivateKey = testPriv
cfg.Global.JetStream.InMemory = true
cfg.Global.JetStream.TopicPrefix = string(s.name[:1])
@@ -141,7 +142,7 @@ func (m *MockRoundTripper) RoundTrip(req *http.Request) (res *http.Response, err
}
// Get the keys and JSON-ify them.
- keys := routing.LocalKeys(s.config, gomatrixserverlib.ServerName(req.Host))
+ keys := routing.LocalKeys(s.config, spec.ServerName(req.Host))
body, err := json.MarshalIndent(keys.JSON, "", " ")
if err != nil {
return nil, err
@@ -166,8 +167,8 @@ func TestServersRequestOwnKeys(t *testing.T) {
}
res, err := s.api.FetchKeys(
context.Background(),
- map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp{
- req: gomatrixserverlib.AsTimestamp(time.Now()),
+ map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp{
+ req: spec.AsTimestamp(time.Now()),
},
)
if err != nil {
@@ -192,8 +193,8 @@ func TestRenewalBehaviour(t *testing.T) {
res, err := serverA.api.FetchKeys(
context.Background(),
- map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp{
- req: gomatrixserverlib.AsTimestamp(time.Now()),
+ map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp{
+ req: spec.AsTimestamp(time.Now()),
},
)
if err != nil {
@@ -216,8 +217,8 @@ func TestRenewalBehaviour(t *testing.T) {
res, err = serverA.api.FetchKeys(
context.Background(),
- map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp{
- req: gomatrixserverlib.AsTimestamp(time.Now()),
+ map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp{
+ req: spec.AsTimestamp(time.Now()),
},
)
if err != nil {
diff --git a/federationapi/federationapi_test.go b/federationapi/federationapi_test.go
index 3c01a825..a8af0000 100644
--- a/federationapi/federationapi_test.go
+++ b/federationapi/federationapi_test.go
@@ -16,6 +16,7 @@ import (
"github.com/matrix-org/gomatrix"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/matrix-org/dendrite/federationapi"
@@ -56,7 +57,7 @@ type fedClient struct {
fedClientMutex sync.Mutex
api.FederationClient
allowJoins []*test.Room
- keys map[gomatrixserverlib.ServerName]struct {
+ keys map[spec.ServerName]struct {
key ed25519.PrivateKey
keyID gomatrixserverlib.KeyID
}
@@ -64,7 +65,7 @@ type fedClient struct {
sentTxn bool
}
-func (f *fedClient) GetServerKeys(ctx context.Context, matrixServer gomatrixserverlib.ServerName) (gomatrixserverlib.ServerKeys, error) {
+func (f *fedClient) GetServerKeys(ctx context.Context, matrixServer spec.ServerName) (gomatrixserverlib.ServerKeys, error) {
f.fedClientMutex.Lock()
defer f.fedClientMutex.Unlock()
fmt.Println("GetServerKeys:", matrixServer)
@@ -83,11 +84,11 @@ func (f *fedClient) GetServerKeys(ctx context.Context, matrixServer gomatrixserv
}
keys.ServerName = matrixServer
- keys.ValidUntilTS = gomatrixserverlib.AsTimestamp(time.Now().Add(10 * time.Hour))
+ keys.ValidUntilTS = spec.AsTimestamp(time.Now().Add(10 * time.Hour))
publicKey := pkey.Public().(ed25519.PublicKey)
keys.VerifyKeys = map[gomatrixserverlib.KeyID]gomatrixserverlib.VerifyKey{
keyID: {
- Key: gomatrixserverlib.Base64Bytes(publicKey),
+ Key: spec.Base64Bytes(publicKey),
},
}
toSign, err := json.Marshal(keys.ServerKeyFields)
@@ -105,7 +106,7 @@ func (f *fedClient) GetServerKeys(ctx context.Context, matrixServer gomatrixserv
return keys, nil
}
-func (f *fedClient) MakeJoin(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID, userID string, roomVersions []gomatrixserverlib.RoomVersion) (res fclient.RespMakeJoin, err error) {
+func (f *fedClient) MakeJoin(ctx context.Context, origin, s spec.ServerName, roomID, userID string, roomVersions []gomatrixserverlib.RoomVersion) (res fclient.RespMakeJoin, err error) {
for _, r := range f.allowJoins {
if r.ID == roomID {
res.RoomVersion = r.Version
@@ -114,7 +115,7 @@ func (f *fedClient) MakeJoin(ctx context.Context, origin, s gomatrixserverlib.Se
RoomID: roomID,
Type: "m.room.member",
StateKey: &userID,
- Content: gomatrixserverlib.RawJSON([]byte(`{"membership":"join"}`)),
+ Content: spec.RawJSON([]byte(`{"membership":"join"}`)),
PrevEvents: r.ForwardExtremities(),
}
var needed gomatrixserverlib.StateNeeded
@@ -129,7 +130,7 @@ func (f *fedClient) MakeJoin(ctx context.Context, origin, s gomatrixserverlib.Se
}
return
}
-func (f *fedClient) SendJoin(ctx context.Context, origin, s gomatrixserverlib.ServerName, event *gomatrixserverlib.Event) (res fclient.RespSendJoin, err error) {
+func (f *fedClient) SendJoin(ctx context.Context, origin, s spec.ServerName, event *gomatrixserverlib.Event) (res fclient.RespSendJoin, err error) {
f.fedClientMutex.Lock()
defer f.fedClientMutex.Unlock()
for _, r := range f.allowJoins {
@@ -147,7 +148,7 @@ func (f *fedClient) SendTransaction(ctx context.Context, t gomatrixserverlib.Tra
f.fedClientMutex.Lock()
defer f.fedClientMutex.Unlock()
for _, edu := range t.EDUs {
- if edu.Type == gomatrixserverlib.MDeviceListUpdate {
+ if edu.Type == spec.MDeviceListUpdate {
f.sentTxn = true
}
}
@@ -174,7 +175,7 @@ func testFederationAPIJoinThenKeyUpdate(t *testing.T, dbType test.DBType) {
jsctx, _ := natsInstance.Prepare(processCtx, &cfg.Global.JetStream)
defer jetstream.DeleteAllStreams(jsctx, &cfg.Global.JetStream)
- serverA := gomatrixserverlib.ServerName("server.a")
+ serverA := spec.ServerName("server.a")
serverAKeyID := gomatrixserverlib.KeyID("ed25519:servera")
serverAPrivKey := test.PrivateKeyA
creator := test.NewUser(t, test.WithSigningServer(serverA, serverAKeyID, serverAPrivKey))
@@ -203,7 +204,7 @@ func testFederationAPIJoinThenKeyUpdate(t *testing.T, dbType test.DBType) {
fc := &fedClient{
allowJoins: []*test.Room{room},
t: t,
- keys: map[gomatrixserverlib.ServerName]struct {
+ keys: map[spec.ServerName]struct {
key ed25519.PrivateKey
keyID gomatrixserverlib.KeyID
}{
@@ -223,7 +224,7 @@ func testFederationAPIJoinThenKeyUpdate(t *testing.T, dbType test.DBType) {
fsapi.PerformJoin(context.Background(), &api.PerformJoinRequest{
RoomID: room.ID,
UserID: joiningUser.ID,
- ServerNames: []gomatrixserverlib.ServerName{serverA},
+ ServerNames: []spec.ServerName{serverA},
}, &resp)
if resp.JoinedVia != serverA {
t.Errorf("PerformJoin: joined via %v want %v", resp.JoinedVia, serverA)
@@ -302,7 +303,7 @@ func TestRoomsV3URLEscapeDoNot404(t *testing.T) {
_, privKey, _ := ed25519.GenerateKey(nil)
cfg.Global.KeyID = gomatrixserverlib.KeyID("ed25519:auto")
- cfg.Global.ServerName = gomatrixserverlib.ServerName("localhost")
+ cfg.Global.ServerName = spec.ServerName("localhost")
cfg.Global.PrivateKey = privKey
cfg.Global.JetStream.InMemory = true
keyRing := &test.NopJSONVerifier{}
@@ -312,7 +313,7 @@ func TestRoomsV3URLEscapeDoNot404(t *testing.T) {
federationapi.AddPublicRoutes(processCtx, routers, cfg, &natsInstance, nil, nil, keyRing, nil, &internal.FederationInternalAPI{}, nil, caching.DisableMetrics)
baseURL, cancel := test.ListenAndServe(t, routers.Federation, true)
defer cancel()
- serverName := gomatrixserverlib.ServerName(strings.TrimPrefix(baseURL, "https://"))
+ serverName := spec.ServerName(strings.TrimPrefix(baseURL, "https://"))
fedCli := fclient.NewFederationClient(
cfg.Global.SigningIdentities(),
@@ -325,7 +326,7 @@ func TestRoomsV3URLEscapeDoNot404(t *testing.T) {
t.Errorf("failed to parse event: %s", err)
}
he := ev.Headered(tc.roomVer)
- invReq, err := gomatrixserverlib.NewInviteV2Request(he, nil)
+ invReq, err := fclient.NewInviteV2Request(he, nil)
if err != nil {
t.Errorf("failed to create invite v2 request: %s", err)
continue
diff --git a/federationapi/internal/api.go b/federationapi/internal/api.go
index 99773a75..529cf777 100644
--- a/federationapi/internal/api.go
+++ b/federationapi/internal/api.go
@@ -17,6 +17,7 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrix"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
)
@@ -107,7 +108,7 @@ func NewFederationInternalAPI(
}
}
-func (a *FederationInternalAPI) isBlacklistedOrBackingOff(s gomatrixserverlib.ServerName) (*statistics.ServerStatistics, error) {
+func (a *FederationInternalAPI) isBlacklistedOrBackingOff(s spec.ServerName) (*statistics.ServerStatistics, error) {
stats := a.statistics.ForServer(s)
if stats.Blacklisted() {
return stats, &api.FederationClientError{
@@ -144,7 +145,7 @@ func failBlacklistableError(err error, stats *statistics.ServerStatistics) (unti
}
func (a *FederationInternalAPI) doRequestIfNotBackingOffOrBlacklisted(
- s gomatrixserverlib.ServerName, request func() (interface{}, error),
+ s spec.ServerName, request func() (interface{}, error),
) (interface{}, error) {
stats, err := a.isBlacklistedOrBackingOff(s)
if err != nil {
@@ -169,7 +170,7 @@ func (a *FederationInternalAPI) doRequestIfNotBackingOffOrBlacklisted(
}
func (a *FederationInternalAPI) doRequestIfNotBlacklisted(
- s gomatrixserverlib.ServerName, request func() (interface{}, error),
+ s spec.ServerName, request func() (interface{}, error),
) (interface{}, error) {
stats := a.statistics.ForServer(s)
if blacklisted := stats.Blacklisted(); blacklisted {
diff --git a/federationapi/internal/federationclient.go b/federationapi/internal/federationclient.go
index b0d5b1d1..e4288a20 100644
--- a/federationapi/internal/federationclient.go
+++ b/federationapi/internal/federationclient.go
@@ -6,13 +6,14 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// Functions here are "proxying" calls to the gomatrixserverlib federation
// client.
func (a *FederationInternalAPI) GetEventAuth(
- ctx context.Context, origin, s gomatrixserverlib.ServerName,
+ ctx context.Context, origin, s spec.ServerName,
roomVersion gomatrixserverlib.RoomVersion, roomID, eventID string,
) (res fclient.RespEventAuth, err error) {
ctx, cancel := context.WithTimeout(ctx, time.Second*30)
@@ -27,7 +28,7 @@ func (a *FederationInternalAPI) GetEventAuth(
}
func (a *FederationInternalAPI) GetUserDevices(
- ctx context.Context, origin, s gomatrixserverlib.ServerName, userID string,
+ ctx context.Context, origin, s spec.ServerName, userID string,
) (fclient.RespUserDevices, error) {
ctx, cancel := context.WithTimeout(ctx, time.Second*30)
defer cancel()
@@ -41,7 +42,7 @@ func (a *FederationInternalAPI) GetUserDevices(
}
func (a *FederationInternalAPI) ClaimKeys(
- ctx context.Context, origin, s gomatrixserverlib.ServerName, oneTimeKeys map[string]map[string]string,
+ ctx context.Context, origin, s spec.ServerName, oneTimeKeys map[string]map[string]string,
) (fclient.RespClaimKeys, error) {
ctx, cancel := context.WithTimeout(ctx, time.Second*30)
defer cancel()
@@ -55,7 +56,7 @@ func (a *FederationInternalAPI) ClaimKeys(
}
func (a *FederationInternalAPI) QueryKeys(
- ctx context.Context, origin, s gomatrixserverlib.ServerName, keys map[string][]string,
+ ctx context.Context, origin, s spec.ServerName, keys map[string][]string,
) (fclient.RespQueryKeys, error) {
ires, err := a.doRequestIfNotBackingOffOrBlacklisted(s, func() (interface{}, error) {
return a.federation.QueryKeys(ctx, origin, s, keys)
@@ -67,7 +68,7 @@ func (a *FederationInternalAPI) QueryKeys(
}
func (a *FederationInternalAPI) Backfill(
- ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID string, limit int, eventIDs []string,
+ ctx context.Context, origin, s spec.ServerName, roomID string, limit int, eventIDs []string,
) (res gomatrixserverlib.Transaction, err error) {
ctx, cancel := context.WithTimeout(ctx, time.Second*30)
defer cancel()
@@ -81,7 +82,7 @@ func (a *FederationInternalAPI) Backfill(
}
func (a *FederationInternalAPI) LookupState(
- ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID, eventID string, roomVersion gomatrixserverlib.RoomVersion,
+ ctx context.Context, origin, s spec.ServerName, roomID, eventID string, roomVersion gomatrixserverlib.RoomVersion,
) (res gomatrixserverlib.StateResponse, err error) {
ctx, cancel := context.WithTimeout(ctx, time.Second*30)
defer cancel()
@@ -96,7 +97,7 @@ func (a *FederationInternalAPI) LookupState(
}
func (a *FederationInternalAPI) LookupStateIDs(
- ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID, eventID string,
+ ctx context.Context, origin, s spec.ServerName, roomID, eventID string,
) (res gomatrixserverlib.StateIDResponse, err error) {
ctx, cancel := context.WithTimeout(ctx, time.Second*30)
defer cancel()
@@ -110,7 +111,7 @@ func (a *FederationInternalAPI) LookupStateIDs(
}
func (a *FederationInternalAPI) LookupMissingEvents(
- ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID string,
+ ctx context.Context, origin, s spec.ServerName, roomID string,
missing fclient.MissingEvents, roomVersion gomatrixserverlib.RoomVersion,
) (res fclient.RespMissingEvents, err error) {
ctx, cancel := context.WithTimeout(ctx, time.Second*30)
@@ -125,7 +126,7 @@ func (a *FederationInternalAPI) LookupMissingEvents(
}
func (a *FederationInternalAPI) GetEvent(
- ctx context.Context, origin, s gomatrixserverlib.ServerName, eventID string,
+ ctx context.Context, origin, s spec.ServerName, eventID string,
) (res gomatrixserverlib.Transaction, err error) {
ctx, cancel := context.WithTimeout(ctx, time.Second*30)
defer cancel()
@@ -139,7 +140,7 @@ func (a *FederationInternalAPI) GetEvent(
}
func (a *FederationInternalAPI) LookupServerKeys(
- ctx context.Context, s gomatrixserverlib.ServerName, keyRequests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
+ ctx context.Context, s spec.ServerName, keyRequests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp,
) ([]gomatrixserverlib.ServerKeys, error) {
ctx, cancel := context.WithTimeout(ctx, time.Minute)
defer cancel()
@@ -153,7 +154,7 @@ func (a *FederationInternalAPI) LookupServerKeys(
}
func (a *FederationInternalAPI) MSC2836EventRelationships(
- ctx context.Context, origin, s gomatrixserverlib.ServerName, r fclient.MSC2836EventRelationshipsRequest,
+ ctx context.Context, origin, s spec.ServerName, r fclient.MSC2836EventRelationshipsRequest,
roomVersion gomatrixserverlib.RoomVersion,
) (res fclient.MSC2836EventRelationshipsResponse, err error) {
ctx, cancel := context.WithTimeout(ctx, time.Minute)
@@ -168,7 +169,7 @@ func (a *FederationInternalAPI) MSC2836EventRelationships(
}
func (a *FederationInternalAPI) MSC2946Spaces(
- ctx context.Context, origin, s gomatrixserverlib.ServerName, roomID string, suggestedOnly bool,
+ ctx context.Context, origin, s spec.ServerName, roomID string, suggestedOnly bool,
) (res fclient.MSC2946SpacesResponse, err error) {
ctx, cancel := context.WithTimeout(ctx, time.Minute)
defer cancel()
diff --git a/federationapi/internal/federationclient_test.go b/federationapi/internal/federationclient_test.go
index 948a96ee..8c562dd6 100644
--- a/federationapi/internal/federationclient_test.go
+++ b/federationapi/internal/federationclient_test.go
@@ -24,8 +24,8 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/setup/process"
"github.com/matrix-org/dendrite/test"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
@@ -34,7 +34,7 @@ const (
FailuresUntilBlacklist = 8
)
-func (t *testFedClient) QueryKeys(ctx context.Context, origin, s gomatrixserverlib.ServerName, keys map[string][]string) (fclient.RespQueryKeys, error) {
+func (t *testFedClient) QueryKeys(ctx context.Context, origin, s spec.ServerName, keys map[string][]string) (fclient.RespQueryKeys, error) {
t.queryKeysCalled = true
if t.shouldFail {
return fclient.RespQueryKeys{}, fmt.Errorf("Failure")
@@ -42,7 +42,7 @@ func (t *testFedClient) QueryKeys(ctx context.Context, origin, s gomatrixserverl
return fclient.RespQueryKeys{}, nil
}
-func (t *testFedClient) ClaimKeys(ctx context.Context, origin, s gomatrixserverlib.ServerName, oneTimeKeys map[string]map[string]string) (fclient.RespClaimKeys, error) {
+func (t *testFedClient) ClaimKeys(ctx context.Context, origin, s spec.ServerName, oneTimeKeys map[string]map[string]string) (fclient.RespClaimKeys, error) {
t.claimKeysCalled = true
if t.shouldFail {
return fclient.RespClaimKeys{}, fmt.Errorf("Failure")
diff --git a/federationapi/internal/keys.go b/federationapi/internal/keys.go
index 258bd88b..00e78a1c 100644
--- a/federationapi/internal/keys.go
+++ b/federationapi/internal/keys.go
@@ -7,6 +7,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
)
@@ -31,14 +32,14 @@ func (s *FederationInternalAPI) StoreKeys(
func (s *FederationInternalAPI) FetchKeys(
_ context.Context,
- requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
+ requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp,
) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) {
// Run in a background context - we don't want to stop this work just
// because the caller gives up waiting.
ctx := context.Background()
- now := gomatrixserverlib.AsTimestamp(time.Now())
+ now := spec.AsTimestamp(time.Now())
results := map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult{}
- origRequests := map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp{}
+ origRequests := map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp{}
for k, v := range requests {
origRequests[k] = v
}
@@ -95,7 +96,7 @@ func (s *FederationInternalAPI) FetcherName() string {
// a request for our own server keys, either current or old.
func (s *FederationInternalAPI) handleLocalKeys(
_ context.Context,
- requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
+ requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp,
results map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult,
) {
for req := range requests {
@@ -111,10 +112,10 @@ func (s *FederationInternalAPI) handleLocalKeys(
// Insert our own key into the response.
results[req] = gomatrixserverlib.PublicKeyLookupResult{
VerifyKey: gomatrixserverlib.VerifyKey{
- Key: gomatrixserverlib.Base64Bytes(s.cfg.Matrix.PrivateKey.Public().(ed25519.PublicKey)),
+ Key: spec.Base64Bytes(s.cfg.Matrix.PrivateKey.Public().(ed25519.PublicKey)),
},
ExpiredTS: gomatrixserverlib.PublicKeyNotExpired,
- ValidUntilTS: gomatrixserverlib.AsTimestamp(time.Now().Add(s.cfg.Matrix.KeyValidityPeriod)),
+ ValidUntilTS: spec.AsTimestamp(time.Now().Add(s.cfg.Matrix.KeyValidityPeriod)),
}
} else {
// The key request doesn't match our current key. Let's see
@@ -128,7 +129,7 @@ func (s *FederationInternalAPI) handleLocalKeys(
// Insert our own key into the response.
results[req] = gomatrixserverlib.PublicKeyLookupResult{
VerifyKey: gomatrixserverlib.VerifyKey{
- Key: gomatrixserverlib.Base64Bytes(oldVerifyKey.PrivateKey.Public().(ed25519.PublicKey)),
+ Key: spec.Base64Bytes(oldVerifyKey.PrivateKey.Public().(ed25519.PublicKey)),
},
ExpiredTS: oldVerifyKey.ExpiredAt,
ValidUntilTS: gomatrixserverlib.PublicKeyNotValid,
@@ -146,8 +147,8 @@ func (s *FederationInternalAPI) handleLocalKeys(
// satisfied from our local database/cache.
func (s *FederationInternalAPI) handleDatabaseKeys(
ctx context.Context,
- now gomatrixserverlib.Timestamp,
- requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
+ now spec.Timestamp,
+ requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp,
results map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult,
) error {
// Ask the database/cache for the keys.
@@ -180,9 +181,9 @@ func (s *FederationInternalAPI) handleDatabaseKeys(
// the remaining requests.
func (s *FederationInternalAPI) handleFetcherKeys(
ctx context.Context,
- _ gomatrixserverlib.Timestamp,
+ _ spec.Timestamp,
fetcher gomatrixserverlib.KeyFetcher,
- requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
+ requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp,
results map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult,
) error {
logrus.WithFields(logrus.Fields{
diff --git a/federationapi/internal/perform.go b/federationapi/internal/perform.go
index c580e527..62a08e88 100644
--- a/federationapi/internal/perform.go
+++ b/federationapi/internal/perform.go
@@ -10,6 +10,7 @@ import (
"github.com/matrix-org/gomatrix"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
@@ -81,8 +82,8 @@ func (r *FederationInternalAPI) PerformJoin(
// Deduplicate the server names we were provided but keep the ordering
// as this encodes useful information about which servers are most likely
// to respond.
- seenSet := make(map[gomatrixserverlib.ServerName]bool)
- var uniqueList []gomatrixserverlib.ServerName
+ seenSet := make(map[spec.ServerName]bool)
+ var uniqueList []spec.ServerName
for _, srv := range request.ServerNames {
if seenSet[srv] || r.cfg.Matrix.IsLocalServerName(srv) {
continue
@@ -144,7 +145,7 @@ func (r *FederationInternalAPI) performJoinUsingServer(
ctx context.Context,
roomID, userID string,
content map[string]interface{},
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
supportedVersions []gomatrixserverlib.RoomVersion,
unsigned map[string]interface{},
) error {
@@ -176,7 +177,7 @@ func (r *FederationInternalAPI) performJoinUsingServer(
// Set all the fields to be what they should be, this should be a no-op
// but it's possible that the remote server returned us something "odd"
- respMakeJoin.JoinEvent.Type = gomatrixserverlib.MRoomMember
+ respMakeJoin.JoinEvent.Type = spec.MRoomMember
respMakeJoin.JoinEvent.Sender = userID
respMakeJoin.JoinEvent.StateKey = &userID
respMakeJoin.JoinEvent.RoomID = roomID
@@ -185,7 +186,7 @@ func (r *FederationInternalAPI) performJoinUsingServer(
content = map[string]interface{}{}
}
_ = json.Unmarshal(respMakeJoin.JoinEvent.Content, &content)
- content["membership"] = gomatrixserverlib.Join
+ content["membership"] = spec.Join
if err = respMakeJoin.JoinEvent.SetContent(content); err != nil {
return fmt.Errorf("respMakeJoin.JoinEvent.SetContent: %w", err)
}
@@ -234,7 +235,7 @@ func (r *FederationInternalAPI) performJoinUsingServer(
// contain signatures that we don't know about.
if len(respSendJoin.Event) > 0 {
var remoteEvent *gomatrixserverlib.Event
- remoteEvent, err = respSendJoin.Event.UntrustedEvent(respMakeJoin.RoomVersion)
+ remoteEvent, err = gomatrixserverlib.UntrustedEvent(respSendJoin.Event, respMakeJoin.RoomVersion)
if err == nil && isWellFormedMembershipEvent(
remoteEvent, roomID, userID,
) {
@@ -316,7 +317,7 @@ func (r *FederationInternalAPI) performJoinUsingServer(
func isWellFormedMembershipEvent(event *gomatrixserverlib.Event, roomID, userID string) bool {
if membership, err := event.Membership(); err != nil {
return false
- } else if membership != gomatrixserverlib.Join {
+ } else if membership != spec.Join {
return false
}
if event.RoomID() != roomID {
@@ -343,8 +344,8 @@ func (r *FederationInternalAPI) PerformOutboundPeek(
// Deduplicate the server names we were provided but keep the ordering
// as this encodes useful information about which servers are most likely
// to respond.
- seenSet := make(map[gomatrixserverlib.ServerName]bool)
- var uniqueList []gomatrixserverlib.ServerName
+ seenSet := make(map[spec.ServerName]bool)
+ var uniqueList []spec.ServerName
for _, srv := range request.ServerNames {
if seenSet[srv] {
continue
@@ -410,7 +411,7 @@ func (r *FederationInternalAPI) PerformOutboundPeek(
func (r *FederationInternalAPI) performOutboundPeekUsingServer(
ctx context.Context,
roomID string,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
supportedVersions []gomatrixserverlib.RoomVersion,
) error {
if !r.shouldAttemptDirectFederation(serverName) {
@@ -553,7 +554,7 @@ func (r *FederationInternalAPI) PerformLeave(
// Set all the fields to be what they should be, this should be a no-op
// but it's possible that the remote server returned us something "odd"
- respMakeLeave.LeaveEvent.Type = gomatrixserverlib.MRoomMember
+ respMakeLeave.LeaveEvent.Type = spec.MRoomMember
respMakeLeave.LeaveEvent.Sender = request.UserID
respMakeLeave.LeaveEvent.StateKey = &request.UserID
respMakeLeave.LeaveEvent.RoomID = request.RoomID
@@ -649,7 +650,7 @@ func (r *FederationInternalAPI) PerformInvite(
"destination": destination,
}).Info("Sending invite")
- inviteReq, err := gomatrixserverlib.NewInviteV2Request(request.Event, request.InviteRoomState)
+ inviteReq, err := fclient.NewInviteV2Request(request.Event, request.InviteRoomState)
if err != nil {
return fmt.Errorf("gomatrixserverlib.NewInviteV2Request: %w", err)
}
@@ -659,7 +660,7 @@ func (r *FederationInternalAPI) PerformInvite(
return fmt.Errorf("r.federation.SendInviteV2: failed to send invite: %w", err)
}
- inviteEvent, err := inviteRes.Event.UntrustedEvent(request.RoomVersion)
+ inviteEvent, err := gomatrixserverlib.UntrustedEvent(inviteRes.Event, request.RoomVersion)
if err != nil {
return fmt.Errorf("r.federation.SendInviteV2 failed to decode event response: %w", err)
}
@@ -705,7 +706,7 @@ func (r *FederationInternalAPI) PerformWakeupServers(
return nil
}
-func (r *FederationInternalAPI) MarkServersAlive(destinations []gomatrixserverlib.ServerName) {
+func (r *FederationInternalAPI) MarkServersAlive(destinations []spec.ServerName) {
for _, srv := range destinations {
wasBlacklisted := r.statistics.ForServer(srv).MarkServerAlive()
r.queues.RetryServer(srv, wasBlacklisted)
@@ -715,7 +716,7 @@ func (r *FederationInternalAPI) MarkServersAlive(destinations []gomatrixserverli
func sanityCheckAuthChain(authChain []*gomatrixserverlib.Event) error {
// sanity check we have a create event and it has a known room version
for _, ev := range authChain {
- if ev.Type() == gomatrixserverlib.MRoomCreate && ev.StateKeyEquals("") {
+ if ev.Type() == spec.MRoomCreate && ev.StateKeyEquals("") {
// make sure the room version is known
content := ev.Content()
verBody := struct {
@@ -767,7 +768,7 @@ func setDefaultRoomVersionFromJoinEvent(
// FederatedAuthProvider is an auth chain provider which fetches events from the server provided
func federatedAuthProvider(
ctx context.Context, federation api.FederationClient,
- keyRing gomatrixserverlib.JSONVerifier, origin, server gomatrixserverlib.ServerName,
+ keyRing gomatrixserverlib.JSONVerifier, origin, server spec.ServerName,
) gomatrixserverlib.AuthChainProvider {
// A list of events that we have retried, if they were not included in
// the auth events supplied in the send_join.
@@ -873,7 +874,7 @@ func (r *FederationInternalAPI) P2PRemoveRelayServers(
}
func (r *FederationInternalAPI) shouldAttemptDirectFederation(
- destination gomatrixserverlib.ServerName,
+ destination spec.ServerName,
) bool {
var shouldRelay bool
stats := r.statistics.ForServer(destination)
diff --git a/federationapi/internal/perform_test.go b/federationapi/internal/perform_test.go
index 90849dcf..4f836242 100644
--- a/federationapi/internal/perform_test.go
+++ b/federationapi/internal/perform_test.go
@@ -24,8 +24,8 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/setup/process"
"github.com/matrix-org/dendrite/test"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
@@ -36,14 +36,14 @@ type testFedClient struct {
shouldFail bool
}
-func (t *testFedClient) LookupRoomAlias(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomAlias string) (res fclient.RespDirectory, err error) {
+func (t *testFedClient) LookupRoomAlias(ctx context.Context, origin, s spec.ServerName, roomAlias string) (res fclient.RespDirectory, err error) {
return fclient.RespDirectory{}, nil
}
func TestPerformWakeupServers(t *testing.T) {
testDB := test.NewInMemoryFederationDatabase()
- server := gomatrixserverlib.ServerName("wakeup")
+ server := spec.ServerName("wakeup")
testDB.AddServerToBlacklist(server)
testDB.SetServerAssumedOffline(context.Background(), server)
blacklisted, err := testDB.IsServerBlacklisted(server)
@@ -73,7 +73,7 @@ func TestPerformWakeupServers(t *testing.T) {
)
req := api.PerformWakeupServersRequest{
- ServerNames: []gomatrixserverlib.ServerName{server},
+ ServerNames: []spec.ServerName{server},
}
res := api.PerformWakeupServersResponse{}
err = fedAPI.PerformWakeupServers(context.Background(), &req, &res)
@@ -90,8 +90,8 @@ func TestPerformWakeupServers(t *testing.T) {
func TestQueryRelayServers(t *testing.T) {
testDB := test.NewInMemoryFederationDatabase()
- server := gomatrixserverlib.ServerName("wakeup")
- relayServers := []gomatrixserverlib.ServerName{"relay1", "relay2"}
+ server := spec.ServerName("wakeup")
+ relayServers := []spec.ServerName{"relay1", "relay2"}
err := testDB.P2PAddRelayServersForServer(context.Background(), server, relayServers)
assert.NoError(t, err)
@@ -127,8 +127,8 @@ func TestQueryRelayServers(t *testing.T) {
func TestRemoveRelayServers(t *testing.T) {
testDB := test.NewInMemoryFederationDatabase()
- server := gomatrixserverlib.ServerName("wakeup")
- relayServers := []gomatrixserverlib.ServerName{"relay1", "relay2"}
+ server := spec.ServerName("wakeup")
+ relayServers := []spec.ServerName{"relay1", "relay2"}
err := testDB.P2PAddRelayServersForServer(context.Background(), server, relayServers)
assert.NoError(t, err)
@@ -153,7 +153,7 @@ func TestRemoveRelayServers(t *testing.T) {
req := api.P2PRemoveRelayServersRequest{
Server: server,
- RelayServers: []gomatrixserverlib.ServerName{"relay1"},
+ RelayServers: []spec.ServerName{"relay1"},
}
res := api.P2PRemoveRelayServersResponse{}
err = fedAPI.P2PRemoveRelayServers(context.Background(), &req, &res)
@@ -162,7 +162,7 @@ func TestRemoveRelayServers(t *testing.T) {
finalRelays, err := testDB.P2PGetRelayServersForServer(context.Background(), server)
assert.NoError(t, err)
assert.Equal(t, 1, len(finalRelays))
- assert.Equal(t, gomatrixserverlib.ServerName("relay2"), finalRelays[0])
+ assert.Equal(t, spec.ServerName("relay2"), finalRelays[0])
}
func TestPerformDirectoryLookup(t *testing.T) {
@@ -199,9 +199,9 @@ func TestPerformDirectoryLookup(t *testing.T) {
func TestPerformDirectoryLookupRelaying(t *testing.T) {
testDB := test.NewInMemoryFederationDatabase()
- server := gomatrixserverlib.ServerName("wakeup")
+ server := spec.ServerName("wakeup")
testDB.SetServerAssumedOffline(context.Background(), server)
- testDB.P2PAddRelayServersForServer(context.Background(), server, []gomatrixserverlib.ServerName{"relay"})
+ testDB.P2PAddRelayServersForServer(context.Background(), server, []spec.ServerName{"relay"})
cfg := config.FederationAPI{
Matrix: &config.Global{
diff --git a/federationapi/internal/query.go b/federationapi/internal/query.go
index 688afa8e..e53f19ff 100644
--- a/federationapi/internal/query.go
+++ b/federationapi/internal/query.go
@@ -7,6 +7,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -25,7 +26,7 @@ func (f *FederationInternalAPI) QueryJoinedHostServerNamesInRoom(
return
}
-func (a *FederationInternalAPI) fetchServerKeysDirectly(ctx context.Context, serverName gomatrixserverlib.ServerName) (*gomatrixserverlib.ServerKeys, error) {
+func (a *FederationInternalAPI) fetchServerKeysDirectly(ctx context.Context, serverName spec.ServerName) (*gomatrixserverlib.ServerKeys, error) {
ctx, cancel := context.WithTimeout(ctx, time.Second*30)
defer cancel()
ires, err := a.doRequestIfNotBackingOffOrBlacklisted(serverName, func() (interface{}, error) {
diff --git a/federationapi/producers/syncapi.go b/federationapi/producers/syncapi.go
index 6bcfafa3..ede56436 100644
--- a/federationapi/producers/syncapi.go
+++ b/federationapi/producers/syncapi.go
@@ -22,6 +22,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
@@ -46,7 +47,7 @@ type SyncAPIProducer struct {
func (p *SyncAPIProducer) SendReceipt(
ctx context.Context,
- userID, roomID, eventID, receiptType string, timestamp gomatrixserverlib.Timestamp,
+ userID, roomID, eventID, receiptType string, timestamp spec.Timestamp,
) error {
m := &nats.Msg{
Subject: p.TopicReceiptEvent,
@@ -155,7 +156,7 @@ func (p *SyncAPIProducer) SendPresence(
if statusMsg != nil {
m.Header.Set("status_msg", *statusMsg)
}
- lastActiveTS := gomatrixserverlib.AsTimestamp(time.Now().Add(-(time.Duration(lastActiveAgo) * time.Millisecond)))
+ lastActiveTS := spec.AsTimestamp(time.Now().Add(-(time.Duration(lastActiveAgo) * time.Millisecond)))
m.Header.Set("last_active_ts", strconv.Itoa(int(lastActiveTS)))
log.Tracef("Sending presence to syncAPI: %+v", m.Header)
@@ -164,7 +165,7 @@ func (p *SyncAPIProducer) SendPresence(
}
func (p *SyncAPIProducer) SendDeviceListUpdate(
- ctx context.Context, deviceListUpdate gomatrixserverlib.RawJSON, origin gomatrixserverlib.ServerName,
+ ctx context.Context, deviceListUpdate spec.RawJSON, origin spec.ServerName,
) (err error) {
m := nats.NewMsg(p.TopicDeviceListUpdate)
m.Header.Set("origin", string(origin))
@@ -175,7 +176,7 @@ func (p *SyncAPIProducer) SendDeviceListUpdate(
}
func (p *SyncAPIProducer) SendSigningKeyUpdate(
- ctx context.Context, data gomatrixserverlib.RawJSON, origin gomatrixserverlib.ServerName,
+ ctx context.Context, data spec.RawJSON, origin spec.ServerName,
) (err error) {
m := nats.NewMsg(p.TopicSigningKeyUpdate)
m.Header.Set("origin", string(origin))
diff --git a/federationapi/queue/destinationqueue.go b/federationapi/queue/destinationqueue.go
index a4542c49..c136fe75 100644
--- a/federationapi/queue/destinationqueue.go
+++ b/federationapi/queue/destinationqueue.go
@@ -24,6 +24,7 @@ import (
"github.com/matrix-org/gomatrix"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
"go.uber.org/atomic"
@@ -51,11 +52,11 @@ type destinationQueue struct {
queues *OutgoingQueues
db storage.Database
process *process.ProcessContext
- signing map[gomatrixserverlib.ServerName]*fclient.SigningIdentity
+ signing map[spec.ServerName]*fclient.SigningIdentity
rsAPI api.FederationRoomserverAPI
client fedapi.FederationClient // federation client
- origin gomatrixserverlib.ServerName // origin of requests
- destination gomatrixserverlib.ServerName // destination of requests
+ origin spec.ServerName // origin of requests
+ destination spec.ServerName // destination of requests
running atomic.Bool // is the queue worker running?
backingOff atomic.Bool // true if we're backing off
overflowed atomic.Bool // the queues exceed maxPDUsInMemory/maxEDUsInMemory, so we should consult the database for more
@@ -426,7 +427,7 @@ func (oq *destinationQueue) nextTransaction(
relaySuccess := false
logrus.Infof("Sending %q to relay servers: %v", t.TransactionID, relayServers)
// TODO : how to pass through actual userID here?!?!?!?!
- userID, userErr := gomatrixserverlib.NewUserID("@user:"+string(oq.destination), false)
+ userID, userErr := spec.NewUserID("@user:"+string(oq.destination), false)
if userErr != nil {
return userErr, sendMethod
}
@@ -507,7 +508,7 @@ func (oq *destinationQueue) createTransaction(
// it so that we retry with the same transaction ID.
oq.transactionIDMutex.Lock()
if oq.transactionID == "" {
- now := gomatrixserverlib.AsTimestamp(time.Now())
+ now := spec.AsTimestamp(time.Now())
oq.transactionID = gomatrixserverlib.TransactionID(fmt.Sprintf("%d-%d", now, oq.statistics.SuccessCount()))
}
oq.transactionIDMutex.Unlock()
@@ -518,7 +519,7 @@ func (oq *destinationQueue) createTransaction(
}
t.Origin = oq.origin
t.Destination = oq.destination
- t.OriginServerTS = gomatrixserverlib.AsTimestamp(time.Now())
+ t.OriginServerTS = spec.AsTimestamp(time.Now())
t.TransactionID = oq.transactionID
var pduReceipts []*receipt.Receipt
diff --git a/federationapi/queue/queue.go b/federationapi/queue/queue.go
index c0ecb287..860446a0 100644
--- a/federationapi/queue/queue.go
+++ b/federationapi/queue/queue.go
@@ -23,6 +23,7 @@ import (
"github.com/getsentry/sentry-go"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/prometheus/client_golang/prometheus"
"github.com/sirupsen/logrus"
log "github.com/sirupsen/logrus"
@@ -43,12 +44,12 @@ type OutgoingQueues struct {
process *process.ProcessContext
disabled bool
rsAPI api.FederationRoomserverAPI
- origin gomatrixserverlib.ServerName
+ origin spec.ServerName
client fedapi.FederationClient
statistics *statistics.Statistics
- signing map[gomatrixserverlib.ServerName]*fclient.SigningIdentity
+ signing map[spec.ServerName]*fclient.SigningIdentity
queuesMutex sync.Mutex // protects the below
- queues map[gomatrixserverlib.ServerName]*destinationQueue
+ queues map[spec.ServerName]*destinationQueue
}
func init() {
@@ -87,7 +88,7 @@ func NewOutgoingQueues(
db storage.Database,
process *process.ProcessContext,
disabled bool,
- origin gomatrixserverlib.ServerName,
+ origin spec.ServerName,
client fedapi.FederationClient,
rsAPI api.FederationRoomserverAPI,
statistics *statistics.Statistics,
@@ -101,15 +102,15 @@ func NewOutgoingQueues(
origin: origin,
client: client,
statistics: statistics,
- signing: map[gomatrixserverlib.ServerName]*fclient.SigningIdentity{},
- queues: map[gomatrixserverlib.ServerName]*destinationQueue{},
+ signing: map[spec.ServerName]*fclient.SigningIdentity{},
+ queues: map[spec.ServerName]*destinationQueue{},
}
for _, identity := range signing {
queues.signing[identity.ServerName] = identity
}
// Look up which servers we have pending items for and then rehydrate those queues.
if !disabled {
- serverNames := map[gomatrixserverlib.ServerName]struct{}{}
+ serverNames := map[spec.ServerName]struct{}{}
if names, err := db.GetPendingPDUServerNames(process.Context()); err == nil {
for _, serverName := range names {
serverNames[serverName] = struct{}{}
@@ -148,7 +149,7 @@ type queuedEDU struct {
edu *gomatrixserverlib.EDU
}
-func (oqs *OutgoingQueues) getQueue(destination gomatrixserverlib.ServerName) *destinationQueue {
+func (oqs *OutgoingQueues) getQueue(destination spec.ServerName) *destinationQueue {
if oqs.statistics.ForServer(destination).Blacklisted() {
return nil
}
@@ -187,8 +188,8 @@ func (oqs *OutgoingQueues) clearQueue(oq *destinationQueue) {
// SendEvent sends an event to the destinations
func (oqs *OutgoingQueues) SendEvent(
- ev *gomatrixserverlib.HeaderedEvent, origin gomatrixserverlib.ServerName,
- destinations []gomatrixserverlib.ServerName,
+ ev *gomatrixserverlib.HeaderedEvent, origin spec.ServerName,
+ destinations []spec.ServerName,
) error {
if oqs.disabled {
log.Trace("Federation is disabled, not sending event")
@@ -203,7 +204,7 @@ func (oqs *OutgoingQueues) SendEvent(
// Deduplicate destinations and remove the origin from the list of
// destinations just to be sure.
- destmap := map[gomatrixserverlib.ServerName]struct{}{}
+ destmap := map[spec.ServerName]struct{}{}
for _, d := range destinations {
destmap[d] = struct{}{}
}
@@ -277,8 +278,8 @@ func (oqs *OutgoingQueues) SendEvent(
// SendEDU sends an EDU event to the destinations.
func (oqs *OutgoingQueues) SendEDU(
- e *gomatrixserverlib.EDU, origin gomatrixserverlib.ServerName,
- destinations []gomatrixserverlib.ServerName,
+ e *gomatrixserverlib.EDU, origin spec.ServerName,
+ destinations []spec.ServerName,
) error {
if oqs.disabled {
log.Trace("Federation is disabled, not sending EDU")
@@ -293,7 +294,7 @@ func (oqs *OutgoingQueues) SendEDU(
// Deduplicate destinations and remove the origin from the list of
// destinations just to be sure.
- destmap := map[gomatrixserverlib.ServerName]struct{}{}
+ destmap := map[spec.ServerName]struct{}{}
for _, d := range destinations {
destmap[d] = struct{}{}
}
@@ -376,7 +377,7 @@ func (oqs *OutgoingQueues) SendEDU(
}
// RetryServer attempts to resend events to the given server if we had given up.
-func (oqs *OutgoingQueues) RetryServer(srv gomatrixserverlib.ServerName, wasBlacklisted bool) {
+func (oqs *OutgoingQueues) RetryServer(srv spec.ServerName, wasBlacklisted bool) {
if oqs.disabled {
return
}
diff --git a/federationapi/queue/queue_test.go b/federationapi/queue/queue_test.go
index 65a925d3..b153cba0 100644
--- a/federationapi/queue/queue_test.go
+++ b/federationapi/queue/queue_test.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/test/testrig"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"go.uber.org/atomic"
"gotest.tools/v3/poll"
@@ -91,7 +92,7 @@ func (f *stubFederationClient) SendTransaction(ctx context.Context, t gomatrixse
return fclient.RespSend{}, result
}
-func (f *stubFederationClient) P2PSendTransactionToRelay(ctx context.Context, u gomatrixserverlib.UserID, t gomatrixserverlib.Transaction, forwardingServer gomatrixserverlib.ServerName) (res fclient.EmptyResp, err error) {
+func (f *stubFederationClient) P2PSendTransactionToRelay(ctx context.Context, u spec.UserID, t gomatrixserverlib.Transaction, forwardingServer spec.ServerName) (res fclient.EmptyResp, err error) {
var result error
if !f.shouldTxRelaySucceed {
result = fmt.Errorf("relay transaction failed")
@@ -113,7 +114,7 @@ func mustCreatePDU(t *testing.T) *gomatrixserverlib.HeaderedEvent {
func mustCreateEDU(t *testing.T) *gomatrixserverlib.EDU {
t.Helper()
- return &gomatrixserverlib.EDU{Type: gomatrixserverlib.MTyping}
+ return &gomatrixserverlib.EDU{Type: spec.MTyping}
}
func testSetup(failuresUntilBlacklist uint32, failuresUntilAssumedOffline uint32, shouldTxSucceed bool, shouldTxRelaySucceed bool, t *testing.T, dbType test.DBType, realDatabase bool) (storage.Database, *stubFederationClient, *OutgoingQueues, *process.ProcessContext, func()) {
@@ -143,7 +144,7 @@ func testSetup(failuresUntilBlacklist uint32, failuresUntilAssumedOffline uint32
func TestSendPDUOnSuccessRemovedFromDB(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, true, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -152,7 +153,7 @@ func TestSendPDUOnSuccessRemovedFromDB(t *testing.T) {
}()
ev := mustCreatePDU(t)
- err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -172,7 +173,7 @@ func TestSendPDUOnSuccessRemovedFromDB(t *testing.T) {
func TestSendEDUOnSuccessRemovedFromDB(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, true, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -181,7 +182,7 @@ func TestSendEDUOnSuccessRemovedFromDB(t *testing.T) {
}()
ev := mustCreateEDU(t)
- err := queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -201,7 +202,7 @@ func TestSendEDUOnSuccessRemovedFromDB(t *testing.T) {
func TestSendPDUOnFailStoredInDB(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -210,7 +211,7 @@ func TestSendPDUOnFailStoredInDB(t *testing.T) {
}()
ev := mustCreatePDU(t)
- err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -231,7 +232,7 @@ func TestSendPDUOnFailStoredInDB(t *testing.T) {
func TestSendEDUOnFailStoredInDB(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -240,7 +241,7 @@ func TestSendEDUOnFailStoredInDB(t *testing.T) {
}()
ev := mustCreateEDU(t)
- err := queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -261,7 +262,7 @@ func TestSendEDUOnFailStoredInDB(t *testing.T) {
func TestSendPDUAgainDoesntInterruptBackoff(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -270,7 +271,7 @@ func TestSendPDUAgainDoesntInterruptBackoff(t *testing.T) {
}()
ev := mustCreatePDU(t)
- err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -289,7 +290,7 @@ func TestSendPDUAgainDoesntInterruptBackoff(t *testing.T) {
fc.shouldTxSucceed = true
ev = mustCreatePDU(t)
- err = queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err = queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
pollEnd := time.Now().Add(1 * time.Second)
@@ -312,7 +313,7 @@ func TestSendPDUAgainDoesntInterruptBackoff(t *testing.T) {
func TestSendEDUAgainDoesntInterruptBackoff(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -321,7 +322,7 @@ func TestSendEDUAgainDoesntInterruptBackoff(t *testing.T) {
}()
ev := mustCreateEDU(t)
- err := queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -340,7 +341,7 @@ func TestSendEDUAgainDoesntInterruptBackoff(t *testing.T) {
fc.shouldTxSucceed = true
ev = mustCreateEDU(t)
- err = queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err = queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
pollEnd := time.Now().Add(1 * time.Second)
@@ -363,7 +364,7 @@ func TestSendEDUAgainDoesntInterruptBackoff(t *testing.T) {
func TestSendPDUMultipleFailuresBlacklisted(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(2)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -372,7 +373,7 @@ func TestSendPDUMultipleFailuresBlacklisted(t *testing.T) {
}()
ev := mustCreatePDU(t)
- err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -395,7 +396,7 @@ func TestSendPDUMultipleFailuresBlacklisted(t *testing.T) {
func TestSendEDUMultipleFailuresBlacklisted(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(2)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -404,7 +405,7 @@ func TestSendEDUMultipleFailuresBlacklisted(t *testing.T) {
}()
ev := mustCreateEDU(t)
- err := queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -427,7 +428,7 @@ func TestSendEDUMultipleFailuresBlacklisted(t *testing.T) {
func TestSendPDUBlacklistedWithPriorExternalFailure(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(2)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -438,7 +439,7 @@ func TestSendPDUBlacklistedWithPriorExternalFailure(t *testing.T) {
queues.statistics.ForServer(destination).Failure()
ev := mustCreatePDU(t)
- err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -461,7 +462,7 @@ func TestSendPDUBlacklistedWithPriorExternalFailure(t *testing.T) {
func TestSendEDUBlacklistedWithPriorExternalFailure(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(2)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -472,7 +473,7 @@ func TestSendEDUBlacklistedWithPriorExternalFailure(t *testing.T) {
queues.statistics.ForServer(destination).Failure()
ev := mustCreateEDU(t)
- err := queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -495,7 +496,7 @@ func TestSendEDUBlacklistedWithPriorExternalFailure(t *testing.T) {
func TestRetryServerSendsPDUSuccessfully(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(1)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -507,7 +508,7 @@ func TestRetryServerSendsPDUSuccessfully(t *testing.T) {
// before it is blacklisted and deleted.
dest := queues.getQueue(destination)
ev := mustCreatePDU(t)
- err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
checkBlacklisted := func(log poll.LogT) poll.Result {
@@ -546,7 +547,7 @@ func TestRetryServerSendsPDUSuccessfully(t *testing.T) {
func TestRetryServerSendsEDUSuccessfully(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(1)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -558,7 +559,7 @@ func TestRetryServerSendsEDUSuccessfully(t *testing.T) {
// before it is blacklisted and deleted.
dest := queues.getQueue(destination)
ev := mustCreateEDU(t)
- err := queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
checkBlacklisted := func(log poll.LogT) poll.Result {
@@ -597,7 +598,7 @@ func TestRetryServerSendsEDUSuccessfully(t *testing.T) {
func TestSendPDUBatches(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
// test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
// db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, true, t, dbType, true)
@@ -608,7 +609,7 @@ func TestSendPDUBatches(t *testing.T) {
<-pc.WaitForShutdown()
}()
- destinations := map[gomatrixserverlib.ServerName]struct{}{destination: {}}
+ destinations := map[spec.ServerName]struct{}{destination: {}}
// Populate database with > maxPDUsPerTransaction
pduMultiplier := uint32(3)
for i := 0; i < maxPDUsPerTransaction*int(pduMultiplier); i++ {
@@ -620,7 +621,7 @@ func TestSendPDUBatches(t *testing.T) {
}
ev := mustCreatePDU(t)
- err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -641,7 +642,7 @@ func TestSendPDUBatches(t *testing.T) {
func TestSendEDUBatches(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
// test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
// db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, true, t, dbType, true)
@@ -652,7 +653,7 @@ func TestSendEDUBatches(t *testing.T) {
<-pc.WaitForShutdown()
}()
- destinations := map[gomatrixserverlib.ServerName]struct{}{destination: {}}
+ destinations := map[spec.ServerName]struct{}{destination: {}}
// Populate database with > maxEDUsPerTransaction
eduMultiplier := uint32(3)
for i := 0; i < maxEDUsPerTransaction*int(eduMultiplier); i++ {
@@ -664,7 +665,7 @@ func TestSendEDUBatches(t *testing.T) {
}
ev := mustCreateEDU(t)
- err := queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -685,7 +686,7 @@ func TestSendEDUBatches(t *testing.T) {
func TestSendPDUAndEDUBatches(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
// test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
// db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, true, t, dbType, true)
@@ -696,7 +697,7 @@ func TestSendPDUAndEDUBatches(t *testing.T) {
<-pc.WaitForShutdown()
}()
- destinations := map[gomatrixserverlib.ServerName]struct{}{destination: {}}
+ destinations := map[spec.ServerName]struct{}{destination: {}}
// Populate database with > maxEDUsPerTransaction
multiplier := uint32(3)
for i := 0; i < maxPDUsPerTransaction*int(multiplier)+1; i++ {
@@ -716,7 +717,7 @@ func TestSendPDUAndEDUBatches(t *testing.T) {
}
ev := mustCreateEDU(t)
- err := queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -739,7 +740,7 @@ func TestSendPDUAndEDUBatches(t *testing.T) {
func TestExternalFailureBackoffDoesntStartQueue(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, true, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -749,7 +750,7 @@ func TestExternalFailureBackoffDoesntStartQueue(t *testing.T) {
dest := queues.getQueue(destination)
queues.statistics.ForServer(destination).Failure()
- destinations := map[gomatrixserverlib.ServerName]struct{}{destination: {}}
+ destinations := map[spec.ServerName]struct{}{destination: {}}
ev := mustCreatePDU(t)
headeredJSON, _ := json.Marshal(ev)
nid, _ := db.StoreJSON(pc.Context(), string(headeredJSON))
@@ -775,8 +776,8 @@ func TestQueueInteractsWithRealDatabasePDUAndEDU(t *testing.T) {
// NOTE : Only one test case against real databases can be run at a time.
t.Parallel()
failuresUntilBlacklist := uint32(1)
- destination := gomatrixserverlib.ServerName("remotehost")
- destinations := map[gomatrixserverlib.ServerName]struct{}{destination: {}}
+ destination := spec.ServerName("remotehost")
+ destinations := map[spec.ServerName]struct{}{destination: {}}
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilBlacklist+1, false, false, t, dbType, true)
// NOTE : These defers aren't called if go test is killed so the dbs may not get cleaned up.
@@ -790,7 +791,7 @@ func TestQueueInteractsWithRealDatabasePDUAndEDU(t *testing.T) {
// before it is blacklisted and deleted.
dest := queues.getQueue(destination)
ev := mustCreatePDU(t)
- err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
// NOTE : The server can be blacklisted before this, so manually inject the event
@@ -843,7 +844,7 @@ func TestSendPDUMultipleFailuresAssumedOffline(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(7)
failuresUntilAssumedOffline := uint32(2)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilAssumedOffline, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -852,7 +853,7 @@ func TestSendPDUMultipleFailuresAssumedOffline(t *testing.T) {
}()
ev := mustCreatePDU(t)
- err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -876,7 +877,7 @@ func TestSendEDUMultipleFailuresAssumedOffline(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(7)
failuresUntilAssumedOffline := uint32(2)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilAssumedOffline, false, false, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -885,7 +886,7 @@ func TestSendEDUMultipleFailuresAssumedOffline(t *testing.T) {
}()
ev := mustCreateEDU(t)
- err := queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -909,7 +910,7 @@ func TestSendPDUOnRelaySuccessRemovedFromDB(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
failuresUntilAssumedOffline := uint32(1)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilAssumedOffline, false, true, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -917,11 +918,11 @@ func TestSendPDUOnRelaySuccessRemovedFromDB(t *testing.T) {
<-pc.WaitForShutdown()
}()
- relayServers := []gomatrixserverlib.ServerName{"relayserver"}
+ relayServers := []spec.ServerName{"relayserver"}
queues.statistics.ForServer(destination).AddRelayServers(relayServers)
ev := mustCreatePDU(t)
- err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEvent(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
@@ -948,7 +949,7 @@ func TestSendEDUOnRelaySuccessRemovedFromDB(t *testing.T) {
t.Parallel()
failuresUntilBlacklist := uint32(16)
failuresUntilAssumedOffline := uint32(1)
- destination := gomatrixserverlib.ServerName("remotehost")
+ destination := spec.ServerName("remotehost")
db, fc, queues, pc, close := testSetup(failuresUntilBlacklist, failuresUntilAssumedOffline, false, true, t, test.DBTypeSQLite, false)
defer close()
defer func() {
@@ -956,11 +957,11 @@ func TestSendEDUOnRelaySuccessRemovedFromDB(t *testing.T) {
<-pc.WaitForShutdown()
}()
- relayServers := []gomatrixserverlib.ServerName{"relayserver"}
+ relayServers := []spec.ServerName{"relayserver"}
queues.statistics.ForServer(destination).AddRelayServers(relayServers)
ev := mustCreateEDU(t)
- err := queues.SendEDU(ev, "localhost", []gomatrixserverlib.ServerName{destination})
+ err := queues.SendEDU(ev, "localhost", []spec.ServerName{destination})
assert.NoError(t, err)
check := func(log poll.LogT) poll.Result {
diff --git a/federationapi/routing/backfill.go b/federationapi/routing/backfill.go
index 272f5e9d..e99d54a6 100644
--- a/federationapi/routing/backfill.go
+++ b/federationapi/routing/backfill.go
@@ -25,6 +25,8 @@ import (
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -32,7 +34,7 @@ import (
// https://matrix.org/docs/spec/server_server/unstable.html#get-matrix-federation-v1-backfill-roomid
func Backfill(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
rsAPI api.FederationRoomserverAPI,
roomID string,
cfg *config.FederationAPI,
@@ -126,7 +128,7 @@ func Backfill(
txn := gomatrixserverlib.Transaction{
Origin: request.Destination(),
PDUs: eventJSONs,
- OriginServerTS: gomatrixserverlib.AsTimestamp(time.Now()),
+ OriginServerTS: spec.AsTimestamp(time.Now()),
}
// Send the events to the client.
diff --git a/federationapi/routing/devices.go b/federationapi/routing/devices.go
index aae1299f..6a2ef152 100644
--- a/federationapi/routing/devices.go
+++ b/federationapi/routing/devices.go
@@ -20,6 +20,7 @@ import (
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/tidwall/gjson"
)
@@ -91,10 +92,10 @@ func GetUserDevices(
for sourceUserID, forSourceUser := range targetKey {
for sourceKeyID, sourceKey := range forSourceUser {
if device.Keys.Signatures == nil {
- device.Keys.Signatures = map[string]map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ device.Keys.Signatures = map[string]map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
if _, ok := device.Keys.Signatures[sourceUserID]; !ok {
- device.Keys.Signatures[sourceUserID] = map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ device.Keys.Signatures[sourceUserID] = map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
device.Keys.Signatures[sourceUserID][sourceKeyID] = sourceKey
}
diff --git a/federationapi/routing/eventauth.go b/federationapi/routing/eventauth.go
index 65a2a9bc..89db3e98 100644
--- a/federationapi/routing/eventauth.go
+++ b/federationapi/routing/eventauth.go
@@ -26,7 +26,7 @@ import (
// GetEventAuth returns event auth for the roomID and eventID
func GetEventAuth(
ctx context.Context,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
rsAPI api.FederationRoomserverAPI,
roomID string,
eventID string,
diff --git a/federationapi/routing/events.go b/federationapi/routing/events.go
index b4129241..e2547389 100644
--- a/federationapi/routing/events.go
+++ b/federationapi/routing/events.go
@@ -21,6 +21,8 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
@@ -30,10 +32,10 @@ import (
// GetEvent returns the requested event
func GetEvent(
ctx context.Context,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
rsAPI api.FederationRoomserverAPI,
eventID string,
- origin gomatrixserverlib.ServerName,
+ origin spec.ServerName,
) util.JSONResponse {
err := allowedToSeeEvent(ctx, request.Origin(), rsAPI, eventID)
if err != nil {
@@ -48,7 +50,7 @@ func GetEvent(
return util.JSONResponse{Code: http.StatusOK, JSON: gomatrixserverlib.Transaction{
Origin: origin,
- OriginServerTS: gomatrixserverlib.AsTimestamp(time.Now()),
+ OriginServerTS: spec.AsTimestamp(time.Now()),
PDUs: []json.RawMessage{
event.JSON(),
},
@@ -59,7 +61,7 @@ func GetEvent(
// otherwise it returns an error response which can be sent to the client.
func allowedToSeeEvent(
ctx context.Context,
- origin gomatrixserverlib.ServerName,
+ origin spec.ServerName,
rsAPI api.FederationRoomserverAPI,
eventID string,
) *util.JSONResponse {
diff --git a/federationapi/routing/invite.go b/federationapi/routing/invite.go
index c1fdf266..b188041e 100644
--- a/federationapi/routing/invite.go
+++ b/federationapi/routing/invite.go
@@ -32,14 +32,14 @@ import (
// InviteV2 implements /_matrix/federation/v2/invite/{roomID}/{eventID}
func InviteV2(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
roomID string,
eventID string,
cfg *config.FederationAPI,
rsAPI api.FederationRoomserverAPI,
keys gomatrixserverlib.JSONVerifier,
) util.JSONResponse {
- inviteReq := gomatrixserverlib.InviteV2Request{}
+ inviteReq := fclient.InviteV2Request{}
err := json.Unmarshal(request.Content(), &inviteReq)
switch e := err.(type) {
case gomatrixserverlib.UnsupportedRoomVersionError:
@@ -69,7 +69,7 @@ func InviteV2(
// InviteV1 implements /_matrix/federation/v1/invite/{roomID}/{eventID}
func InviteV1(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
roomID string,
eventID string,
cfg *config.FederationAPI,
@@ -92,7 +92,7 @@ func InviteV1(
JSON: jsonerror.NotJSON("The request body could not be decoded into an invite v1 request. " + err.Error()),
}
}
- var strippedState []gomatrixserverlib.InviteV2StrippedState
+ var strippedState []fclient.InviteV2StrippedState
if err := json.Unmarshal(event.Unsigned(), &strippedState); err != nil {
// just warn, they may not have added any.
util.GetLogger(httpReq.Context()).Warnf("failed to extract stripped state from invite event")
@@ -107,7 +107,7 @@ func processInvite(
isInviteV2 bool,
event *gomatrixserverlib.Event,
roomVer gomatrixserverlib.RoomVersion,
- strippedState []gomatrixserverlib.InviteV2StrippedState,
+ strippedState []fclient.InviteV2StrippedState,
roomID string,
eventID string,
cfg *config.FederationAPI,
diff --git a/federationapi/routing/join.go b/federationapi/routing/join.go
index 1476f903..750d5ce9 100644
--- a/federationapi/routing/join.go
+++ b/federationapi/routing/join.go
@@ -23,6 +23,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
@@ -35,7 +36,7 @@ import (
// MakeJoin implements the /make_join API
func MakeJoin(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
cfg *config.FederationAPI,
rsAPI api.FederationRoomserverAPI,
roomID, userID string,
@@ -124,7 +125,7 @@ func MakeJoin(
StateKey: &userID,
}
content := gomatrixserverlib.MemberContent{
- Membership: gomatrixserverlib.Join,
+ Membership: spec.Join,
AuthorisedVia: authorisedVia,
}
if err = builder.SetContent(content); err != nil {
@@ -190,7 +191,7 @@ func MakeJoin(
// nolint:gocyclo
func SendJoin(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
cfg *config.FederationAPI,
rsAPI api.FederationRoomserverAPI,
keys gomatrixserverlib.JSONVerifier,
@@ -231,7 +232,7 @@ func SendJoin(
// Check that the sender belongs to the server that is sending us
// the request. By this point we've already asserted that the sender
// and the state key are equal so we don't need to check both.
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
if _, serverName, err = gomatrixserverlib.SplitID('@', event.Sender()); err != nil {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -278,7 +279,7 @@ func SendJoin(
JSON: jsonerror.BadJSON("missing content.membership key"),
}
}
- if membership != gomatrixserverlib.Join {
+ if membership != spec.Join {
return util.JSONResponse{
Code: http.StatusBadRequest,
JSON: jsonerror.BadJSON("membership must be 'join'"),
@@ -349,8 +350,8 @@ func SendJoin(
continue
}
if membership, merr := se.Membership(); merr == nil {
- alreadyJoined = (membership == gomatrixserverlib.Join)
- isBanned = (membership == gomatrixserverlib.Ban)
+ alreadyJoined = (membership == spec.Join)
+ isBanned = (membership == spec.Ban)
break
}
}
diff --git a/federationapi/routing/keys.go b/federationapi/routing/keys.go
index db768591..6c30e5b0 100644
--- a/federationapi/routing/keys.go
+++ b/federationapi/routing/keys.go
@@ -26,6 +26,7 @@ import (
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
"golang.org/x/crypto/ed25519"
@@ -38,7 +39,7 @@ type queryKeysRequest struct {
// QueryDeviceKeys returns device keys for users on this server.
// https://matrix.org/docs/spec/server_server/latest#post-matrix-federation-v1-user-keys-query
func QueryDeviceKeys(
- httpReq *http.Request, request *gomatrixserverlib.FederationRequest, keyAPI api.FederationKeyAPI, thisServer gomatrixserverlib.ServerName,
+ httpReq *http.Request, request *fclient.FederationRequest, keyAPI api.FederationKeyAPI, thisServer spec.ServerName,
) util.JSONResponse {
var qkr queryKeysRequest
err := json.Unmarshal(request.Content(), &qkr)
@@ -92,7 +93,7 @@ type claimOTKsRequest struct {
// ClaimOneTimeKeys claims OTKs for users on this server.
// https://matrix.org/docs/spec/server_server/latest#post-matrix-federation-v1-user-keys-claim
func ClaimOneTimeKeys(
- httpReq *http.Request, request *gomatrixserverlib.FederationRequest, keyAPI api.FederationKeyAPI, thisServer gomatrixserverlib.ServerName,
+ httpReq *http.Request, request *fclient.FederationRequest, keyAPI api.FederationKeyAPI, thisServer spec.ServerName,
) util.JSONResponse {
var cor claimOTKsRequest
err := json.Unmarshal(request.Content(), &cor)
@@ -135,7 +136,7 @@ func ClaimOneTimeKeys(
// LocalKeys returns the local keys for the server.
// See https://matrix.org/docs/spec/server_server/unstable.html#publishing-keys
-func LocalKeys(cfg *config.FederationAPI, serverName gomatrixserverlib.ServerName) util.JSONResponse {
+func LocalKeys(cfg *config.FederationAPI, serverName spec.ServerName) util.JSONResponse {
keys, err := localKeys(cfg, serverName)
if err != nil {
return util.MessageResponse(http.StatusNotFound, err.Error())
@@ -143,7 +144,7 @@ func LocalKeys(cfg *config.FederationAPI, serverName gomatrixserverlib.ServerNam
return util.JSONResponse{Code: http.StatusOK, JSON: keys}
}
-func localKeys(cfg *config.FederationAPI, serverName gomatrixserverlib.ServerName) (*gomatrixserverlib.ServerKeys, error) {
+func localKeys(cfg *config.FederationAPI, serverName spec.ServerName) (*gomatrixserverlib.ServerKeys, error) {
var keys gomatrixserverlib.ServerKeys
var identity *fclient.SigningIdentity
var err error
@@ -153,10 +154,10 @@ func localKeys(cfg *config.FederationAPI, serverName gomatrixserverlib.ServerNam
}
publicKey := cfg.Matrix.PrivateKey.Public().(ed25519.PublicKey)
keys.ServerName = cfg.Matrix.ServerName
- keys.ValidUntilTS = gomatrixserverlib.AsTimestamp(time.Now().Add(cfg.Matrix.KeyValidityPeriod))
+ keys.ValidUntilTS = spec.AsTimestamp(time.Now().Add(cfg.Matrix.KeyValidityPeriod))
keys.VerifyKeys = map[gomatrixserverlib.KeyID]gomatrixserverlib.VerifyKey{
cfg.Matrix.KeyID: {
- Key: gomatrixserverlib.Base64Bytes(publicKey),
+ Key: spec.Base64Bytes(publicKey),
},
}
keys.OldVerifyKeys = map[gomatrixserverlib.KeyID]gomatrixserverlib.OldVerifyKey{}
@@ -174,10 +175,10 @@ func localKeys(cfg *config.FederationAPI, serverName gomatrixserverlib.ServerNam
}
publicKey := virtualHost.PrivateKey.Public().(ed25519.PublicKey)
keys.ServerName = virtualHost.ServerName
- keys.ValidUntilTS = gomatrixserverlib.AsTimestamp(time.Now().Add(virtualHost.KeyValidityPeriod))
+ keys.ValidUntilTS = spec.AsTimestamp(time.Now().Add(virtualHost.KeyValidityPeriod))
keys.VerifyKeys = map[gomatrixserverlib.KeyID]gomatrixserverlib.VerifyKey{
virtualHost.KeyID: {
- Key: gomatrixserverlib.Base64Bytes(publicKey),
+ Key: spec.Base64Bytes(publicKey),
},
}
// TODO: Virtual hosts probably want to be able to specify old signing
@@ -200,7 +201,7 @@ func NotaryKeys(
fsAPI federationAPI.FederationInternalAPI,
req *gomatrixserverlib.PublicKeyNotaryLookupRequest,
) util.JSONResponse {
- serverName := gomatrixserverlib.ServerName(httpReq.Host) // TODO: this is not ideal
+ serverName := spec.ServerName(httpReq.Host) // TODO: this is not ideal
if !cfg.Matrix.IsLocalServerName(serverName) {
return util.JSONResponse{
Code: http.StatusNotFound,
diff --git a/federationapi/routing/leave.go b/federationapi/routing/leave.go
index f1e9f49b..afd4b24a 100644
--- a/federationapi/routing/leave.go
+++ b/federationapi/routing/leave.go
@@ -22,6 +22,8 @@ import (
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
)
@@ -29,7 +31,7 @@ import (
// MakeLeave implements the /make_leave API
func MakeLeave(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
cfg *config.FederationAPI,
rsAPI api.FederationRoomserverAPI,
roomID, userID string,
@@ -55,7 +57,7 @@ func MakeLeave(
Type: "m.room.member",
StateKey: &userID,
}
- err = builder.SetContent(map[string]interface{}{"membership": gomatrixserverlib.Leave})
+ err = builder.SetContent(map[string]interface{}{"membership": spec.Leave})
if err != nil {
util.GetLogger(httpReq.Context()).WithError(err).Error("builder.SetContent failed")
return jsonerror.InternalServerError()
@@ -95,7 +97,7 @@ func MakeLeave(
if !state.StateKeyEquals(userID) {
continue
}
- if mem, merr := state.Membership(); merr == nil && mem == gomatrixserverlib.Leave {
+ if mem, merr := state.Membership(); merr == nil && mem == spec.Leave {
return util.JSONResponse{
Code: http.StatusOK,
JSON: map[string]interface{}{
@@ -132,7 +134,7 @@ func MakeLeave(
// nolint:gocyclo
func SendLeave(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
cfg *config.FederationAPI,
rsAPI api.FederationRoomserverAPI,
keys gomatrixserverlib.JSONVerifier,
@@ -195,7 +197,7 @@ func SendLeave(
// Check that the sender belongs to the server that is sending us
// the request. By this point we've already asserted that the sender
// and the state key are equal so we don't need to check both.
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
if _, serverName, err = gomatrixserverlib.SplitID('@', event.Sender()); err != nil {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -213,7 +215,7 @@ func SendLeave(
RoomID: roomID,
StateToFetch: []gomatrixserverlib.StateKeyTuple{
{
- EventType: gomatrixserverlib.MRoomMember,
+ EventType: spec.MRoomMember,
StateKey: *event.StateKey(),
},
},
@@ -242,7 +244,7 @@ func SendLeave(
// We are/were joined/invited/banned or something. Check if
// we can no-op here.
if len(queryRes.StateEvents) == 1 {
- if mem, merr := queryRes.StateEvents[0].Membership(); merr == nil && mem == gomatrixserverlib.Leave {
+ if mem, merr := queryRes.StateEvents[0].Membership(); merr == nil && mem == spec.Leave {
return util.JSONResponse{
Code: http.StatusOK,
JSON: struct{}{},
@@ -286,7 +288,7 @@ func SendLeave(
JSON: jsonerror.BadJSON("missing content.membership key"),
}
}
- if mem != gomatrixserverlib.Leave {
+ if mem != spec.Leave {
return util.JSONResponse{
Code: http.StatusBadRequest,
JSON: jsonerror.BadJSON("The membership in the event content must be set to leave"),
diff --git a/federationapi/routing/missingevents.go b/federationapi/routing/missingevents.go
index 63a32b9c..28dc31da 100644
--- a/federationapi/routing/missingevents.go
+++ b/federationapi/routing/missingevents.go
@@ -34,7 +34,7 @@ type getMissingEventRequest struct {
// Events are fetched from room DAG starting from latest_events until we reach earliest_events or the limit.
func GetMissingEvents(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
rsAPI api.FederationRoomserverAPI,
roomID string,
) util.JSONResponse {
diff --git a/federationapi/routing/peek.go b/federationapi/routing/peek.go
index 6c4d315c..2ccf7cfc 100644
--- a/federationapi/routing/peek.go
+++ b/federationapi/routing/peek.go
@@ -28,7 +28,7 @@ import (
// Peek implements the SS /peek API, handling inbound peeks
func Peek(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
cfg *config.FederationAPI,
rsAPI api.FederationRoomserverAPI,
roomID, peekID string,
diff --git a/federationapi/routing/profile_test.go b/federationapi/routing/profile_test.go
index d249fce1..18a908e4 100644
--- a/federationapi/routing/profile_test.go
+++ b/federationapi/routing/profile_test.go
@@ -36,6 +36,8 @@ import (
"github.com/matrix-org/dendrite/test/testrig"
userAPI "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
"golang.org/x/crypto/ed25519"
)
@@ -75,8 +77,8 @@ func TestHandleQueryProfile(t *testing.T) {
_, sk, _ := ed25519.GenerateKey(nil)
keyID := signing.KeyID
pk := sk.Public().(ed25519.PublicKey)
- serverName := gomatrixserverlib.ServerName(hex.EncodeToString(pk))
- req := gomatrixserverlib.NewFederationRequest("GET", serverName, testOrigin, "/query/profile?user_id="+url.QueryEscape("@user:"+string(testOrigin)))
+ serverName := spec.ServerName(hex.EncodeToString(pk))
+ req := fclient.NewFederationRequest("GET", serverName, testOrigin, "/query/profile?user_id="+url.QueryEscape("@user:"+string(testOrigin)))
type queryContent struct{}
content := queryContent{}
err := req.SetContent(content)
diff --git a/federationapi/routing/publicrooms.go b/federationapi/routing/publicrooms.go
index 7c5d6a02..80343d93 100644
--- a/federationapi/routing/publicrooms.go
+++ b/federationapi/routing/publicrooms.go
@@ -8,6 +8,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/clientapi/httputil"
@@ -126,11 +127,11 @@ func fillPublicRoomsReq(httpReq *http.Request, request *PublicRoomReq) *util.JSO
func fillInRooms(ctx context.Context, roomIDs []string, rsAPI roomserverAPI.FederationRoomserverAPI) ([]fclient.PublicRoom, error) {
avatarTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.avatar", StateKey: ""}
nameTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.name", StateKey: ""}
- canonicalTuple := gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomCanonicalAlias, StateKey: ""}
+ canonicalTuple := gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomCanonicalAlias, StateKey: ""}
topicTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.topic", StateKey: ""}
guestTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.guest_access", StateKey: ""}
- visibilityTuple := gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomHistoryVisibility, StateKey: ""}
- joinRuleTuple := gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomJoinRules, StateKey: ""}
+ visibilityTuple := gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomHistoryVisibility, StateKey: ""}
+ joinRuleTuple := gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomJoinRules, StateKey: ""}
var stateRes roomserverAPI.QueryBulkStateContentResponse
err := rsAPI.QueryBulkStateContent(ctx, &roomserverAPI.QueryBulkStateContentRequest{
@@ -138,7 +139,7 @@ func fillInRooms(ctx context.Context, roomIDs []string, rsAPI roomserverAPI.Fede
AllowWildcards: true,
StateTuples: []gomatrixserverlib.StateKeyTuple{
nameTuple, canonicalTuple, topicTuple, guestTuple, visibilityTuple, joinRuleTuple, avatarTuple,
- {EventType: gomatrixserverlib.MRoomMember, StateKey: "*"},
+ {EventType: spec.MRoomMember, StateKey: "*"},
},
}, &stateRes)
if err != nil {
@@ -154,7 +155,7 @@ func fillInRooms(ctx context.Context, roomIDs []string, rsAPI roomserverAPI.Fede
joinCount := 0
var joinRule, guestAccess string
for tuple, contentVal := range data {
- if tuple.EventType == gomatrixserverlib.MRoomMember && contentVal == "join" {
+ if tuple.EventType == spec.MRoomMember && contentVal == "join" {
joinCount++
continue
}
@@ -178,7 +179,7 @@ func fillInRooms(ctx context.Context, roomIDs []string, rsAPI roomserverAPI.Fede
guestAccess = contentVal
}
}
- if joinRule == gomatrixserverlib.Public && guestAccess == "can_join" {
+ if joinRule == spec.Public && guestAccess == "can_join" {
pub.GuestCanJoin = true
}
pub.JoinedMembersCount = joinCount
diff --git a/federationapi/routing/query_test.go b/federationapi/routing/query_test.go
index 807e7b2f..1004fe1e 100644
--- a/federationapi/routing/query_test.go
+++ b/federationapi/routing/query_test.go
@@ -36,6 +36,7 @@ import (
"github.com/matrix-org/dendrite/test/testrig"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
"golang.org/x/crypto/ed25519"
)
@@ -44,7 +45,7 @@ type fakeFedClient struct {
fedclient.FederationClient
}
-func (f *fakeFedClient) LookupRoomAlias(ctx context.Context, origin, s gomatrixserverlib.ServerName, roomAlias string) (res fclient.RespDirectory, err error) {
+func (f *fakeFedClient) LookupRoomAlias(ctx context.Context, origin, s spec.ServerName, roomAlias string) (res fclient.RespDirectory, err error) {
return
}
@@ -75,8 +76,8 @@ func TestHandleQueryDirectory(t *testing.T) {
_, sk, _ := ed25519.GenerateKey(nil)
keyID := signing.KeyID
pk := sk.Public().(ed25519.PublicKey)
- serverName := gomatrixserverlib.ServerName(hex.EncodeToString(pk))
- req := gomatrixserverlib.NewFederationRequest("GET", serverName, testOrigin, "/query/directory?room_alias="+url.QueryEscape("#room:server"))
+ serverName := spec.ServerName(hex.EncodeToString(pk))
+ req := fclient.NewFederationRequest("GET", serverName, testOrigin, "/query/directory?room_alias="+url.QueryEscape("#room:server"))
type queryContent struct{}
content := queryContent{}
err := req.SetContent(content)
diff --git a/federationapi/routing/routing.go b/federationapi/routing/routing.go
index a1f943e7..41af5e7d 100644
--- a/federationapi/routing/routing.go
+++ b/federationapi/routing/routing.go
@@ -34,6 +34,8 @@ import (
"github.com/matrix-org/dendrite/setup/config"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/prometheus/client_golang/prometheus"
"github.com/sirupsen/logrus"
@@ -85,7 +87,7 @@ func Setup(
}
localKeys := httputil.MakeExternalAPI("localkeys", func(req *http.Request) util.JSONResponse {
- return LocalKeys(cfg, gomatrixserverlib.ServerName(req.Host))
+ return LocalKeys(cfg, spec.ServerName(req.Host))
})
notaryKeys := httputil.MakeExternalAPI("notarykeys", func(req *http.Request) util.JSONResponse {
@@ -94,11 +96,11 @@ func Setup(
return util.ErrorResponse(err)
}
var pkReq *gomatrixserverlib.PublicKeyNotaryLookupRequest
- serverName := gomatrixserverlib.ServerName(vars["serverName"])
+ serverName := spec.ServerName(vars["serverName"])
keyID := gomatrixserverlib.KeyID(vars["keyID"])
if serverName != "" && keyID != "" {
pkReq = &gomatrixserverlib.PublicKeyNotaryLookupRequest{
- ServerKeys: map[gomatrixserverlib.ServerName]map[gomatrixserverlib.KeyID]gomatrixserverlib.PublicKeyNotaryQueryCriteria{
+ ServerKeys: map[spec.ServerName]map[gomatrixserverlib.KeyID]gomatrixserverlib.PublicKeyNotaryQueryCriteria{
serverName: {
keyID: gomatrixserverlib.PublicKeyNotaryQueryCriteria{},
},
@@ -136,7 +138,7 @@ func Setup(
mu := internal.NewMutexByRoom()
v1fedmux.Handle("/send/{txnID}", MakeFedAPI(
"federation_send", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
return Send(
httpReq, request, gomatrixserverlib.TransactionID(vars["txnID"]),
cfg, rsAPI, userAPI, keys, federation, mu, servers, producer,
@@ -146,7 +148,7 @@ func Setup(
v1fedmux.Handle("/invite/{roomID}/{eventID}", MakeFedAPI(
"federation_invite", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -162,7 +164,7 @@ func Setup(
v2fedmux.Handle("/invite/{roomID}/{eventID}", MakeFedAPI(
"federation_invite", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -184,7 +186,7 @@ func Setup(
v1fedmux.Handle("/exchange_third_party_invite/{roomID}", MakeFedAPI(
"exchange_third_party_invite", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
return ExchangeThirdPartyInvite(
httpReq, request, vars["roomID"], rsAPI, cfg, federation,
)
@@ -193,7 +195,7 @@ func Setup(
v1fedmux.Handle("/event/{eventID}", MakeFedAPI(
"federation_get_event", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
return GetEvent(
httpReq.Context(), request, rsAPI, vars["eventID"], cfg.Matrix.ServerName,
)
@@ -202,7 +204,7 @@ func Setup(
v1fedmux.Handle("/state/{roomID}", MakeFedAPI(
"federation_get_state", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -217,7 +219,7 @@ func Setup(
v1fedmux.Handle("/state_ids/{roomID}", MakeFedAPI(
"federation_get_state_ids", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -232,7 +234,7 @@ func Setup(
v1fedmux.Handle("/event_auth/{roomID}/{eventID}", MakeFedAPI(
"federation_get_event_auth", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -247,7 +249,7 @@ func Setup(
v1fedmux.Handle("/query/directory", MakeFedAPI(
"federation_query_room_alias", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
return RoomAliasToID(
httpReq, federation, cfg, rsAPI, fsAPI,
)
@@ -256,7 +258,7 @@ func Setup(
v1fedmux.Handle("/query/profile", MakeFedAPI(
"federation_query_profile", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
return GetProfile(
httpReq, userAPI, cfg,
)
@@ -265,7 +267,7 @@ func Setup(
v1fedmux.Handle("/user/devices/{userID}", MakeFedAPI(
"federation_user_devices", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
return GetUserDevices(
httpReq, userAPI, vars["userID"],
)
@@ -275,7 +277,7 @@ func Setup(
if mscCfg.Enabled("msc2444") {
v1fedmux.Handle("/peek/{roomID}/{peekID}", MakeFedAPI(
"federation_peek", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -306,7 +308,7 @@ func Setup(
v1fedmux.Handle("/make_join/{roomID}/{userID}", MakeFedAPI(
"federation_make_join", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -337,7 +339,7 @@ func Setup(
v1fedmux.Handle("/send_join/{roomID}/{eventID}", MakeFedAPI(
"federation_send_join", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -369,7 +371,7 @@ func Setup(
v2fedmux.Handle("/send_join/{roomID}/{eventID}", MakeFedAPI(
"federation_send_join", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -386,7 +388,7 @@ func Setup(
v1fedmux.Handle("/make_leave/{roomID}/{eventID}", MakeFedAPI(
"federation_make_leave", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -403,7 +405,7 @@ func Setup(
v1fedmux.Handle("/send_leave/{roomID}/{eventID}", MakeFedAPI(
"federation_send_leave", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -435,7 +437,7 @@ func Setup(
v2fedmux.Handle("/send_leave/{roomID}/{eventID}", MakeFedAPI(
"federation_send_leave", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -459,7 +461,7 @@ func Setup(
v1fedmux.Handle("/get_missing_events/{roomID}", MakeFedAPI(
"federation_get_missing_events", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -472,7 +474,7 @@ func Setup(
v1fedmux.Handle("/backfill/{roomID}", MakeFedAPI(
"federation_backfill", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
if roomserverAPI.IsServerBannedFromRoom(httpReq.Context(), rsAPI, vars["roomID"], request.Origin()) {
return util.JSONResponse{
Code: http.StatusForbidden,
@@ -491,14 +493,14 @@ func Setup(
v1fedmux.Handle("/user/keys/claim", MakeFedAPI(
"federation_keys_claim", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
return ClaimOneTimeKeys(httpReq, request, userAPI, cfg.Matrix.ServerName)
},
)).Methods(http.MethodPost)
v1fedmux.Handle("/user/keys/query", MakeFedAPI(
"federation_keys_query", cfg.Matrix.ServerName, cfg.Matrix.IsLocalServerName, keys, wakeup,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
return QueryDeviceKeys(httpReq, request, userAPI, cfg.Matrix.ServerName)
},
)).Methods(http.MethodPost)
@@ -536,14 +538,14 @@ func ErrorIfLocalServerNotInRoom(
// MakeFedAPI makes an http.Handler that checks matrix federation authentication.
func MakeFedAPI(
- metricsName string, serverName gomatrixserverlib.ServerName,
- isLocalServerName func(gomatrixserverlib.ServerName) bool,
+ metricsName string, serverName spec.ServerName,
+ isLocalServerName func(spec.ServerName) bool,
keyRing gomatrixserverlib.JSONVerifier,
wakeup *FederationWakeups,
- f func(*http.Request, *gomatrixserverlib.FederationRequest, map[string]string) util.JSONResponse,
+ f func(*http.Request, *fclient.FederationRequest, map[string]string) util.JSONResponse,
) http.Handler {
h := func(req *http.Request) util.JSONResponse {
- fedReq, errResp := gomatrixserverlib.VerifyHTTPRequest(
+ fedReq, errResp := fclient.VerifyHTTPRequest(
req, time.Now(), serverName, isLocalServerName, keyRing,
)
if fedReq == nil {
@@ -586,7 +588,7 @@ type FederationWakeups struct {
origins sync.Map
}
-func (f *FederationWakeups) Wakeup(ctx context.Context, origin gomatrixserverlib.ServerName) {
+func (f *FederationWakeups) Wakeup(ctx context.Context, origin spec.ServerName) {
key, keyok := f.origins.Load(origin)
if keyok {
lastTime, ok := key.(time.Time)
@@ -594,6 +596,6 @@ func (f *FederationWakeups) Wakeup(ctx context.Context, origin gomatrixserverlib
return
}
}
- f.FsAPI.MarkServersAlive([]gomatrixserverlib.ServerName{origin})
+ f.FsAPI.MarkServersAlive([]spec.ServerName{origin})
f.origins.Store(origin, time.Now())
}
diff --git a/federationapi/routing/send.go b/federationapi/routing/send.go
index 82651719..deefe5f1 100644
--- a/federationapi/routing/send.go
+++ b/federationapi/routing/send.go
@@ -22,6 +22,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
@@ -55,7 +56,7 @@ var inFlightTxnsPerOrigin sync.Map // transaction ID -> chan util.JSONResponse
// Send implements /_matrix/federation/v1/send/{txnID}
func Send(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
txnID gomatrixserverlib.TransactionID,
cfg *config.FederationAPI,
rsAPI api.FederationRoomserverAPI,
diff --git a/federationapi/routing/send_test.go b/federationapi/routing/send_test.go
index 28fa6d6d..55b156e5 100644
--- a/federationapi/routing/send_test.go
+++ b/federationapi/routing/send_test.go
@@ -32,12 +32,14 @@ import (
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/dendrite/test/testrig"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
"golang.org/x/crypto/ed25519"
)
const (
- testOrigin = gomatrixserverlib.ServerName("kaer.morhen")
+ testOrigin = spec.ServerName("kaer.morhen")
)
type sendContent struct {
@@ -70,8 +72,8 @@ func TestHandleSend(t *testing.T) {
_, sk, _ := ed25519.GenerateKey(nil)
keyID := signing.KeyID
pk := sk.Public().(ed25519.PublicKey)
- serverName := gomatrixserverlib.ServerName(hex.EncodeToString(pk))
- req := gomatrixserverlib.NewFederationRequest("PUT", serverName, testOrigin, "/send/1234")
+ serverName := spec.ServerName(hex.EncodeToString(pk))
+ req := fclient.NewFederationRequest("PUT", serverName, testOrigin, "/send/1234")
content := sendContent{}
err := req.SetContent(content)
if err != nil {
diff --git a/federationapi/routing/state.go b/federationapi/routing/state.go
index 1152c093..52a8c2b1 100644
--- a/federationapi/routing/state.go
+++ b/federationapi/routing/state.go
@@ -27,7 +27,7 @@ import (
// GetState returns state events & auth events for the roomID, eventID
func GetState(
ctx context.Context,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
rsAPI api.FederationRoomserverAPI,
roomID string,
) util.JSONResponse {
@@ -50,7 +50,7 @@ func GetState(
// GetStateIDs returns state event IDs & auth event IDs for the roomID, eventID
func GetStateIDs(
ctx context.Context,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
rsAPI api.FederationRoomserverAPI,
roomID string,
) util.JSONResponse {
@@ -75,7 +75,7 @@ func GetStateIDs(
}
func parseEventIDParam(
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
) (eventID string, resErr *util.JSONResponse) {
URL, err := url.Parse(request.RequestURI())
if err != nil {
@@ -97,7 +97,7 @@ func parseEventIDParam(
func getState(
ctx context.Context,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
rsAPI api.FederationRoomserverAPI,
roomID string,
eventID string,
diff --git a/federationapi/routing/threepid.go b/federationapi/routing/threepid.go
index 048183ad..ccdca482 100644
--- a/federationapi/routing/threepid.go
+++ b/federationapi/routing/threepid.go
@@ -27,6 +27,8 @@ import (
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/setup/config"
userapi "github.com/matrix-org/dendrite/userapi/api"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/util"
@@ -114,7 +116,7 @@ func CreateInvitesFrom3PIDInvites(
// ExchangeThirdPartyInvite implements PUT /_matrix/federation/v1/exchange_third_party_invite/{roomID}
func ExchangeThirdPartyInvite(
httpReq *http.Request,
- request *gomatrixserverlib.FederationRequest,
+ request *fclient.FederationRequest,
roomID string,
rsAPI api.FederationRoomserverAPI,
cfg *config.FederationAPI,
@@ -184,7 +186,7 @@ func ExchangeThirdPartyInvite(
// Ask the requesting server to sign the newly created event so we know it
// acknowledged it
- inviteReq, err := gomatrixserverlib.NewInviteV2Request(event.Headered(verRes.RoomVersion), nil)
+ inviteReq, err := fclient.NewInviteV2Request(event.Headered(verRes.RoomVersion), nil)
if err != nil {
util.GetLogger(httpReq.Context()).WithError(err).Error("failed to make invite v2 request")
return jsonerror.InternalServerError()
@@ -194,7 +196,7 @@ func ExchangeThirdPartyInvite(
util.GetLogger(httpReq.Context()).WithError(err).Error("federation.SendInvite failed")
return jsonerror.InternalServerError()
}
- inviteEvent, err := signedEvent.Event.UntrustedEvent(verRes.RoomVersion)
+ inviteEvent, err := gomatrixserverlib.UntrustedEvent(signedEvent.Event, verRes.RoomVersion)
if err != nil {
util.GetLogger(httpReq.Context()).WithError(err).Error("federation.SendInvite failed")
return jsonerror.InternalServerError()
@@ -264,7 +266,7 @@ func createInviteFrom3PIDInvite(
content := gomatrixserverlib.MemberContent{
AvatarURL: profile.AvatarURL,
DisplayName: profile.DisplayName,
- Membership: gomatrixserverlib.Invite,
+ Membership: spec.Invite,
ThirdPartyInvite: &gomatrixserverlib.MemberThirdPartyInvite{
Signed: inv.Signed,
},
@@ -360,7 +362,7 @@ func sendToRemoteServer(
federation federationAPI.FederationClient, cfg *config.FederationAPI,
builder gomatrixserverlib.EventBuilder,
) (err error) {
- remoteServers := make([]gomatrixserverlib.ServerName, 2)
+ remoteServers := make([]spec.ServerName, 2)
_, remoteServers[0], err = gomatrixserverlib.SplitID('@', inv.Sender)
if err != nil {
return
diff --git a/federationapi/statistics/statistics.go b/federationapi/statistics/statistics.go
index e29e3b14..e5fc4b94 100644
--- a/federationapi/statistics/statistics.go
+++ b/federationapi/statistics/statistics.go
@@ -7,11 +7,11 @@ import (
"sync"
"time"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/sirupsen/logrus"
"go.uber.org/atomic"
"github.com/matrix-org/dendrite/federationapi/storage"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// Statistics contains information about all of the remote federated
@@ -19,10 +19,10 @@ import (
// wrapper.
type Statistics struct {
DB storage.Database
- servers map[gomatrixserverlib.ServerName]*ServerStatistics
+ servers map[spec.ServerName]*ServerStatistics
mutex sync.RWMutex
- backoffTimers map[gomatrixserverlib.ServerName]*time.Timer
+ backoffTimers map[spec.ServerName]*time.Timer
backoffMutex sync.RWMutex
// How many times should we tolerate consecutive failures before we
@@ -45,14 +45,14 @@ func NewStatistics(
DB: db,
FailuresUntilBlacklist: failuresUntilBlacklist,
FailuresUntilAssumedOffline: failuresUntilAssumedOffline,
- backoffTimers: make(map[gomatrixserverlib.ServerName]*time.Timer),
- servers: make(map[gomatrixserverlib.ServerName]*ServerStatistics),
+ backoffTimers: make(map[spec.ServerName]*time.Timer),
+ servers: make(map[spec.ServerName]*ServerStatistics),
}
}
// ForServer returns server statistics for the given server name. If it
// does not exist, it will create empty statistics and return those.
-func (s *Statistics) ForServer(serverName gomatrixserverlib.ServerName) *ServerStatistics {
+func (s *Statistics) ForServer(serverName spec.ServerName) *ServerStatistics {
// Look up if we have statistics for this server already.
s.mutex.RLock()
server, found := s.servers[serverName]
@@ -63,7 +63,7 @@ func (s *Statistics) ForServer(serverName gomatrixserverlib.ServerName) *ServerS
server = &ServerStatistics{
statistics: s,
serverName: serverName,
- knownRelayServers: []gomatrixserverlib.ServerName{},
+ knownRelayServers: []spec.ServerName{},
}
s.servers[serverName] = server
s.mutex.Unlock()
@@ -104,17 +104,17 @@ const (
// many times we failed etc. It also manages the backoff time and black-
// listing a remote host if it remains uncooperative.
type ServerStatistics struct {
- statistics *Statistics //
- serverName gomatrixserverlib.ServerName //
- blacklisted atomic.Bool // is the node blacklisted
- assumedOffline atomic.Bool // is the node assumed to be offline
- backoffStarted atomic.Bool // is the backoff started
- backoffUntil atomic.Value // time.Time until this backoff interval ends
- backoffCount atomic.Uint32 // number of times BackoffDuration has been called
- successCounter atomic.Uint32 // how many times have we succeeded?
- backoffNotifier func() // notifies destination queue when backoff completes
+ statistics *Statistics //
+ serverName spec.ServerName //
+ blacklisted atomic.Bool // is the node blacklisted
+ assumedOffline atomic.Bool // is the node assumed to be offline
+ backoffStarted atomic.Bool // is the backoff started
+ backoffUntil atomic.Value // time.Time until this backoff interval ends
+ backoffCount atomic.Uint32 // number of times BackoffDuration has been called
+ successCounter atomic.Uint32 // how many times have we succeeded?
+ backoffNotifier func() // notifies destination queue when backoff completes
notifierMutex sync.Mutex
- knownRelayServers []gomatrixserverlib.ServerName
+ knownRelayServers []spec.ServerName
relayMutex sync.Mutex
}
@@ -307,15 +307,15 @@ func (s *ServerStatistics) SuccessCount() uint32 {
// KnownRelayServers returns the list of relay servers associated with this
// server.
-func (s *ServerStatistics) KnownRelayServers() []gomatrixserverlib.ServerName {
+func (s *ServerStatistics) KnownRelayServers() []spec.ServerName {
s.relayMutex.Lock()
defer s.relayMutex.Unlock()
return s.knownRelayServers
}
-func (s *ServerStatistics) AddRelayServers(relayServers []gomatrixserverlib.ServerName) {
- seenSet := make(map[gomatrixserverlib.ServerName]bool)
- uniqueList := []gomatrixserverlib.ServerName{}
+func (s *ServerStatistics) AddRelayServers(relayServers []spec.ServerName) {
+ seenSet := make(map[spec.ServerName]bool)
+ uniqueList := []spec.ServerName{}
for _, srv := range relayServers {
if seenSet[srv] {
continue
diff --git a/federationapi/statistics/statistics_test.go b/federationapi/statistics/statistics_test.go
index 183b9aa0..a930bc3b 100644
--- a/federationapi/statistics/statistics_test.go
+++ b/federationapi/statistics/statistics_test.go
@@ -6,7 +6,7 @@ import (
"time"
"github.com/matrix-org/dendrite/test"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
@@ -108,10 +108,10 @@ func TestBackoff(t *testing.T) {
func TestRelayServersListing(t *testing.T) {
stats := NewStatistics(test.NewInMemoryFederationDatabase(), FailuresUntilBlacklist, FailuresUntilAssumedOffline)
server := ServerStatistics{statistics: &stats}
- server.AddRelayServers([]gomatrixserverlib.ServerName{"relay1", "relay1", "relay2"})
+ server.AddRelayServers([]spec.ServerName{"relay1", "relay1", "relay2"})
relayServers := server.KnownRelayServers()
- assert.Equal(t, []gomatrixserverlib.ServerName{"relay1", "relay2"}, relayServers)
- server.AddRelayServers([]gomatrixserverlib.ServerName{"relay1", "relay1", "relay2"})
+ assert.Equal(t, []spec.ServerName{"relay1", "relay2"}, relayServers)
+ server.AddRelayServers([]spec.ServerName{"relay1", "relay1", "relay2"})
relayServers = server.KnownRelayServers()
- assert.Equal(t, []gomatrixserverlib.ServerName{"relay1", "relay2"}, relayServers)
+ assert.Equal(t, []spec.ServerName{"relay1", "relay2"}, relayServers)
}
diff --git a/federationapi/storage/cache/keydb.go b/federationapi/storage/cache/keydb.go
index 2063dfc5..b53695ca 100644
--- a/federationapi/storage/cache/keydb.go
+++ b/federationapi/storage/cache/keydb.go
@@ -6,6 +6,7 @@ import (
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// A Database implements gomatrixserverlib.KeyDatabase and is used to store
@@ -36,7 +37,7 @@ func (d KeyDatabase) FetcherName() string {
// FetchKeys implements gomatrixserverlib.KeyDatabase
func (d *KeyDatabase) FetchKeys(
ctx context.Context,
- requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
+ requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp,
) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) {
results := make(map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult)
for req, ts := range requests {
diff --git a/federationapi/storage/interface.go b/federationapi/storage/interface.go
index 4f5300af..7652efec 100644
--- a/federationapi/storage/interface.go
+++ b/federationapi/storage/interface.go
@@ -19,6 +19,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/federationapi/storage/shared/receipt"
"github.com/matrix-org/dendrite/federationapi/types"
@@ -31,57 +32,57 @@ type Database interface {
UpdateRoom(ctx context.Context, roomID string, addHosts []types.JoinedHost, removeHosts []string, purgeRoomFirst bool) (joinedHosts []types.JoinedHost, err error)
GetJoinedHosts(ctx context.Context, roomID string) ([]types.JoinedHost, error)
- GetAllJoinedHosts(ctx context.Context) ([]gomatrixserverlib.ServerName, error)
+ GetAllJoinedHosts(ctx context.Context) ([]spec.ServerName, error)
// GetJoinedHostsForRooms returns the complete set of servers in the rooms given.
- GetJoinedHostsForRooms(ctx context.Context, roomIDs []string, excludeSelf, excludeBlacklisted bool) ([]gomatrixserverlib.ServerName, error)
+ GetJoinedHostsForRooms(ctx context.Context, roomIDs []string, excludeSelf, excludeBlacklisted bool) ([]spec.ServerName, error)
StoreJSON(ctx context.Context, js string) (*receipt.Receipt, error)
- GetPendingPDUs(ctx context.Context, serverName gomatrixserverlib.ServerName, limit int) (pdus map[*receipt.Receipt]*gomatrixserverlib.HeaderedEvent, err error)
- GetPendingEDUs(ctx context.Context, serverName gomatrixserverlib.ServerName, limit int) (edus map[*receipt.Receipt]*gomatrixserverlib.EDU, err error)
+ GetPendingPDUs(ctx context.Context, serverName spec.ServerName, limit int) (pdus map[*receipt.Receipt]*gomatrixserverlib.HeaderedEvent, err error)
+ GetPendingEDUs(ctx context.Context, serverName spec.ServerName, limit int) (edus map[*receipt.Receipt]*gomatrixserverlib.EDU, err error)
- AssociatePDUWithDestinations(ctx context.Context, destinations map[gomatrixserverlib.ServerName]struct{}, dbReceipt *receipt.Receipt) error
- AssociateEDUWithDestinations(ctx context.Context, destinations map[gomatrixserverlib.ServerName]struct{}, dbReceipt *receipt.Receipt, eduType string, expireEDUTypes map[string]time.Duration) error
+ AssociatePDUWithDestinations(ctx context.Context, destinations map[spec.ServerName]struct{}, dbReceipt *receipt.Receipt) error
+ AssociateEDUWithDestinations(ctx context.Context, destinations map[spec.ServerName]struct{}, dbReceipt *receipt.Receipt, eduType string, expireEDUTypes map[string]time.Duration) error
- CleanPDUs(ctx context.Context, serverName gomatrixserverlib.ServerName, receipts []*receipt.Receipt) error
- CleanEDUs(ctx context.Context, serverName gomatrixserverlib.ServerName, receipts []*receipt.Receipt) error
+ CleanPDUs(ctx context.Context, serverName spec.ServerName, receipts []*receipt.Receipt) error
+ CleanEDUs(ctx context.Context, serverName spec.ServerName, receipts []*receipt.Receipt) error
- GetPendingPDUServerNames(ctx context.Context) ([]gomatrixserverlib.ServerName, error)
- GetPendingEDUServerNames(ctx context.Context) ([]gomatrixserverlib.ServerName, error)
+ GetPendingPDUServerNames(ctx context.Context) ([]spec.ServerName, error)
+ GetPendingEDUServerNames(ctx context.Context) ([]spec.ServerName, error)
// these don't have contexts passed in as we want things to happen regardless of the request context
- AddServerToBlacklist(serverName gomatrixserverlib.ServerName) error
- RemoveServerFromBlacklist(serverName gomatrixserverlib.ServerName) error
+ AddServerToBlacklist(serverName spec.ServerName) error
+ RemoveServerFromBlacklist(serverName spec.ServerName) error
RemoveAllServersFromBlacklist() error
- IsServerBlacklisted(serverName gomatrixserverlib.ServerName) (bool, error)
+ IsServerBlacklisted(serverName spec.ServerName) (bool, error)
// Adds the server to the list of assumed offline servers.
// If the server already exists in the table, nothing happens and returns success.
- SetServerAssumedOffline(ctx context.Context, serverName gomatrixserverlib.ServerName) error
+ SetServerAssumedOffline(ctx context.Context, serverName spec.ServerName) error
// Removes the server from the list of assumed offline servers.
// If the server doesn't exist in the table, nothing happens and returns success.
- RemoveServerAssumedOffline(ctx context.Context, serverName gomatrixserverlib.ServerName) error
+ RemoveServerAssumedOffline(ctx context.Context, serverName spec.ServerName) error
// Purges all entries from the assumed offline table.
RemoveAllServersAssumedOffline(ctx context.Context) error
// Gets whether the provided server is present in the table.
// If it is present, returns true. If not, returns false.
- IsServerAssumedOffline(ctx context.Context, serverName gomatrixserverlib.ServerName) (bool, error)
+ IsServerAssumedOffline(ctx context.Context, serverName spec.ServerName) (bool, error)
- AddOutboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) error
- RenewOutboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) error
- GetOutboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string) (*types.OutboundPeek, error)
+ AddOutboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) error
+ RenewOutboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) error
+ GetOutboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string) (*types.OutboundPeek, error)
GetOutboundPeeks(ctx context.Context, roomID string) ([]types.OutboundPeek, error)
- AddInboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) error
- RenewInboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) error
- GetInboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string) (*types.InboundPeek, error)
+ AddInboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) error
+ RenewInboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) error
+ GetInboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string) (*types.InboundPeek, error)
GetInboundPeeks(ctx context.Context, roomID string) ([]types.InboundPeek, error)
// Update the notary with the given server keys from the given server name.
- UpdateNotaryKeys(ctx context.Context, serverName gomatrixserverlib.ServerName, serverKeys gomatrixserverlib.ServerKeys) error
+ UpdateNotaryKeys(ctx context.Context, serverName spec.ServerName, serverKeys gomatrixserverlib.ServerKeys) error
// Query the notary for the server keys for the given server. If `optKeyIDs` is not empty, multiple server keys may be returned (between 1 - len(optKeyIDs))
// such that the combination of all server keys will include all the `optKeyIDs`.
- GetNotaryKeys(ctx context.Context, serverName gomatrixserverlib.ServerName, optKeyIDs []gomatrixserverlib.KeyID) ([]gomatrixserverlib.ServerKeys, error)
+ GetNotaryKeys(ctx context.Context, serverName spec.ServerName, optKeyIDs []gomatrixserverlib.KeyID) ([]gomatrixserverlib.ServerKeys, error)
// DeleteExpiredEDUs cleans up expired EDUs
DeleteExpiredEDUs(ctx context.Context) error
@@ -91,17 +92,17 @@ type Database interface {
type P2PDatabase interface {
// Stores the given list of servers as relay servers for the provided destination server.
// Providing duplicates will only lead to a single entry and won't lead to an error.
- P2PAddRelayServersForServer(ctx context.Context, serverName gomatrixserverlib.ServerName, relayServers []gomatrixserverlib.ServerName) error
+ P2PAddRelayServersForServer(ctx context.Context, serverName spec.ServerName, relayServers []spec.ServerName) error
// Get the list of relay servers associated with the provided destination server.
// If no entry exists in the table, an empty list is returned and does not result in an error.
- P2PGetRelayServersForServer(ctx context.Context, serverName gomatrixserverlib.ServerName) ([]gomatrixserverlib.ServerName, error)
+ P2PGetRelayServersForServer(ctx context.Context, serverName spec.ServerName) ([]spec.ServerName, error)
// Deletes any entries for the provided destination server that match the provided relayServers list.
// If any of the provided servers don't match an entry, nothing happens and no error is returned.
- P2PRemoveRelayServersForServer(ctx context.Context, serverName gomatrixserverlib.ServerName, relayServers []gomatrixserverlib.ServerName) error
+ P2PRemoveRelayServersForServer(ctx context.Context, serverName spec.ServerName, relayServers []spec.ServerName) error
// Deletes all entries for the provided destination server.
// If the destination server doesn't exist in the table, nothing happens and no error is returned.
- P2PRemoveAllRelayServersForServer(ctx context.Context, serverName gomatrixserverlib.ServerName) error
+ P2PRemoveAllRelayServersForServer(ctx context.Context, serverName spec.ServerName) error
}
diff --git a/federationapi/storage/postgres/assumed_offline_table.go b/federationapi/storage/postgres/assumed_offline_table.go
index 5695d2e5..d8d389d8 100644
--- a/federationapi/storage/postgres/assumed_offline_table.go
+++ b/federationapi/storage/postgres/assumed_offline_table.go
@@ -19,7 +19,7 @@ import (
"database/sql"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const assumedOfflineSchema = `
@@ -68,7 +68,7 @@ func NewPostgresAssumedOfflineTable(db *sql.DB) (s *assumedOfflineStatements, er
}
func (s *assumedOfflineStatements) InsertAssumedOffline(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.insertAssumedOfflineStmt)
_, err := stmt.ExecContext(ctx, serverName)
@@ -76,7 +76,7 @@ func (s *assumedOfflineStatements) InsertAssumedOffline(
}
func (s *assumedOfflineStatements) SelectAssumedOffline(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) (bool, error) {
stmt := sqlutil.TxStmt(txn, s.selectAssumedOfflineStmt)
res, err := stmt.QueryContext(ctx, serverName)
@@ -91,7 +91,7 @@ func (s *assumedOfflineStatements) SelectAssumedOffline(
}
func (s *assumedOfflineStatements) DeleteAssumedOffline(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteAssumedOfflineStmt)
_, err := stmt.ExecContext(ctx, serverName)
diff --git a/federationapi/storage/postgres/blacklist_table.go b/federationapi/storage/postgres/blacklist_table.go
index 1d931daa..48b6d72e 100644
--- a/federationapi/storage/postgres/blacklist_table.go
+++ b/federationapi/storage/postgres/blacklist_table.go
@@ -19,7 +19,7 @@ import (
"database/sql"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const blacklistSchema = `
@@ -69,7 +69,7 @@ func NewPostgresBlacklistTable(db *sql.DB) (s *blacklistStatements, err error) {
}
func (s *blacklistStatements) InsertBlacklist(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.insertBlacklistStmt)
_, err := stmt.ExecContext(ctx, serverName)
@@ -77,7 +77,7 @@ func (s *blacklistStatements) InsertBlacklist(
}
func (s *blacklistStatements) SelectBlacklist(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) (bool, error) {
stmt := sqlutil.TxStmt(txn, s.selectBlacklistStmt)
res, err := stmt.QueryContext(ctx, serverName)
@@ -92,7 +92,7 @@ func (s *blacklistStatements) SelectBlacklist(
}
func (s *blacklistStatements) DeleteBlacklist(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteBlacklistStmt)
_, err := stmt.ExecContext(ctx, serverName)
diff --git a/federationapi/storage/postgres/deltas/2022042812473400_addexpiresat.go b/federationapi/storage/postgres/deltas/2022042812473400_addexpiresat.go
index 53a7a025..cf2d94b2 100644
--- a/federationapi/storage/postgres/deltas/2022042812473400_addexpiresat.go
+++ b/federationapi/storage/postgres/deltas/2022042812473400_addexpiresat.go
@@ -20,7 +20,7 @@ import (
"fmt"
"time"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
func UpAddexpiresat(ctx context.Context, tx *sql.Tx) error {
@@ -28,7 +28,7 @@ func UpAddexpiresat(ctx context.Context, tx *sql.Tx) error {
if err != nil {
return fmt.Errorf("failed to execute upgrade: %w", err)
}
- _, err = tx.ExecContext(ctx, "UPDATE federationsender_queue_edus SET expires_at = $1 WHERE edu_type != 'm.direct_to_device'", gomatrixserverlib.AsTimestamp(time.Now().Add(time.Hour*24)))
+ _, err = tx.ExecContext(ctx, "UPDATE federationsender_queue_edus SET expires_at = $1 WHERE edu_type != 'm.direct_to_device'", spec.AsTimestamp(time.Now().Add(time.Hour*24)))
if err != nil {
return fmt.Errorf("failed to update queue_edus: %w", err)
}
diff --git a/federationapi/storage/postgres/inbound_peeks_table.go b/federationapi/storage/postgres/inbound_peeks_table.go
index ad2afcb1..a6fffc0e 100644
--- a/federationapi/storage/postgres/inbound_peeks_table.go
+++ b/federationapi/storage/postgres/inbound_peeks_table.go
@@ -22,7 +22,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/types"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const inboundPeeksSchema = `
@@ -86,7 +86,7 @@ func NewPostgresInboundPeeksTable(db *sql.DB) (s *inboundPeeksStatements, err er
}
func (s *inboundPeeksStatements) InsertInboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64,
) (err error) {
nowMilli := time.Now().UnixNano() / int64(time.Millisecond)
stmt := sqlutil.TxStmt(txn, s.insertInboundPeekStmt)
@@ -95,7 +95,7 @@ func (s *inboundPeeksStatements) InsertInboundPeek(
}
func (s *inboundPeeksStatements) RenewInboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64,
) (err error) {
nowMilli := time.Now().UnixNano() / int64(time.Millisecond)
_, err = sqlutil.TxStmt(txn, s.renewInboundPeekStmt).ExecContext(ctx, nowMilli, renewalInterval, roomID, serverName, peekID)
@@ -103,7 +103,7 @@ func (s *inboundPeeksStatements) RenewInboundPeek(
}
func (s *inboundPeeksStatements) SelectInboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string,
) (*types.InboundPeek, error) {
row := sqlutil.TxStmt(txn, s.selectInboundPeeksStmt).QueryRowContext(ctx, roomID)
inboundPeek := types.InboundPeek{}
@@ -152,7 +152,7 @@ func (s *inboundPeeksStatements) SelectInboundPeeks(
}
func (s *inboundPeeksStatements) DeleteInboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string,
) (err error) {
_, err = sqlutil.TxStmt(txn, s.deleteInboundPeekStmt).ExecContext(ctx, roomID, serverName, peekID)
return
diff --git a/federationapi/storage/postgres/joined_hosts_table.go b/federationapi/storage/postgres/joined_hosts_table.go
index 8806db55..2b0aebad 100644
--- a/federationapi/storage/postgres/joined_hosts_table.go
+++ b/federationapi/storage/postgres/joined_hosts_table.go
@@ -23,7 +23,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/types"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const joinedHostsSchema = `
@@ -105,7 +105,7 @@ func (s *joinedHostsStatements) InsertJoinedHosts(
ctx context.Context,
txn *sql.Tx,
roomID, eventID string,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.insertJoinedHostsStmt)
_, err := stmt.ExecContext(ctx, roomID, eventID, serverName)
@@ -143,20 +143,20 @@ func (s *joinedHostsStatements) SelectJoinedHosts(
func (s *joinedHostsStatements) SelectAllJoinedHosts(
ctx context.Context,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
rows, err := s.selectAllJoinedHostsStmt.QueryContext(ctx)
if err != nil {
return nil, err
}
defer internal.CloseAndLogIfError(ctx, rows, "selectAllJoinedHosts: rows.close() failed")
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for rows.Next() {
var serverName string
if err = rows.Scan(&serverName); err != nil {
return nil, err
}
- result = append(result, gomatrixserverlib.ServerName(serverName))
+ result = append(result, spec.ServerName(serverName))
}
return result, rows.Err()
@@ -164,7 +164,7 @@ func (s *joinedHostsStatements) SelectAllJoinedHosts(
func (s *joinedHostsStatements) SelectJoinedHostsForRooms(
ctx context.Context, roomIDs []string, excludingBlacklisted bool,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
stmt := s.selectJoinedHostsForRoomsStmt
if excludingBlacklisted {
stmt = s.selectJoinedHostsForRoomsExcludingBlacklistedStmt
@@ -175,13 +175,13 @@ func (s *joinedHostsStatements) SelectJoinedHostsForRooms(
}
defer internal.CloseAndLogIfError(ctx, rows, "selectJoinedHostsForRoomsStmt: rows.close() failed")
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for rows.Next() {
var serverName string
if err = rows.Scan(&serverName); err != nil {
return nil, err
}
- result = append(result, gomatrixserverlib.ServerName(serverName))
+ result = append(result, spec.ServerName(serverName))
}
return result, rows.Err()
@@ -204,7 +204,7 @@ func joinedHostsFromStmt(
}
result = append(result, types.JoinedHost{
MemberEventID: eventID,
- ServerName: gomatrixserverlib.ServerName(serverName),
+ ServerName: spec.ServerName(serverName),
})
}
diff --git a/federationapi/storage/postgres/notary_server_keys_json_table.go b/federationapi/storage/postgres/notary_server_keys_json_table.go
index 9fc93a61..af98a0d4 100644
--- a/federationapi/storage/postgres/notary_server_keys_json_table.go
+++ b/federationapi/storage/postgres/notary_server_keys_json_table.go
@@ -21,6 +21,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/storage/tables"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const notaryServerKeysJSONSchema = `
@@ -57,7 +58,7 @@ func NewPostgresNotaryServerKeysTable(db *sql.DB) (s *notaryServerKeysStatements
}
func (s *notaryServerKeysStatements) InsertJSONResponse(
- ctx context.Context, txn *sql.Tx, keyQueryResponseJSON gomatrixserverlib.ServerKeys, serverName gomatrixserverlib.ServerName, validUntil gomatrixserverlib.Timestamp,
+ ctx context.Context, txn *sql.Tx, keyQueryResponseJSON gomatrixserverlib.ServerKeys, serverName spec.ServerName, validUntil spec.Timestamp,
) (tables.NotaryID, error) {
var notaryID tables.NotaryID
return notaryID, txn.Stmt(s.insertServerKeysJSONStmt).QueryRowContext(ctx, string(keyQueryResponseJSON.Raw), serverName, validUntil).Scan(&notaryID)
diff --git a/federationapi/storage/postgres/notary_server_keys_metadata_table.go b/federationapi/storage/postgres/notary_server_keys_metadata_table.go
index 6d38ccab..7a1ec412 100644
--- a/federationapi/storage/postgres/notary_server_keys_metadata_table.go
+++ b/federationapi/storage/postgres/notary_server_keys_metadata_table.go
@@ -24,6 +24,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const notaryServerKeysMetadataSchema = `
@@ -102,12 +103,12 @@ func NewPostgresNotaryServerKeysMetadataTable(db *sql.DB) (s *notaryServerKeysMe
}
func (s *notaryServerKeysMetadataStatements) UpsertKey(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, keyID gomatrixserverlib.KeyID, newNotaryID tables.NotaryID, newValidUntil gomatrixserverlib.Timestamp,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, keyID gomatrixserverlib.KeyID, newNotaryID tables.NotaryID, newValidUntil spec.Timestamp,
) (tables.NotaryID, error) {
notaryID := newNotaryID
// see if the existing notary ID a) exists, b) has a longer valid_until
var existingNotaryID tables.NotaryID
- var existingValidUntil gomatrixserverlib.Timestamp
+ var existingValidUntil spec.Timestamp
if err := txn.Stmt(s.selectNotaryKeyMetadataStmt).QueryRowContext(ctx, serverName, keyID).Scan(&existingNotaryID, &existingValidUntil); err != nil {
if err != sql.ErrNoRows {
return 0, err
@@ -122,7 +123,7 @@ func (s *notaryServerKeysMetadataStatements) UpsertKey(
return notaryID, err
}
-func (s *notaryServerKeysMetadataStatements) SelectKeys(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, keyIDs []gomatrixserverlib.KeyID) ([]gomatrixserverlib.ServerKeys, error) {
+func (s *notaryServerKeysMetadataStatements) SelectKeys(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, keyIDs []gomatrixserverlib.KeyID) ([]gomatrixserverlib.ServerKeys, error) {
var rows *sql.Rows
var err error
if len(keyIDs) == 0 {
diff --git a/federationapi/storage/postgres/outbound_peeks_table.go b/federationapi/storage/postgres/outbound_peeks_table.go
index 5df68431..bd2b10e6 100644
--- a/federationapi/storage/postgres/outbound_peeks_table.go
+++ b/federationapi/storage/postgres/outbound_peeks_table.go
@@ -22,7 +22,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/types"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const outboundPeeksSchema = `
@@ -85,7 +85,7 @@ func NewPostgresOutboundPeeksTable(db *sql.DB) (s *outboundPeeksStatements, err
}
func (s *outboundPeeksStatements) InsertOutboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64,
) (err error) {
nowMilli := time.Now().UnixNano() / int64(time.Millisecond)
stmt := sqlutil.TxStmt(txn, s.insertOutboundPeekStmt)
@@ -94,7 +94,7 @@ func (s *outboundPeeksStatements) InsertOutboundPeek(
}
func (s *outboundPeeksStatements) RenewOutboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64,
) (err error) {
nowMilli := time.Now().UnixNano() / int64(time.Millisecond)
_, err = sqlutil.TxStmt(txn, s.renewOutboundPeekStmt).ExecContext(ctx, nowMilli, renewalInterval, roomID, serverName, peekID)
@@ -102,7 +102,7 @@ func (s *outboundPeeksStatements) RenewOutboundPeek(
}
func (s *outboundPeeksStatements) SelectOutboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string,
) (*types.OutboundPeek, error) {
row := sqlutil.TxStmt(txn, s.selectOutboundPeeksStmt).QueryRowContext(ctx, roomID)
outboundPeek := types.OutboundPeek{}
@@ -151,7 +151,7 @@ func (s *outboundPeeksStatements) SelectOutboundPeeks(
}
func (s *outboundPeeksStatements) DeleteOutboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string,
) (err error) {
_, err = sqlutil.TxStmt(txn, s.deleteOutboundPeekStmt).ExecContext(ctx, roomID, serverName, peekID)
return
diff --git a/federationapi/storage/postgres/queue_edus_table.go b/federationapi/storage/postgres/queue_edus_table.go
index 8870dc88..7c57ed0c 100644
--- a/federationapi/storage/postgres/queue_edus_table.go
+++ b/federationapi/storage/postgres/queue_edus_table.go
@@ -19,11 +19,11 @@ import (
"database/sql"
"github.com/lib/pq"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/dendrite/federationapi/storage/postgres/deltas"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const queueEDUsSchema = `
@@ -121,9 +121,9 @@ func (s *queueEDUsStatements) InsertQueueEDU(
ctx context.Context,
txn *sql.Tx,
eduType string,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
nid int64,
- expiresAt gomatrixserverlib.Timestamp,
+ expiresAt spec.Timestamp,
) error {
stmt := sqlutil.TxStmt(txn, s.insertQueueEDUStmt)
_, err := stmt.ExecContext(
@@ -138,7 +138,7 @@ func (s *queueEDUsStatements) InsertQueueEDU(
func (s *queueEDUsStatements) DeleteQueueEDUs(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
jsonNIDs []int64,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteQueueEDUStmt)
@@ -148,7 +148,7 @@ func (s *queueEDUsStatements) DeleteQueueEDUs(
func (s *queueEDUsStatements) SelectQueueEDUs(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
limit int,
) ([]int64, error) {
stmt := sqlutil.TxStmt(txn, s.selectQueueEDUStmt)
@@ -182,16 +182,16 @@ func (s *queueEDUsStatements) SelectQueueEDUReferenceJSONCount(
func (s *queueEDUsStatements) SelectQueueEDUServerNames(
ctx context.Context, txn *sql.Tx,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
stmt := sqlutil.TxStmt(txn, s.selectQueueEDUServerNamesStmt)
rows, err := stmt.QueryContext(ctx)
if err != nil {
return nil, err
}
defer internal.CloseAndLogIfError(ctx, rows, "queueFromStmt: rows.close() failed")
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for rows.Next() {
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
if err = rows.Scan(&serverName); err != nil {
return nil, err
}
@@ -203,7 +203,7 @@ func (s *queueEDUsStatements) SelectQueueEDUServerNames(
func (s *queueEDUsStatements) SelectExpiredEDUs(
ctx context.Context, txn *sql.Tx,
- expiredBefore gomatrixserverlib.Timestamp,
+ expiredBefore spec.Timestamp,
) ([]int64, error) {
stmt := sqlutil.TxStmt(txn, s.selectExpiredEDUsStmt)
rows, err := stmt.QueryContext(ctx, expiredBefore)
@@ -224,7 +224,7 @@ func (s *queueEDUsStatements) SelectExpiredEDUs(
func (s *queueEDUsStatements) DeleteExpiredEDUs(
ctx context.Context, txn *sql.Tx,
- expiredBefore gomatrixserverlib.Timestamp,
+ expiredBefore spec.Timestamp,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteExpiredEDUsStmt)
_, err := stmt.ExecContext(ctx, expiredBefore)
diff --git a/federationapi/storage/postgres/queue_pdus_table.go b/federationapi/storage/postgres/queue_pdus_table.go
index b97be482..a767ec41 100644
--- a/federationapi/storage/postgres/queue_pdus_table.go
+++ b/federationapi/storage/postgres/queue_pdus_table.go
@@ -22,6 +22,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const queuePDUsSchema = `
@@ -91,7 +92,7 @@ func (s *queuePDUsStatements) InsertQueuePDU(
ctx context.Context,
txn *sql.Tx,
transactionID gomatrixserverlib.TransactionID,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
nid int64,
) error {
stmt := sqlutil.TxStmt(txn, s.insertQueuePDUStmt)
@@ -106,7 +107,7 @@ func (s *queuePDUsStatements) InsertQueuePDU(
func (s *queuePDUsStatements) DeleteQueuePDUs(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
jsonNIDs []int64,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteQueuePDUsStmt)
@@ -131,7 +132,7 @@ func (s *queuePDUsStatements) SelectQueuePDUReferenceJSONCount(
func (s *queuePDUsStatements) SelectQueuePDUs(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
limit int,
) ([]int64, error) {
stmt := sqlutil.TxStmt(txn, s.selectQueuePDUsStmt)
@@ -154,16 +155,16 @@ func (s *queuePDUsStatements) SelectQueuePDUs(
func (s *queuePDUsStatements) SelectQueuePDUServerNames(
ctx context.Context, txn *sql.Tx,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
stmt := sqlutil.TxStmt(txn, s.selectQueuePDUServerNamesStmt)
rows, err := stmt.QueryContext(ctx)
if err != nil {
return nil, err
}
defer internal.CloseAndLogIfError(ctx, rows, "queueFromStmt: rows.close() failed")
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for rows.Next() {
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
if err = rows.Scan(&serverName); err != nil {
return nil, err
}
diff --git a/federationapi/storage/postgres/relay_servers_table.go b/federationapi/storage/postgres/relay_servers_table.go
index f7267978..9e1bc5d4 100644
--- a/federationapi/storage/postgres/relay_servers_table.go
+++ b/federationapi/storage/postgres/relay_servers_table.go
@@ -21,7 +21,7 @@ import (
"github.com/lib/pq"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const relayServersSchema = `
@@ -78,8 +78,8 @@ func NewPostgresRelayServersTable(db *sql.DB) (s *relayServersStatements, err er
func (s *relayServersStatements) InsertRelayServers(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
- relayServers []gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
+ relayServers []spec.ServerName,
) error {
for _, relayServer := range relayServers {
stmt := sqlutil.TxStmt(txn, s.insertRelayServersStmt)
@@ -93,8 +93,8 @@ func (s *relayServersStatements) InsertRelayServers(
func (s *relayServersStatements) SelectRelayServers(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
-) ([]gomatrixserverlib.ServerName, error) {
+ serverName spec.ServerName,
+) ([]spec.ServerName, error) {
stmt := sqlutil.TxStmt(txn, s.selectRelayServersStmt)
rows, err := stmt.QueryContext(ctx, serverName)
if err != nil {
@@ -102,13 +102,13 @@ func (s *relayServersStatements) SelectRelayServers(
}
defer internal.CloseAndLogIfError(ctx, rows, "SelectRelayServers: rows.close() failed")
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for rows.Next() {
var relayServer string
if err = rows.Scan(&relayServer); err != nil {
return nil, err
}
- result = append(result, gomatrixserverlib.ServerName(relayServer))
+ result = append(result, spec.ServerName(relayServer))
}
return result, nil
}
@@ -116,8 +116,8 @@ func (s *relayServersStatements) SelectRelayServers(
func (s *relayServersStatements) DeleteRelayServers(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
- relayServers []gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
+ relayServers []spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteRelayServersStmt)
_, err := stmt.ExecContext(ctx, serverName, pq.Array(relayServers))
@@ -127,7 +127,7 @@ func (s *relayServersStatements) DeleteRelayServers(
func (s *relayServersStatements) DeleteAllRelayServers(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteAllRelayServersStmt)
if _, err := stmt.ExecContext(ctx, serverName); err != nil {
diff --git a/federationapi/storage/postgres/server_key_table.go b/federationapi/storage/postgres/server_key_table.go
index f393351b..c62446da 100644
--- a/federationapi/storage/postgres/server_key_table.go
+++ b/federationapi/storage/postgres/server_key_table.go
@@ -23,6 +23,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const serverSigningKeysSchema = `
@@ -80,7 +81,7 @@ func NewPostgresServerSigningKeysTable(db *sql.DB) (s *serverSigningKeyStatement
func (s *serverSigningKeyStatements) BulkSelectServerKeys(
ctx context.Context, txn *sql.Tx,
- requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
+ requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp,
) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) {
var nameAndKeyIDs []string
for request := range requests {
@@ -103,7 +104,7 @@ func (s *serverSigningKeyStatements) BulkSelectServerKeys(
return nil, err
}
r := gomatrixserverlib.PublicKeyLookupRequest{
- ServerName: gomatrixserverlib.ServerName(serverName),
+ ServerName: spec.ServerName(serverName),
KeyID: gomatrixserverlib.KeyID(keyID),
}
vk := gomatrixserverlib.VerifyKey{}
@@ -113,8 +114,8 @@ func (s *serverSigningKeyStatements) BulkSelectServerKeys(
}
results[r] = gomatrixserverlib.PublicKeyLookupResult{
VerifyKey: vk,
- ValidUntilTS: gomatrixserverlib.Timestamp(validUntilTS),
- ExpiredTS: gomatrixserverlib.Timestamp(expiredTS),
+ ValidUntilTS: spec.Timestamp(validUntilTS),
+ ExpiredTS: spec.Timestamp(expiredTS),
}
}
return results, rows.Err()
diff --git a/federationapi/storage/postgres/storage.go b/federationapi/storage/postgres/storage.go
index 468567cf..30665bc5 100644
--- a/federationapi/storage/postgres/storage.go
+++ b/federationapi/storage/postgres/storage.go
@@ -25,7 +25,7 @@ import (
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// Database stores information needed by the federation sender
@@ -36,7 +36,7 @@ type Database struct {
}
// NewDatabase opens a new database
-func NewDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, cache caching.FederationCache, isLocalServerName func(gomatrixserverlib.ServerName) bool) (*Database, error) {
+func NewDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, cache caching.FederationCache, isLocalServerName func(spec.ServerName) bool) (*Database, error) {
var d Database
var err error
if d.db, d.writer, err = conMan.Connection(dbProperties); err != nil {
diff --git a/federationapi/storage/shared/storage.go b/federationapi/storage/shared/storage.go
index 6769637b..8c73967c 100644
--- a/federationapi/storage/shared/storage.go
+++ b/federationapi/storage/shared/storage.go
@@ -26,11 +26,12 @@ import (
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type Database struct {
DB *sql.DB
- IsLocalServerName func(gomatrixserverlib.ServerName) bool
+ IsLocalServerName func(spec.ServerName) bool
Cache caching.FederationCache
Writer sqlutil.Writer
FederationQueuePDUs tables.FederationQueuePDUs
@@ -102,7 +103,7 @@ func (d *Database) GetJoinedHosts(
// Returns an error if something goes wrong.
func (d *Database) GetAllJoinedHosts(
ctx context.Context,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
return d.FederationJoinedHosts.SelectAllJoinedHosts(ctx)
}
@@ -111,7 +112,7 @@ func (d *Database) GetJoinedHostsForRooms(
roomIDs []string,
excludeSelf,
excludeBlacklisted bool,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
servers, err := d.FederationJoinedHosts.SelectJoinedHostsForRooms(ctx, roomIDs, excludeBlacklisted)
if err != nil {
return nil, err
@@ -148,7 +149,7 @@ func (d *Database) StoreJSON(
}
func (d *Database) AddServerToBlacklist(
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.FederationBlacklist.InsertBlacklist(context.TODO(), txn, serverName)
@@ -156,7 +157,7 @@ func (d *Database) AddServerToBlacklist(
}
func (d *Database) RemoveServerFromBlacklist(
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.FederationBlacklist.DeleteBlacklist(context.TODO(), txn, serverName)
@@ -170,14 +171,14 @@ func (d *Database) RemoveAllServersFromBlacklist() error {
}
func (d *Database) IsServerBlacklisted(
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (bool, error) {
return d.FederationBlacklist.SelectBlacklist(context.TODO(), nil, serverName)
}
func (d *Database) SetServerAssumedOffline(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.FederationAssumedOffline.InsertAssumedOffline(ctx, txn, serverName)
@@ -186,7 +187,7 @@ func (d *Database) SetServerAssumedOffline(
func (d *Database) RemoveServerAssumedOffline(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.FederationAssumedOffline.DeleteAssumedOffline(ctx, txn, serverName)
@@ -203,15 +204,15 @@ func (d *Database) RemoveAllServersAssumedOffline(
func (d *Database) IsServerAssumedOffline(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (bool, error) {
return d.FederationAssumedOffline.SelectAssumedOffline(ctx, nil, serverName)
}
func (d *Database) P2PAddRelayServersForServer(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
- relayServers []gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
+ relayServers []spec.ServerName,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.FederationRelayServers.InsertRelayServers(ctx, txn, serverName, relayServers)
@@ -220,15 +221,15 @@ func (d *Database) P2PAddRelayServersForServer(
func (d *Database) P2PGetRelayServersForServer(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
-) ([]gomatrixserverlib.ServerName, error) {
+ serverName spec.ServerName,
+) ([]spec.ServerName, error) {
return d.FederationRelayServers.SelectRelayServers(ctx, nil, serverName)
}
func (d *Database) P2PRemoveRelayServersForServer(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
- relayServers []gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
+ relayServers []spec.ServerName,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.FederationRelayServers.DeleteRelayServers(ctx, txn, serverName, relayServers)
@@ -237,7 +238,7 @@ func (d *Database) P2PRemoveRelayServersForServer(
func (d *Database) P2PRemoveAllRelayServersForServer(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.FederationRelayServers.DeleteAllRelayServers(ctx, txn, serverName)
@@ -246,7 +247,7 @@ func (d *Database) P2PRemoveAllRelayServersForServer(
func (d *Database) AddOutboundPeek(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
roomID string,
peekID string,
renewalInterval int64,
@@ -258,7 +259,7 @@ func (d *Database) AddOutboundPeek(
func (d *Database) RenewOutboundPeek(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
roomID string,
peekID string,
renewalInterval int64,
@@ -270,7 +271,7 @@ func (d *Database) RenewOutboundPeek(
func (d *Database) GetOutboundPeek(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
roomID,
peekID string,
) (*types.OutboundPeek, error) {
@@ -286,7 +287,7 @@ func (d *Database) GetOutboundPeeks(
func (d *Database) AddInboundPeek(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
roomID string,
peekID string,
renewalInterval int64,
@@ -298,7 +299,7 @@ func (d *Database) AddInboundPeek(
func (d *Database) RenewInboundPeek(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
roomID string,
peekID string,
renewalInterval int64,
@@ -310,7 +311,7 @@ func (d *Database) RenewInboundPeek(
func (d *Database) GetInboundPeek(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
roomID string,
peekID string,
) (*types.InboundPeek, error) {
@@ -326,7 +327,7 @@ func (d *Database) GetInboundPeeks(
func (d *Database) UpdateNotaryKeys(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
serverKeys gomatrixserverlib.ServerKeys,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -337,7 +338,7 @@ func (d *Database) UpdateNotaryKeys(
// https://spec.matrix.org/unstable/server-server-api/#querying-keys-through-another-server
weekIntoFuture := time.Now().Add(7 * 24 * time.Hour)
if weekIntoFuture.Before(validUntil.Time()) {
- validUntil = gomatrixserverlib.AsTimestamp(weekIntoFuture)
+ validUntil = spec.AsTimestamp(weekIntoFuture)
}
notaryID, err := d.NotaryServerKeysJSON.InsertJSONResponse(ctx, txn, serverKeys, serverName, validUntil)
if err != nil {
@@ -364,7 +365,7 @@ func (d *Database) UpdateNotaryKeys(
func (d *Database) GetNotaryKeys(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
optKeyIDs []gomatrixserverlib.KeyID,
) (sks []gomatrixserverlib.ServerKeys, err error) {
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
diff --git a/federationapi/storage/shared/storage_edus.go b/federationapi/storage/shared/storage_edus.go
index cff1ade6..e8d1d373 100644
--- a/federationapi/storage/shared/storage_edus.go
+++ b/federationapi/storage/shared/storage_edus.go
@@ -24,6 +24,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/storage/shared/receipt"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// defaultExpiry for EDUs if not listed below
@@ -32,8 +33,8 @@ var defaultExpiry = time.Hour * 24
// defaultExpireEDUTypes contains EDUs which can/should be expired after a given time
// if the target server isn't reachable for some reason.
var defaultExpireEDUTypes = map[string]time.Duration{
- gomatrixserverlib.MTyping: time.Minute,
- gomatrixserverlib.MPresence: time.Minute * 10,
+ spec.MTyping: time.Minute,
+ spec.MPresence: time.Minute * 10,
}
// AssociateEDUWithDestination creates an association that the
@@ -41,7 +42,7 @@ var defaultExpireEDUTypes = map[string]time.Duration{
// to which servers.
func (d *Database) AssociateEDUWithDestinations(
ctx context.Context,
- destinations map[gomatrixserverlib.ServerName]struct{},
+ destinations map[spec.ServerName]struct{},
dbReceipt *receipt.Receipt,
eduType string,
expireEDUTypes map[string]time.Duration,
@@ -49,14 +50,14 @@ func (d *Database) AssociateEDUWithDestinations(
if expireEDUTypes == nil {
expireEDUTypes = defaultExpireEDUTypes
}
- expiresAt := gomatrixserverlib.AsTimestamp(time.Now().Add(defaultExpiry))
+ expiresAt := spec.AsTimestamp(time.Now().Add(defaultExpiry))
if duration, ok := expireEDUTypes[eduType]; ok {
// Keep EDUs for at least x minutes before deleting them
- expiresAt = gomatrixserverlib.AsTimestamp(time.Now().Add(duration))
+ expiresAt = spec.AsTimestamp(time.Now().Add(duration))
}
// We forcibly set m.direct_to_device and m.device_list_update events
// to 0, as we always want them to be delivered. (required for E2EE)
- if eduType == gomatrixserverlib.MDirectToDevice || eduType == gomatrixserverlib.MDeviceListUpdate {
+ if eduType == spec.MDirectToDevice || eduType == spec.MDeviceListUpdate {
expiresAt = 0
}
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -79,7 +80,7 @@ func (d *Database) AssociateEDUWithDestinations(
// the next pending transaction, up to the limit specified.
func (d *Database) GetPendingEDUs(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
limit int,
) (
edus map[*receipt.Receipt]*gomatrixserverlib.EDU,
@@ -126,7 +127,7 @@ func (d *Database) GetPendingEDUs(
// transaction was sent successfully.
func (d *Database) CleanEDUs(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
receipts []*receipt.Receipt,
) error {
if len(receipts) == 0 {
@@ -169,7 +170,7 @@ func (d *Database) CleanEDUs(
// waiting to be sent.
func (d *Database) GetPendingEDUServerNames(
ctx context.Context,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
return d.FederationQueueEDUs.SelectQueueEDUServerNames(ctx, nil)
}
@@ -177,7 +178,7 @@ func (d *Database) GetPendingEDUServerNames(
func (d *Database) DeleteExpiredEDUs(ctx context.Context) error {
var jsonNIDs []int64
err := d.Writer.Do(d.DB, nil, func(txn *sql.Tx) (err error) {
- expiredBefore := gomatrixserverlib.AsTimestamp(time.Now())
+ expiredBefore := spec.AsTimestamp(time.Now())
jsonNIDs, err = d.FederationQueueEDUs.SelectExpiredEDUs(ctx, txn, expiredBefore)
if err != nil {
return err
diff --git a/federationapi/storage/shared/storage_keys.go b/federationapi/storage/shared/storage_keys.go
index 3222b122..580cf1d8 100644
--- a/federationapi/storage/shared/storage_keys.go
+++ b/federationapi/storage/shared/storage_keys.go
@@ -20,6 +20,7 @@ import (
"database/sql"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// FetcherName implements KeyFetcher
@@ -30,7 +31,7 @@ func (d Database) FetcherName() string {
// FetchKeys implements gomatrixserverlib.KeyDatabase
func (d *Database) FetchKeys(
ctx context.Context,
- requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
+ requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp,
) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) {
return d.ServerSigningKeys.BulkSelectServerKeys(ctx, nil, requests)
}
diff --git a/federationapi/storage/shared/storage_pdus.go b/federationapi/storage/shared/storage_pdus.go
index 854e0055..b7fad06b 100644
--- a/federationapi/storage/shared/storage_pdus.go
+++ b/federationapi/storage/shared/storage_pdus.go
@@ -23,6 +23,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/storage/shared/receipt"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// AssociatePDUWithDestination creates an association that the
@@ -30,7 +31,7 @@ import (
// to which servers.
func (d *Database) AssociatePDUWithDestinations(
ctx context.Context,
- destinations map[gomatrixserverlib.ServerName]struct{},
+ destinations map[spec.ServerName]struct{},
dbReceipt *receipt.Receipt,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -52,7 +53,7 @@ func (d *Database) AssociatePDUWithDestinations(
// the next pending transaction, up to the limit specified.
func (d *Database) GetPendingPDUs(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
limit int,
) (
events map[*receipt.Receipt]*gomatrixserverlib.HeaderedEvent,
@@ -105,7 +106,7 @@ func (d *Database) GetPendingPDUs(
// successfully.
func (d *Database) CleanPDUs(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
receipts []*receipt.Receipt,
) error {
if len(receipts) == 0 {
@@ -148,6 +149,6 @@ func (d *Database) CleanPDUs(
// waiting to be sent.
func (d *Database) GetPendingPDUServerNames(
ctx context.Context,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
return d.FederationQueuePDUs.SelectQueuePDUServerNames(ctx, nil)
}
diff --git a/federationapi/storage/sqlite3/assumed_offline_table.go b/federationapi/storage/sqlite3/assumed_offline_table.go
index ff2afb4d..f8de7f0c 100644
--- a/federationapi/storage/sqlite3/assumed_offline_table.go
+++ b/federationapi/storage/sqlite3/assumed_offline_table.go
@@ -19,7 +19,7 @@ import (
"database/sql"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const assumedOfflineSchema = `
@@ -68,7 +68,7 @@ func NewSQLiteAssumedOfflineTable(db *sql.DB) (s *assumedOfflineStatements, err
}
func (s *assumedOfflineStatements) InsertAssumedOffline(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.insertAssumedOfflineStmt)
_, err := stmt.ExecContext(ctx, serverName)
@@ -76,7 +76,7 @@ func (s *assumedOfflineStatements) InsertAssumedOffline(
}
func (s *assumedOfflineStatements) SelectAssumedOffline(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) (bool, error) {
stmt := sqlutil.TxStmt(txn, s.selectAssumedOfflineStmt)
res, err := stmt.QueryContext(ctx, serverName)
@@ -91,7 +91,7 @@ func (s *assumedOfflineStatements) SelectAssumedOffline(
}
func (s *assumedOfflineStatements) DeleteAssumedOffline(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteAssumedOfflineStmt)
_, err := stmt.ExecContext(ctx, serverName)
diff --git a/federationapi/storage/sqlite3/blacklist_table.go b/federationapi/storage/sqlite3/blacklist_table.go
index 5122bff1..2c65c487 100644
--- a/federationapi/storage/sqlite3/blacklist_table.go
+++ b/federationapi/storage/sqlite3/blacklist_table.go
@@ -19,7 +19,7 @@ import (
"database/sql"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const blacklistSchema = `
@@ -69,7 +69,7 @@ func NewSQLiteBlacklistTable(db *sql.DB) (s *blacklistStatements, err error) {
}
func (s *blacklistStatements) InsertBlacklist(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.insertBlacklistStmt)
_, err := stmt.ExecContext(ctx, serverName)
@@ -77,7 +77,7 @@ func (s *blacklistStatements) InsertBlacklist(
}
func (s *blacklistStatements) SelectBlacklist(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) (bool, error) {
stmt := sqlutil.TxStmt(txn, s.selectBlacklistStmt)
res, err := stmt.QueryContext(ctx, serverName)
@@ -92,7 +92,7 @@ func (s *blacklistStatements) SelectBlacklist(
}
func (s *blacklistStatements) DeleteBlacklist(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteBlacklistStmt)
_, err := stmt.ExecContext(ctx, serverName)
diff --git a/federationapi/storage/sqlite3/deltas/2022042812473400_addexpiresat.go b/federationapi/storage/sqlite3/deltas/2022042812473400_addexpiresat.go
index c5030163..d8be4695 100644
--- a/federationapi/storage/sqlite3/deltas/2022042812473400_addexpiresat.go
+++ b/federationapi/storage/sqlite3/deltas/2022042812473400_addexpiresat.go
@@ -20,7 +20,7 @@ import (
"fmt"
"time"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
func UpAddexpiresat(ctx context.Context, tx *sql.Tx) error {
@@ -52,7 +52,7 @@ INSERT
if err != nil {
return fmt.Errorf("failed to update queue_edus: %w", err)
}
- _, err = tx.ExecContext(ctx, "UPDATE federationsender_queue_edus SET expires_at = $1 WHERE edu_type != 'm.direct_to_device'", gomatrixserverlib.AsTimestamp(time.Now().Add(time.Hour*24)))
+ _, err = tx.ExecContext(ctx, "UPDATE federationsender_queue_edus SET expires_at = $1 WHERE edu_type != 'm.direct_to_device'", spec.AsTimestamp(time.Now().Add(time.Hour*24)))
if err != nil {
return fmt.Errorf("failed to update queue_edus: %w", err)
}
diff --git a/federationapi/storage/sqlite3/inbound_peeks_table.go b/federationapi/storage/sqlite3/inbound_peeks_table.go
index 8c356793..e58d5377 100644
--- a/federationapi/storage/sqlite3/inbound_peeks_table.go
+++ b/federationapi/storage/sqlite3/inbound_peeks_table.go
@@ -22,7 +22,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/types"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const inboundPeeksSchema = `
@@ -86,7 +86,7 @@ func NewSQLiteInboundPeeksTable(db *sql.DB) (s *inboundPeeksStatements, err erro
}
func (s *inboundPeeksStatements) InsertInboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64,
) (err error) {
nowMilli := time.Now().UnixNano() / int64(time.Millisecond)
stmt := sqlutil.TxStmt(txn, s.insertInboundPeekStmt)
@@ -95,7 +95,7 @@ func (s *inboundPeeksStatements) InsertInboundPeek(
}
func (s *inboundPeeksStatements) RenewInboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64,
) (err error) {
nowMilli := time.Now().UnixNano() / int64(time.Millisecond)
_, err = sqlutil.TxStmt(txn, s.renewInboundPeekStmt).ExecContext(ctx, nowMilli, renewalInterval, roomID, serverName, peekID)
@@ -103,7 +103,7 @@ func (s *inboundPeeksStatements) RenewInboundPeek(
}
func (s *inboundPeeksStatements) SelectInboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string,
) (*types.InboundPeek, error) {
row := sqlutil.TxStmt(txn, s.selectInboundPeeksStmt).QueryRowContext(ctx, roomID)
inboundPeek := types.InboundPeek{}
@@ -152,7 +152,7 @@ func (s *inboundPeeksStatements) SelectInboundPeeks(
}
func (s *inboundPeeksStatements) DeleteInboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string,
) (err error) {
_, err = sqlutil.TxStmt(txn, s.deleteInboundPeekStmt).ExecContext(ctx, roomID, serverName, peekID)
return
diff --git a/federationapi/storage/sqlite3/joined_hosts_table.go b/federationapi/storage/sqlite3/joined_hosts_table.go
index 2f076382..2412cacd 100644
--- a/federationapi/storage/sqlite3/joined_hosts_table.go
+++ b/federationapi/storage/sqlite3/joined_hosts_table.go
@@ -23,7 +23,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/types"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const joinedHostsSchema = `
@@ -104,7 +104,7 @@ func (s *joinedHostsStatements) InsertJoinedHosts(
ctx context.Context,
txn *sql.Tx,
roomID, eventID string,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.insertJoinedHostsStmt)
_, err := stmt.ExecContext(ctx, roomID, eventID, serverName)
@@ -146,20 +146,20 @@ func (s *joinedHostsStatements) SelectJoinedHosts(
func (s *joinedHostsStatements) SelectAllJoinedHosts(
ctx context.Context,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
rows, err := s.selectAllJoinedHostsStmt.QueryContext(ctx)
if err != nil {
return nil, err
}
defer internal.CloseAndLogIfError(ctx, rows, "selectAllJoinedHosts: rows.close() failed")
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for rows.Next() {
var serverName string
if err = rows.Scan(&serverName); err != nil {
return nil, err
}
- result = append(result, gomatrixserverlib.ServerName(serverName))
+ result = append(result, spec.ServerName(serverName))
}
return result, rows.Err()
@@ -167,7 +167,7 @@ func (s *joinedHostsStatements) SelectAllJoinedHosts(
func (s *joinedHostsStatements) SelectJoinedHostsForRooms(
ctx context.Context, roomIDs []string, excludingBlacklisted bool,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
iRoomIDs := make([]interface{}, len(roomIDs))
for i := range roomIDs {
iRoomIDs[i] = roomIDs[i]
@@ -183,13 +183,13 @@ func (s *joinedHostsStatements) SelectJoinedHostsForRooms(
}
defer internal.CloseAndLogIfError(ctx, rows, "selectJoinedHostsForRoomsStmt: rows.close() failed")
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for rows.Next() {
var serverName string
if err = rows.Scan(&serverName); err != nil {
return nil, err
}
- result = append(result, gomatrixserverlib.ServerName(serverName))
+ result = append(result, spec.ServerName(serverName))
}
return result, rows.Err()
@@ -212,7 +212,7 @@ func joinedHostsFromStmt(
}
result = append(result, types.JoinedHost{
MemberEventID: eventID,
- ServerName: gomatrixserverlib.ServerName(serverName),
+ ServerName: spec.ServerName(serverName),
})
}
diff --git a/federationapi/storage/sqlite3/notary_server_keys_json_table.go b/federationapi/storage/sqlite3/notary_server_keys_json_table.go
index 24875569..ad6d1b57 100644
--- a/federationapi/storage/sqlite3/notary_server_keys_json_table.go
+++ b/federationapi/storage/sqlite3/notary_server_keys_json_table.go
@@ -21,6 +21,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/storage/tables"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const notaryServerKeysJSONSchema = `
@@ -56,7 +57,7 @@ func NewSQLiteNotaryServerKeysTable(db *sql.DB) (s *notaryServerKeysStatements,
}
func (s *notaryServerKeysStatements) InsertJSONResponse(
- ctx context.Context, txn *sql.Tx, keyQueryResponseJSON gomatrixserverlib.ServerKeys, serverName gomatrixserverlib.ServerName, validUntil gomatrixserverlib.Timestamp,
+ ctx context.Context, txn *sql.Tx, keyQueryResponseJSON gomatrixserverlib.ServerKeys, serverName spec.ServerName, validUntil spec.Timestamp,
) (tables.NotaryID, error) {
var notaryID tables.NotaryID
return notaryID, txn.Stmt(s.insertServerKeysJSONStmt).QueryRowContext(ctx, string(keyQueryResponseJSON.Raw), serverName, validUntil).Scan(&notaryID)
diff --git a/federationapi/storage/sqlite3/notary_server_keys_metadata_table.go b/federationapi/storage/sqlite3/notary_server_keys_metadata_table.go
index 7179eb8d..2fd9ef21 100644
--- a/federationapi/storage/sqlite3/notary_server_keys_metadata_table.go
+++ b/federationapi/storage/sqlite3/notary_server_keys_metadata_table.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const notaryServerKeysMetadataSchema = `
@@ -101,12 +102,12 @@ func NewSQLiteNotaryServerKeysMetadataTable(db *sql.DB) (s *notaryServerKeysMeta
}
func (s *notaryServerKeysMetadataStatements) UpsertKey(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, keyID gomatrixserverlib.KeyID, newNotaryID tables.NotaryID, newValidUntil gomatrixserverlib.Timestamp,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, keyID gomatrixserverlib.KeyID, newNotaryID tables.NotaryID, newValidUntil spec.Timestamp,
) (tables.NotaryID, error) {
notaryID := newNotaryID
// see if the existing notary ID a) exists, b) has a longer valid_until
var existingNotaryID tables.NotaryID
- var existingValidUntil gomatrixserverlib.Timestamp
+ var existingValidUntil spec.Timestamp
if err := txn.Stmt(s.selectNotaryKeyMetadataStmt).QueryRowContext(ctx, serverName, keyID).Scan(&existingNotaryID, &existingValidUntil); err != nil {
if err != sql.ErrNoRows {
return 0, err
@@ -121,7 +122,7 @@ func (s *notaryServerKeysMetadataStatements) UpsertKey(
return notaryID, err
}
-func (s *notaryServerKeysMetadataStatements) SelectKeys(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, keyIDs []gomatrixserverlib.KeyID) ([]gomatrixserverlib.ServerKeys, error) {
+func (s *notaryServerKeysMetadataStatements) SelectKeys(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, keyIDs []gomatrixserverlib.KeyID) ([]gomatrixserverlib.ServerKeys, error) {
var rows *sql.Rows
var err error
if len(keyIDs) == 0 {
diff --git a/federationapi/storage/sqlite3/outbound_peeks_table.go b/federationapi/storage/sqlite3/outbound_peeks_table.go
index 33f452b6..b6684e9b 100644
--- a/federationapi/storage/sqlite3/outbound_peeks_table.go
+++ b/federationapi/storage/sqlite3/outbound_peeks_table.go
@@ -22,7 +22,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/types"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const outboundPeeksSchema = `
@@ -85,7 +85,7 @@ func NewSQLiteOutboundPeeksTable(db *sql.DB) (s *outboundPeeksStatements, err er
}
func (s *outboundPeeksStatements) InsertOutboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64,
) (err error) {
nowMilli := time.Now().UnixNano() / int64(time.Millisecond)
stmt := sqlutil.TxStmt(txn, s.insertOutboundPeekStmt)
@@ -94,7 +94,7 @@ func (s *outboundPeeksStatements) InsertOutboundPeek(
}
func (s *outboundPeeksStatements) RenewOutboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64,
) (err error) {
nowMilli := time.Now().UnixNano() / int64(time.Millisecond)
_, err = sqlutil.TxStmt(txn, s.renewOutboundPeekStmt).ExecContext(ctx, nowMilli, renewalInterval, roomID, serverName, peekID)
@@ -102,7 +102,7 @@ func (s *outboundPeeksStatements) RenewOutboundPeek(
}
func (s *outboundPeeksStatements) SelectOutboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string,
) (*types.OutboundPeek, error) {
row := sqlutil.TxStmt(txn, s.selectOutboundPeeksStmt).QueryRowContext(ctx, roomID)
outboundPeek := types.OutboundPeek{}
@@ -151,7 +151,7 @@ func (s *outboundPeeksStatements) SelectOutboundPeeks(
}
func (s *outboundPeeksStatements) DeleteOutboundPeek(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string,
) (err error) {
_, err = sqlutil.TxStmt(txn, s.deleteOutboundPeekStmt).ExecContext(ctx, roomID, serverName, peekID)
return
diff --git a/federationapi/storage/sqlite3/queue_edus_table.go b/federationapi/storage/sqlite3/queue_edus_table.go
index 0dc91432..f500a631 100644
--- a/federationapi/storage/sqlite3/queue_edus_table.go
+++ b/federationapi/storage/sqlite3/queue_edus_table.go
@@ -20,11 +20,10 @@ import (
"fmt"
"strings"
- "github.com/matrix-org/gomatrixserverlib"
-
"github.com/matrix-org/dendrite/federationapi/storage/sqlite3/deltas"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const queueEDUsSchema = `
@@ -121,9 +120,9 @@ func (s *queueEDUsStatements) InsertQueueEDU(
ctx context.Context,
txn *sql.Tx,
eduType string,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
nid int64,
- expiresAt gomatrixserverlib.Timestamp,
+ expiresAt spec.Timestamp,
) error {
stmt := sqlutil.TxStmt(txn, s.insertQueueEDUStmt)
_, err := stmt.ExecContext(
@@ -138,7 +137,7 @@ func (s *queueEDUsStatements) InsertQueueEDU(
func (s *queueEDUsStatements) DeleteQueueEDUs(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
jsonNIDs []int64,
) error {
deleteSQL := strings.Replace(deleteQueueEDUsSQL, "($2)", sqlutil.QueryVariadicOffset(len(jsonNIDs), 1), 1)
@@ -160,7 +159,7 @@ func (s *queueEDUsStatements) DeleteQueueEDUs(
func (s *queueEDUsStatements) SelectQueueEDUs(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
limit int,
) ([]int64, error) {
stmt := sqlutil.TxStmt(txn, s.selectQueueEDUStmt)
@@ -194,16 +193,16 @@ func (s *queueEDUsStatements) SelectQueueEDUReferenceJSONCount(
func (s *queueEDUsStatements) SelectQueueEDUServerNames(
ctx context.Context, txn *sql.Tx,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
stmt := sqlutil.TxStmt(txn, s.selectQueueEDUServerNamesStmt)
rows, err := stmt.QueryContext(ctx)
if err != nil {
return nil, err
}
defer internal.CloseAndLogIfError(ctx, rows, "queueFromStmt: rows.close() failed")
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for rows.Next() {
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
if err = rows.Scan(&serverName); err != nil {
return nil, err
}
@@ -215,7 +214,7 @@ func (s *queueEDUsStatements) SelectQueueEDUServerNames(
func (s *queueEDUsStatements) SelectExpiredEDUs(
ctx context.Context, txn *sql.Tx,
- expiredBefore gomatrixserverlib.Timestamp,
+ expiredBefore spec.Timestamp,
) ([]int64, error) {
stmt := sqlutil.TxStmt(txn, s.selectExpiredEDUsStmt)
rows, err := stmt.QueryContext(ctx, expiredBefore)
@@ -236,7 +235,7 @@ func (s *queueEDUsStatements) SelectExpiredEDUs(
func (s *queueEDUsStatements) DeleteExpiredEDUs(
ctx context.Context, txn *sql.Tx,
- expiredBefore gomatrixserverlib.Timestamp,
+ expiredBefore spec.Timestamp,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteExpiredEDUsStmt)
_, err := stmt.ExecContext(ctx, expiredBefore)
diff --git a/federationapi/storage/sqlite3/queue_pdus_table.go b/federationapi/storage/sqlite3/queue_pdus_table.go
index d8d99f0c..92075ff9 100644
--- a/federationapi/storage/sqlite3/queue_pdus_table.go
+++ b/federationapi/storage/sqlite3/queue_pdus_table.go
@@ -24,6 +24,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const queuePDUsSchema = `
@@ -100,7 +101,7 @@ func (s *queuePDUsStatements) InsertQueuePDU(
ctx context.Context,
txn *sql.Tx,
transactionID gomatrixserverlib.TransactionID,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
nid int64,
) error {
stmt := sqlutil.TxStmt(txn, s.insertQueuePDUStmt)
@@ -115,7 +116,7 @@ func (s *queuePDUsStatements) InsertQueuePDU(
func (s *queuePDUsStatements) DeleteQueuePDUs(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
jsonNIDs []int64,
) error {
deleteSQL := strings.Replace(deleteQueuePDUsSQL, "($2)", sqlutil.QueryVariadicOffset(len(jsonNIDs), 1), 1)
@@ -136,7 +137,7 @@ func (s *queuePDUsStatements) DeleteQueuePDUs(
}
func (s *queuePDUsStatements) SelectQueuePDUNextTransactionID(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) (gomatrixserverlib.TransactionID, error) {
var transactionID gomatrixserverlib.TransactionID
stmt := sqlutil.TxStmt(txn, s.selectQueueNextTransactionIDStmt)
@@ -161,7 +162,7 @@ func (s *queuePDUsStatements) SelectQueuePDUReferenceJSONCount(
func (s *queuePDUsStatements) SelectQueuePDUs(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
limit int,
) ([]int64, error) {
stmt := sqlutil.TxStmt(txn, s.selectQueuePDUsStmt)
@@ -184,16 +185,16 @@ func (s *queuePDUsStatements) SelectQueuePDUs(
func (s *queuePDUsStatements) SelectQueuePDUServerNames(
ctx context.Context, txn *sql.Tx,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
stmt := sqlutil.TxStmt(txn, s.selectQueueServerNamesStmt)
rows, err := stmt.QueryContext(ctx)
if err != nil {
return nil, err
}
defer internal.CloseAndLogIfError(ctx, rows, "queueFromStmt: rows.close() failed")
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for rows.Next() {
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
if err = rows.Scan(&serverName); err != nil {
return nil, err
}
diff --git a/federationapi/storage/sqlite3/relay_servers_table.go b/federationapi/storage/sqlite3/relay_servers_table.go
index 27c3cca2..36cabeb4 100644
--- a/federationapi/storage/sqlite3/relay_servers_table.go
+++ b/federationapi/storage/sqlite3/relay_servers_table.go
@@ -21,7 +21,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const relayServersSchema = `
@@ -77,8 +77,8 @@ func NewSQLiteRelayServersTable(db *sql.DB) (s *relayServersStatements, err erro
func (s *relayServersStatements) InsertRelayServers(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
- relayServers []gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
+ relayServers []spec.ServerName,
) error {
for _, relayServer := range relayServers {
stmt := sqlutil.TxStmt(txn, s.insertRelayServersStmt)
@@ -92,8 +92,8 @@ func (s *relayServersStatements) InsertRelayServers(
func (s *relayServersStatements) SelectRelayServers(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
-) ([]gomatrixserverlib.ServerName, error) {
+ serverName spec.ServerName,
+) ([]spec.ServerName, error) {
stmt := sqlutil.TxStmt(txn, s.selectRelayServersStmt)
rows, err := stmt.QueryContext(ctx, serverName)
if err != nil {
@@ -101,13 +101,13 @@ func (s *relayServersStatements) SelectRelayServers(
}
defer internal.CloseAndLogIfError(ctx, rows, "SelectRelayServers: rows.close() failed")
- var result []gomatrixserverlib.ServerName
+ var result []spec.ServerName
for rows.Next() {
var relayServer string
if err = rows.Scan(&relayServer); err != nil {
return nil, err
}
- result = append(result, gomatrixserverlib.ServerName(relayServer))
+ result = append(result, spec.ServerName(relayServer))
}
return result, nil
}
@@ -115,8 +115,8 @@ func (s *relayServersStatements) SelectRelayServers(
func (s *relayServersStatements) DeleteRelayServers(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
- relayServers []gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
+ relayServers []spec.ServerName,
) error {
deleteSQL := strings.Replace(deleteRelayServersSQL, "($2)", sqlutil.QueryVariadicOffset(len(relayServers), 1), 1)
deleteStmt, err := s.db.Prepare(deleteSQL)
@@ -138,7 +138,7 @@ func (s *relayServersStatements) DeleteRelayServers(
func (s *relayServersStatements) DeleteAllRelayServers(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteAllRelayServersStmt)
if _, err := stmt.ExecContext(ctx, serverName); err != nil {
diff --git a/federationapi/storage/sqlite3/server_key_table.go b/federationapi/storage/sqlite3/server_key_table.go
index b32ff092..f28b8994 100644
--- a/federationapi/storage/sqlite3/server_key_table.go
+++ b/federationapi/storage/sqlite3/server_key_table.go
@@ -22,6 +22,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const serverSigningKeysSchema = `
@@ -82,7 +83,7 @@ func NewSQLiteServerSigningKeysTable(db *sql.DB) (s *serverSigningKeyStatements,
func (s *serverSigningKeyStatements) BulkSelectServerKeys(
ctx context.Context, txn *sql.Tx,
- requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
+ requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp,
) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) {
nameAndKeyIDs := make([]string, 0, len(requests))
for request := range requests {
@@ -107,7 +108,7 @@ func (s *serverSigningKeyStatements) BulkSelectServerKeys(
return fmt.Errorf("bulkSelectServerKeys: %v", err)
}
r := gomatrixserverlib.PublicKeyLookupRequest{
- ServerName: gomatrixserverlib.ServerName(serverName),
+ ServerName: spec.ServerName(serverName),
KeyID: gomatrixserverlib.KeyID(keyID),
}
vk := gomatrixserverlib.VerifyKey{}
@@ -117,8 +118,8 @@ func (s *serverSigningKeyStatements) BulkSelectServerKeys(
}
results[r] = gomatrixserverlib.PublicKeyLookupResult{
VerifyKey: vk,
- ValidUntilTS: gomatrixserverlib.Timestamp(validUntilTS),
- ExpiredTS: gomatrixserverlib.Timestamp(expiredTS),
+ ValidUntilTS: spec.Timestamp(validUntilTS),
+ ExpiredTS: spec.Timestamp(expiredTS),
}
}
return nil
diff --git a/federationapi/storage/sqlite3/storage.go b/federationapi/storage/sqlite3/storage.go
index c64c9a4f..00c8afa0 100644
--- a/federationapi/storage/sqlite3/storage.go
+++ b/federationapi/storage/sqlite3/storage.go
@@ -23,7 +23,7 @@ import (
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// Database stores information needed by the federation sender
@@ -34,7 +34,7 @@ type Database struct {
}
// NewDatabase opens a new database
-func NewDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, cache caching.FederationCache, isLocalServerName func(gomatrixserverlib.ServerName) bool) (*Database, error) {
+func NewDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, cache caching.FederationCache, isLocalServerName func(spec.ServerName) bool) (*Database, error) {
var d Database
var err error
if d.db, d.writer, err = conMan.Connection(dbProperties); err != nil {
diff --git a/federationapi/storage/storage.go b/federationapi/storage/storage.go
index 4eb9d2c9..322a6c75 100644
--- a/federationapi/storage/storage.go
+++ b/federationapi/storage/storage.go
@@ -26,11 +26,11 @@ import (
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// NewDatabase opens a new database
-func NewDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, cache caching.FederationCache, isLocalServerName func(gomatrixserverlib.ServerName) bool) (Database, error) {
+func NewDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, cache caching.FederationCache, isLocalServerName func(spec.ServerName) bool) (Database, error) {
switch {
case dbProperties.ConnectionString.IsSQLite():
return sqlite3.NewDatabase(ctx, conMan, dbProperties, cache, isLocalServerName)
diff --git a/federationapi/storage/storage_test.go b/federationapi/storage/storage_test.go
index 74863c07..db71f2c1 100644
--- a/federationapi/storage/storage_test.go
+++ b/federationapi/storage/storage_test.go
@@ -12,6 +12,7 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/stretchr/testify/assert"
)
@@ -23,7 +24,7 @@ func mustCreateFederationDatabase(t *testing.T, dbType test.DBType) (storage.Dat
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
db, err := storage.NewDatabase(ctx, cm, &config.DatabaseOptions{
ConnectionString: config.DataSource(connStr),
- }, caches, func(server gomatrixserverlib.ServerName) bool { return server == "localhost" })
+ }, caches, func(server spec.ServerName) bool { return server == "localhost" })
if err != nil {
t.Fatalf("NewDatabase returned %s", err)
}
@@ -34,11 +35,11 @@ func mustCreateFederationDatabase(t *testing.T, dbType test.DBType) (storage.Dat
func TestExpireEDUs(t *testing.T) {
var expireEDUTypes = map[string]time.Duration{
- gomatrixserverlib.MReceipt: 0,
+ spec.MReceipt: 0,
}
ctx := context.Background()
- destinations := map[gomatrixserverlib.ServerName]struct{}{"localhost": {}}
+ destinations := map[spec.ServerName]struct{}{"localhost": {}}
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
db, close := mustCreateFederationDatabase(t, dbType)
defer close()
@@ -47,7 +48,7 @@ func TestExpireEDUs(t *testing.T) {
receipt, err := db.StoreJSON(ctx, "{}")
assert.NoError(t, err)
- err = db.AssociateEDUWithDestinations(ctx, destinations, receipt, gomatrixserverlib.MReceipt, expireEDUTypes)
+ err = db.AssociateEDUWithDestinations(ctx, destinations, receipt, spec.MReceipt, expireEDUTypes)
assert.NoError(t, err)
}
// add data without expiry
@@ -71,7 +72,7 @@ func TestExpireEDUs(t *testing.T) {
receipt, err = db.StoreJSON(ctx, "{}")
assert.NoError(t, err)
- err = db.AssociateEDUWithDestinations(ctx, destinations, receipt, gomatrixserverlib.MDirectToDevice, expireEDUTypes)
+ err = db.AssociateEDUWithDestinations(ctx, destinations, receipt, spec.MDirectToDevice, expireEDUTypes)
assert.NoError(t, err)
err = db.DeleteExpiredEDUs(ctx)
@@ -249,8 +250,8 @@ func TestInboundPeeking(t *testing.T) {
}
func TestServersAssumedOffline(t *testing.T) {
- server1 := gomatrixserverlib.ServerName("server1")
- server2 := gomatrixserverlib.ServerName("server2")
+ server1 := spec.ServerName("server1")
+ server2 := spec.ServerName("server2")
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
db, closeDB := mustCreateFederationDatabase(t, dbType)
@@ -305,29 +306,29 @@ func TestServersAssumedOffline(t *testing.T) {
}
func TestRelayServersStored(t *testing.T) {
- server := gomatrixserverlib.ServerName("server")
- relayServer1 := gomatrixserverlib.ServerName("relayserver1")
- relayServer2 := gomatrixserverlib.ServerName("relayserver2")
+ server := spec.ServerName("server")
+ relayServer1 := spec.ServerName("relayserver1")
+ relayServer2 := spec.ServerName("relayserver2")
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
db, closeDB := mustCreateFederationDatabase(t, dbType)
defer closeDB()
- err := db.P2PAddRelayServersForServer(context.Background(), server, []gomatrixserverlib.ServerName{relayServer1})
+ err := db.P2PAddRelayServersForServer(context.Background(), server, []spec.ServerName{relayServer1})
assert.Nil(t, err)
relayServers, err := db.P2PGetRelayServersForServer(context.Background(), server)
assert.Nil(t, err)
assert.Equal(t, relayServer1, relayServers[0])
- err = db.P2PRemoveRelayServersForServer(context.Background(), server, []gomatrixserverlib.ServerName{relayServer1})
+ err = db.P2PRemoveRelayServersForServer(context.Background(), server, []spec.ServerName{relayServer1})
assert.Nil(t, err)
relayServers, err = db.P2PGetRelayServersForServer(context.Background(), server)
assert.Nil(t, err)
assert.Zero(t, len(relayServers))
- err = db.P2PAddRelayServersForServer(context.Background(), server, []gomatrixserverlib.ServerName{relayServer1, relayServer2})
+ err = db.P2PAddRelayServersForServer(context.Background(), server, []spec.ServerName{relayServer1, relayServer2})
assert.Nil(t, err)
relayServers, err = db.P2PGetRelayServersForServer(context.Background(), server)
diff --git a/federationapi/storage/storage_wasm.go b/federationapi/storage/storage_wasm.go
index d1652d71..e19a4564 100644
--- a/federationapi/storage/storage_wasm.go
+++ b/federationapi/storage/storage_wasm.go
@@ -26,7 +26,7 @@ import (
)
// NewDatabase opens a new database
-func NewDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, cache caching.FederationCache, isLocalServerName func(gomatrixserverlib.ServerName) bool) (Database, error) {
+func NewDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, cache caching.FederationCache, isLocalServerName func(spec.ServerName) bool) (Database, error) {
switch {
case dbProperties.ConnectionString.IsSQLite():
return sqlite3.NewDatabase(ctx, conMan, dbProperties, cache, isLocalServerName)
diff --git a/federationapi/storage/tables/interface.go b/federationapi/storage/tables/interface.go
index 762504e4..f8de42da 100644
--- a/federationapi/storage/tables/interface.go
+++ b/federationapi/storage/tables/interface.go
@@ -20,26 +20,27 @@ import (
"github.com/matrix-org/dendrite/federationapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type NotaryID int64
type FederationQueuePDUs interface {
- InsertQueuePDU(ctx context.Context, txn *sql.Tx, transactionID gomatrixserverlib.TransactionID, serverName gomatrixserverlib.ServerName, nid int64) error
- DeleteQueuePDUs(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, jsonNIDs []int64) error
+ InsertQueuePDU(ctx context.Context, txn *sql.Tx, transactionID gomatrixserverlib.TransactionID, serverName spec.ServerName, nid int64) error
+ DeleteQueuePDUs(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, jsonNIDs []int64) error
SelectQueuePDUReferenceJSONCount(ctx context.Context, txn *sql.Tx, jsonNID int64) (int64, error)
- SelectQueuePDUs(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, limit int) ([]int64, error)
- SelectQueuePDUServerNames(ctx context.Context, txn *sql.Tx) ([]gomatrixserverlib.ServerName, error)
+ SelectQueuePDUs(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, limit int) ([]int64, error)
+ SelectQueuePDUServerNames(ctx context.Context, txn *sql.Tx) ([]spec.ServerName, error)
}
type FederationQueueEDUs interface {
- InsertQueueEDU(ctx context.Context, txn *sql.Tx, eduType string, serverName gomatrixserverlib.ServerName, nid int64, expiresAt gomatrixserverlib.Timestamp) error
- DeleteQueueEDUs(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, jsonNIDs []int64) error
- SelectQueueEDUs(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, limit int) ([]int64, error)
+ InsertQueueEDU(ctx context.Context, txn *sql.Tx, eduType string, serverName spec.ServerName, nid int64, expiresAt spec.Timestamp) error
+ DeleteQueueEDUs(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, jsonNIDs []int64) error
+ SelectQueueEDUs(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, limit int) ([]int64, error)
SelectQueueEDUReferenceJSONCount(ctx context.Context, txn *sql.Tx, jsonNID int64) (int64, error)
- SelectQueueEDUServerNames(ctx context.Context, txn *sql.Tx) ([]gomatrixserverlib.ServerName, error)
- SelectExpiredEDUs(ctx context.Context, txn *sql.Tx, expiredBefore gomatrixserverlib.Timestamp) ([]int64, error)
- DeleteExpiredEDUs(ctx context.Context, txn *sql.Tx, expiredBefore gomatrixserverlib.Timestamp) error
+ SelectQueueEDUServerNames(ctx context.Context, txn *sql.Tx) ([]spec.ServerName, error)
+ SelectExpiredEDUs(ctx context.Context, txn *sql.Tx, expiredBefore spec.Timestamp) ([]int64, error)
+ DeleteExpiredEDUs(ctx context.Context, txn *sql.Tx, expiredBefore spec.Timestamp) error
Prepare() error
}
@@ -50,10 +51,10 @@ type FederationQueueJSON interface {
}
type FederationQueueTransactions interface {
- InsertQueueTransaction(ctx context.Context, txn *sql.Tx, transactionID gomatrixserverlib.TransactionID, serverName gomatrixserverlib.ServerName, nid int64) error
- DeleteQueueTransactions(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, jsonNIDs []int64) error
- SelectQueueTransactions(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, limit int) ([]int64, error)
- SelectQueueTransactionCount(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) (int64, error)
+ InsertQueueTransaction(ctx context.Context, txn *sql.Tx, transactionID gomatrixserverlib.TransactionID, serverName spec.ServerName, nid int64) error
+ DeleteQueueTransactions(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, jsonNIDs []int64) error
+ SelectQueueTransactions(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, limit int) ([]int64, error)
+ SelectQueueTransactionCount(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) (int64, error)
}
type FederationTransactionJSON interface {
@@ -63,51 +64,51 @@ type FederationTransactionJSON interface {
}
type FederationJoinedHosts interface {
- InsertJoinedHosts(ctx context.Context, txn *sql.Tx, roomID, eventID string, serverName gomatrixserverlib.ServerName) error
+ InsertJoinedHosts(ctx context.Context, txn *sql.Tx, roomID, eventID string, serverName spec.ServerName) error
DeleteJoinedHosts(ctx context.Context, txn *sql.Tx, eventIDs []string) error
DeleteJoinedHostsForRoom(ctx context.Context, txn *sql.Tx, roomID string) error
SelectJoinedHostsWithTx(ctx context.Context, txn *sql.Tx, roomID string) ([]types.JoinedHost, error)
SelectJoinedHosts(ctx context.Context, roomID string) ([]types.JoinedHost, error)
- SelectAllJoinedHosts(ctx context.Context) ([]gomatrixserverlib.ServerName, error)
- SelectJoinedHostsForRooms(ctx context.Context, roomIDs []string, excludingBlacklisted bool) ([]gomatrixserverlib.ServerName, error)
+ SelectAllJoinedHosts(ctx context.Context) ([]spec.ServerName, error)
+ SelectJoinedHostsForRooms(ctx context.Context, roomIDs []string, excludingBlacklisted bool) ([]spec.ServerName, error)
}
type FederationBlacklist interface {
- InsertBlacklist(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) error
- SelectBlacklist(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) (bool, error)
- DeleteBlacklist(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) error
+ InsertBlacklist(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) error
+ SelectBlacklist(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) (bool, error)
+ DeleteBlacklist(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) error
DeleteAllBlacklist(ctx context.Context, txn *sql.Tx) error
}
type FederationAssumedOffline interface {
- InsertAssumedOffline(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) error
- SelectAssumedOffline(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) (bool, error)
- DeleteAssumedOffline(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) error
+ InsertAssumedOffline(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) error
+ SelectAssumedOffline(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) (bool, error)
+ DeleteAssumedOffline(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) error
DeleteAllAssumedOffline(ctx context.Context, txn *sql.Tx) error
}
type FederationRelayServers interface {
- InsertRelayServers(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, relayServers []gomatrixserverlib.ServerName) error
- SelectRelayServers(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) ([]gomatrixserverlib.ServerName, error)
- DeleteRelayServers(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, relayServers []gomatrixserverlib.ServerName) error
- DeleteAllRelayServers(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) error
+ InsertRelayServers(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, relayServers []spec.ServerName) error
+ SelectRelayServers(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) ([]spec.ServerName, error)
+ DeleteRelayServers(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, relayServers []spec.ServerName) error
+ DeleteAllRelayServers(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) error
}
type FederationOutboundPeeks interface {
- InsertOutboundPeek(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) (err error)
- RenewOutboundPeek(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) (err error)
- SelectOutboundPeek(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string) (outboundPeek *types.OutboundPeek, err error)
+ InsertOutboundPeek(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) (err error)
+ RenewOutboundPeek(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) (err error)
+ SelectOutboundPeek(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string) (outboundPeek *types.OutboundPeek, err error)
SelectOutboundPeeks(ctx context.Context, txn *sql.Tx, roomID string) (outboundPeeks []types.OutboundPeek, err error)
- DeleteOutboundPeek(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string) (err error)
+ DeleteOutboundPeek(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string) (err error)
DeleteOutboundPeeks(ctx context.Context, txn *sql.Tx, roomID string) (err error)
}
type FederationInboundPeeks interface {
- InsertInboundPeek(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) (err error)
- RenewInboundPeek(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) (err error)
- SelectInboundPeek(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string) (inboundPeek *types.InboundPeek, err error)
+ InsertInboundPeek(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) (err error)
+ RenewInboundPeek(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) (err error)
+ SelectInboundPeek(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string) (inboundPeek *types.InboundPeek, err error)
SelectInboundPeeks(ctx context.Context, txn *sql.Tx, roomID string) (inboundPeeks []types.InboundPeek, err error)
- DeleteInboundPeek(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, roomID, peekID string) (err error)
+ DeleteInboundPeek(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, roomID, peekID string) (err error)
DeleteInboundPeeks(ctx context.Context, txn *sql.Tx, roomID string) (err error)
}
@@ -118,22 +119,22 @@ type FederationNotaryServerKeysJSON interface {
// "Servers MUST use the lesser of this field and 7 days into the future when determining if a key is valid.
// This is to avoid a situation where an attacker publishes a key which is valid for a significant amount of time
// without a way for the homeserver owner to revoke it.""
- InsertJSONResponse(ctx context.Context, txn *sql.Tx, keyQueryResponseJSON gomatrixserverlib.ServerKeys, serverName gomatrixserverlib.ServerName, validUntil gomatrixserverlib.Timestamp) (NotaryID, error)
+ InsertJSONResponse(ctx context.Context, txn *sql.Tx, keyQueryResponseJSON gomatrixserverlib.ServerKeys, serverName spec.ServerName, validUntil spec.Timestamp) (NotaryID, error)
}
// FederationNotaryServerKeysMetadata persists the metadata for FederationNotaryServerKeysJSON
type FederationNotaryServerKeysMetadata interface {
// UpsertKey updates or inserts a (server_name, key_id) tuple, pointing it via NotaryID at the the response which has the longest valid_until_ts
// `newNotaryID` and `newValidUntil` should be the notary ID / valid_until which has this (server_name, key_id) tuple already, e.g one you just inserted.
- UpsertKey(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, keyID gomatrixserverlib.KeyID, newNotaryID NotaryID, newValidUntil gomatrixserverlib.Timestamp) (NotaryID, error)
+ UpsertKey(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, keyID gomatrixserverlib.KeyID, newNotaryID NotaryID, newValidUntil spec.Timestamp) (NotaryID, error)
// SelectKeys returns the signed JSON objects which contain the given key IDs. This will be at most the length of `keyIDs` and at least 1 (assuming
// the keys exist in the first place). If `keyIDs` is empty, the signed JSON object with the longest valid_until_ts will be returned.
- SelectKeys(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, keyIDs []gomatrixserverlib.KeyID) ([]gomatrixserverlib.ServerKeys, error)
+ SelectKeys(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, keyIDs []gomatrixserverlib.KeyID) ([]gomatrixserverlib.ServerKeys, error)
// DeleteOldJSONResponses removes all responses which are not referenced in FederationNotaryServerKeysMetadata
DeleteOldJSONResponses(ctx context.Context, txn *sql.Tx) error
}
type FederationServerSigningKeys interface {
- BulkSelectServerKeys(ctx context.Context, txn *sql.Tx, requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error)
+ BulkSelectServerKeys(ctx context.Context, txn *sql.Tx, requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error)
UpsertServerKeys(ctx context.Context, txn *sql.Tx, request gomatrixserverlib.PublicKeyLookupRequest, key gomatrixserverlib.PublicKeyLookupResult) error
}
diff --git a/federationapi/storage/tables/relay_servers_table_test.go b/federationapi/storage/tables/relay_servers_table_test.go
index b4121155..6a14e3f1 100644
--- a/federationapi/storage/tables/relay_servers_table_test.go
+++ b/federationapi/storage/tables/relay_servers_table_test.go
@@ -11,7 +11,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/test"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
@@ -57,7 +57,7 @@ func mustCreateRelayServersTable(
return database, close
}
-func Equal(a, b []gomatrixserverlib.ServerName) bool {
+func Equal(a, b []spec.ServerName) bool {
if len(a) != len(b) {
return false
}
@@ -74,7 +74,7 @@ func TestShouldInsertRelayServers(t *testing.T) {
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
db, close := mustCreateRelayServersTable(t, dbType)
defer close()
- expectedRelayServers := []gomatrixserverlib.ServerName{server2, server3}
+ expectedRelayServers := []spec.ServerName{server2, server3}
err := db.Table.InsertRelayServers(ctx, nil, server1, expectedRelayServers)
if err != nil {
@@ -97,8 +97,8 @@ func TestShouldInsertRelayServersWithDuplicates(t *testing.T) {
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
db, close := mustCreateRelayServersTable(t, dbType)
defer close()
- insertRelayServers := []gomatrixserverlib.ServerName{server2, server2, server2, server3, server2}
- expectedRelayServers := []gomatrixserverlib.ServerName{server2, server3}
+ insertRelayServers := []spec.ServerName{server2, server2, server2, server3, server2}
+ expectedRelayServers := []spec.ServerName{server2, server3}
err := db.Table.InsertRelayServers(ctx, nil, server1, insertRelayServers)
if err != nil {
@@ -134,8 +134,8 @@ func TestShouldGetRelayServersUnknownDestination(t *testing.T) {
t.Fatalf("Failed retrieving relay servers for %s: %s", relayServers, err.Error())
}
- if !Equal(relayServers, []gomatrixserverlib.ServerName{}) {
- t.Fatalf("Expected: %v \nActual: %v", []gomatrixserverlib.ServerName{}, relayServers)
+ if !Equal(relayServers, []spec.ServerName{}) {
+ t.Fatalf("Expected: %v \nActual: %v", []spec.ServerName{}, relayServers)
}
})
}
@@ -145,8 +145,8 @@ func TestShouldDeleteCorrectRelayServers(t *testing.T) {
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
db, close := mustCreateRelayServersTable(t, dbType)
defer close()
- relayServers1 := []gomatrixserverlib.ServerName{server2, server3}
- relayServers2 := []gomatrixserverlib.ServerName{server1, server3, server4}
+ relayServers1 := []spec.ServerName{server2, server3}
+ relayServers2 := []spec.ServerName{server1, server3, server4}
err := db.Table.InsertRelayServers(ctx, nil, server1, relayServers1)
if err != nil {
@@ -157,16 +157,16 @@ func TestShouldDeleteCorrectRelayServers(t *testing.T) {
t.Fatalf("Failed inserting transaction: %s", err.Error())
}
- err = db.Table.DeleteRelayServers(ctx, nil, server1, []gomatrixserverlib.ServerName{server2})
+ err = db.Table.DeleteRelayServers(ctx, nil, server1, []spec.ServerName{server2})
if err != nil {
t.Fatalf("Failed deleting relay servers for %s: %s", server1, err.Error())
}
- err = db.Table.DeleteRelayServers(ctx, nil, server2, []gomatrixserverlib.ServerName{server1, server4})
+ err = db.Table.DeleteRelayServers(ctx, nil, server2, []spec.ServerName{server1, server4})
if err != nil {
t.Fatalf("Failed deleting relay servers for %s: %s", server2, err.Error())
}
- expectedRelayServers := []gomatrixserverlib.ServerName{server3}
+ expectedRelayServers := []spec.ServerName{server3}
relayServers, err := db.Table.SelectRelayServers(ctx, nil, server1)
if err != nil {
t.Fatalf("Failed retrieving relay servers for %s: %s", relayServers, err.Error())
@@ -189,7 +189,7 @@ func TestShouldDeleteAllRelayServers(t *testing.T) {
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
db, close := mustCreateRelayServersTable(t, dbType)
defer close()
- expectedRelayServers := []gomatrixserverlib.ServerName{server2, server3}
+ expectedRelayServers := []spec.ServerName{server2, server3}
err := db.Table.InsertRelayServers(ctx, nil, server1, expectedRelayServers)
if err != nil {
@@ -205,7 +205,7 @@ func TestShouldDeleteAllRelayServers(t *testing.T) {
t.Fatalf("Failed deleting relay servers for %s: %s", server1, err.Error())
}
- expectedRelayServers1 := []gomatrixserverlib.ServerName{}
+ expectedRelayServers1 := []spec.ServerName{}
relayServers, err := db.Table.SelectRelayServers(ctx, nil, server1)
if err != nil {
t.Fatalf("Failed retrieving relay servers for %s: %s", relayServers, err.Error())
diff --git a/federationapi/types/types.go b/federationapi/types/types.go
index 5821000c..20f92e80 100644
--- a/federationapi/types/types.go
+++ b/federationapi/types/types.go
@@ -14,9 +14,7 @@
package types
-import (
- "github.com/matrix-org/gomatrixserverlib"
-)
+import "github.com/matrix-org/gomatrixserverlib/spec"
const MSigningKeyUpdate = "m.signing_key_update" // TODO: move to gomatrixserverlib
@@ -25,10 +23,10 @@ type JoinedHost struct {
// The MemberEventID of a m.room.member join event.
MemberEventID string
// The domain part of the state key of the m.room.member join event
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
}
-type ServerNames []gomatrixserverlib.ServerName
+type ServerNames []spec.ServerName
func (s ServerNames) Len() int { return len(s) }
func (s ServerNames) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
@@ -38,7 +36,7 @@ func (s ServerNames) Less(i, j int) bool { return s[i] < s[j] }
type OutboundPeek struct {
PeekID string
RoomID string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
CreationTimestamp int64
RenewedTimestamp int64
RenewalInterval int64
@@ -48,7 +46,7 @@ type OutboundPeek struct {
type InboundPeek struct {
PeekID string
RoomID string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
CreationTimestamp int64
RenewedTimestamp int64
RenewalInterval int64
@@ -64,7 +62,7 @@ type FederationReceiptData struct {
}
type ReceiptTS struct {
- TS gomatrixserverlib.Timestamp `json:"ts"`
+ TS spec.Timestamp `json:"ts"`
}
type Presence struct {
diff --git a/go.mod b/go.mod
index 4c4d5468..515f9a36 100644
--- a/go.mod
+++ b/go.mod
@@ -22,7 +22,7 @@ require (
github.com/matrix-org/dugong v0.0.0-20210921133753-66e6b1c67e2e
github.com/matrix-org/go-sqlite3-js v0.0.0-20220419092513-28aa791a1c91
github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530
- github.com/matrix-org/gomatrixserverlib v0.0.0-20230414140439-3cf4cd94d75f
+ github.com/matrix-org/gomatrixserverlib v0.0.0-20230419135026-7f3c8ee774a0
github.com/matrix-org/pinecone v0.11.1-0.20230210171230-8c3b24f2649a
github.com/matrix-org/util v0.0.0-20221111132719-399730281e66
github.com/mattn/go-sqlite3 v1.14.16
diff --git a/go.sum b/go.sum
index ad3017f2..70a5a056 100644
--- a/go.sum
+++ b/go.sum
@@ -323,6 +323,14 @@ github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530 h1:kHKxCOLcHH8
github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530/go.mod h1:/gBX06Kw0exX1HrwmoBibFA98yBk/jxKpGVeyQbff+s=
github.com/matrix-org/gomatrixserverlib v0.0.0-20230414140439-3cf4cd94d75f h1:sULN+zkwjt9bBy3dy5W98B6J/Pd4xOiF6yjWOBRRKmw=
github.com/matrix-org/gomatrixserverlib v0.0.0-20230414140439-3cf4cd94d75f/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
+github.com/matrix-org/gomatrixserverlib v0.0.0-20230418093913-f0ab3b996ed5 h1:WVjB9i6+0WvX/pc4jDQPYVWIf/SyYf0Aa9hhiQBdLq8=
+github.com/matrix-org/gomatrixserverlib v0.0.0-20230418093913-f0ab3b996ed5/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
+github.com/matrix-org/gomatrixserverlib v0.0.0-20230418110303-b59eb925da4a h1:84t3ixdKTJOzgmr8+KesjPY9G9g1LX0fz5zD6E4ybHA=
+github.com/matrix-org/gomatrixserverlib v0.0.0-20230418110303-b59eb925da4a/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
+github.com/matrix-org/gomatrixserverlib v0.0.0-20230418132954-2113ec20fc8e h1:nLZjU+z/W2n48/9mlCjx+QWo3Q6z777RrLi6Id2CzmM=
+github.com/matrix-org/gomatrixserverlib v0.0.0-20230418132954-2113ec20fc8e/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
+github.com/matrix-org/gomatrixserverlib v0.0.0-20230419135026-7f3c8ee774a0 h1:u+1vK+Sj2gL8IWgaaSF4WM38iL/Cx7jf6Q/aa1g0Icc=
+github.com/matrix-org/gomatrixserverlib v0.0.0-20230419135026-7f3c8ee774a0/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
github.com/matrix-org/pinecone v0.11.1-0.20230210171230-8c3b24f2649a h1:awrPDf9LEFySxTLKYBMCiObelNx/cBuv/wzllvCCH3A=
github.com/matrix-org/pinecone v0.11.1-0.20230210171230-8c3b24f2649a/go.mod h1:HchJX9oKMXaT2xYFs0Ha/6Zs06mxLU8k6F1ODnrGkeQ=
github.com/matrix-org/util v0.0.0-20221111132719-399730281e66 h1:6z4KxomXSIGWqhHcfzExgkH3Z3UkIXry4ibJS4Aqz2Y=
diff --git a/internal/caching/cache_serverkeys.go b/internal/caching/cache_serverkeys.go
index cffa101d..37e331ab 100644
--- a/internal/caching/cache_serverkeys.go
+++ b/internal/caching/cache_serverkeys.go
@@ -4,6 +4,7 @@ import (
"fmt"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// ServerKeyCache contains the subset of functions needed for
@@ -14,7 +15,7 @@ type ServerKeyCache interface {
// The timestamp should be the timestamp of the event that is being
// verified. We will not return keys from the cache that are not valid
// at this timestamp.
- GetServerKey(request gomatrixserverlib.PublicKeyLookupRequest, timestamp gomatrixserverlib.Timestamp) (response gomatrixserverlib.PublicKeyLookupResult, ok bool)
+ GetServerKey(request gomatrixserverlib.PublicKeyLookupRequest, timestamp spec.Timestamp) (response gomatrixserverlib.PublicKeyLookupResult, ok bool)
// request -> result is emulating gomatrixserverlib.StoreKeys:
// https://github.com/matrix-org/gomatrixserverlib/blob/f69539c86ea55d1e2cc76fd8e944e2d82d30397c/keyring.go#L112
@@ -23,7 +24,7 @@ type ServerKeyCache interface {
func (c Caches) GetServerKey(
request gomatrixserverlib.PublicKeyLookupRequest,
- timestamp gomatrixserverlib.Timestamp,
+ timestamp spec.Timestamp,
) (gomatrixserverlib.PublicKeyLookupResult, bool) {
key := fmt.Sprintf("%s/%s", request.ServerName, request.KeyID)
val, found := c.ServerKeys.Get(key)
diff --git a/internal/eventutil/events.go b/internal/eventutil/events.go
index 984a3f53..c7dee346 100644
--- a/internal/eventutil/events.go
+++ b/internal/eventutil/events.go
@@ -23,6 +23,7 @@ import (
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/gomatrixserverlib"
)
@@ -174,7 +175,7 @@ func truncateAuthAndPrevEvents(auth, prev []gomatrixserverlib.EventReference) (
// downstream components to the roomserver when an OutputTypeRedactedEvent occurs.
func RedactEvent(redactionEvent, redactedEvent *gomatrixserverlib.Event) error {
// sanity check
- if redactionEvent.Type() != gomatrixserverlib.MRoomRedaction {
+ if redactionEvent.Type() != spec.MRoomRedaction {
return fmt.Errorf("RedactEvent: redactionEvent isn't a redaction event, is '%s'", redactionEvent.Type())
}
redactedEvent.Redact()
diff --git a/internal/fulltext/bleve.go b/internal/fulltext/bleve.go
index f7412470..d2807198 100644
--- a/internal/fulltext/bleve.go
+++ b/internal/fulltext/bleve.go
@@ -23,6 +23,7 @@ import (
"github.com/blevesearch/bleve/v2"
"github.com/matrix-org/dendrite/setup/process"
+ "github.com/matrix-org/gomatrixserverlib/spec"
// side effect imports to allow all possible languages
_ "github.com/blevesearch/bleve/v2/analysis/lang/ar"
@@ -47,7 +48,6 @@ import (
_ "github.com/blevesearch/bleve/v2/analysis/lang/sv"
_ "github.com/blevesearch/bleve/v2/analysis/lang/tr"
"github.com/blevesearch/bleve/v2/mapping"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/dendrite/setup/config"
)
@@ -79,9 +79,9 @@ func (i *IndexElement) SetContentType(v string) {
switch v {
case "m.room.message":
i.ContentType = "content.body"
- case gomatrixserverlib.MRoomName:
+ case spec.MRoomName:
i.ContentType = "content.name"
- case gomatrixserverlib.MRoomTopic:
+ case spec.MRoomTopic:
i.ContentType = "content.topic"
}
}
diff --git a/internal/fulltext/bleve_test.go b/internal/fulltext/bleve_test.go
index a77c2393..decb5ecc 100644
--- a/internal/fulltext/bleve_test.go
+++ b/internal/fulltext/bleve_test.go
@@ -19,7 +19,7 @@ import (
"testing"
"github.com/matrix-org/dendrite/setup/process"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/internal/fulltext"
@@ -77,7 +77,7 @@ func mustAddTestData(t *testing.T, fts *fulltext.Search, firstStreamPos int64) (
Content: "Roomname testing",
StreamPosition: streamPos,
}
- e.SetContentType(gomatrixserverlib.MRoomName)
+ e.SetContentType(spec.MRoomName)
batchItems = append(batchItems, e)
e = fulltext.IndexElement{
EventID: util.RandomString(16),
@@ -85,7 +85,7 @@ func mustAddTestData(t *testing.T, fts *fulltext.Search, firstStreamPos int64) (
Content: "Room topic fulltext",
StreamPosition: streamPos,
}
- e.SetContentType(gomatrixserverlib.MRoomTopic)
+ e.SetContentType(spec.MRoomTopic)
batchItems = append(batchItems, e)
if err := fts.Index(batchItems...); err != nil {
t.Fatalf("failed to batch insert elements: %v", err)
diff --git a/internal/pushrules/default.go b/internal/pushrules/default.go
index 99698551..202a10d7 100644
--- a/internal/pushrules/default.go
+++ b/internal/pushrules/default.go
@@ -1,12 +1,10 @@
package pushrules
-import (
- "github.com/matrix-org/gomatrixserverlib"
-)
+import "github.com/matrix-org/gomatrixserverlib/spec"
// DefaultAccountRuleSets is the complete set of default push rules
// for an account.
-func DefaultAccountRuleSets(localpart string, serverName gomatrixserverlib.ServerName) *AccountRuleSets {
+func DefaultAccountRuleSets(localpart string, serverName spec.ServerName) *AccountRuleSets {
return &AccountRuleSets{
Global: *DefaultGlobalRuleSet(localpart, serverName),
}
@@ -14,7 +12,7 @@ func DefaultAccountRuleSets(localpart string, serverName gomatrixserverlib.Serve
// DefaultGlobalRuleSet returns the default ruleset for a given (fully
// qualified) MXID.
-func DefaultGlobalRuleSet(localpart string, serverName gomatrixserverlib.ServerName) *RuleSet {
+func DefaultGlobalRuleSet(localpart string, serverName spec.ServerName) *RuleSet {
return &RuleSet{
Override: defaultOverrideRules("@" + localpart + ":" + string(serverName)),
Content: defaultContentRules(localpart),
diff --git a/internal/transactionrequest.go b/internal/transactionrequest.go
index 60c02b12..235a3123 100644
--- a/internal/transactionrequest.go
+++ b/internal/transactionrequest.go
@@ -29,6 +29,7 @@ import (
userAPI "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/prometheus/client_golang/prometheus"
"github.com/sirupsen/logrus"
@@ -58,7 +59,7 @@ type TxnReq struct {
gomatrixserverlib.Transaction
rsAPI api.FederationRoomserverAPI
userAPI userAPI.FederationUserAPI
- ourServerName gomatrixserverlib.ServerName
+ ourServerName spec.ServerName
keys gomatrixserverlib.JSONVerifier
roomsMu *MutexByRoom
producer *producers.SyncAPIProducer
@@ -68,16 +69,16 @@ type TxnReq struct {
func NewTxnReq(
rsAPI api.FederationRoomserverAPI,
userAPI userAPI.FederationUserAPI,
- ourServerName gomatrixserverlib.ServerName,
+ ourServerName spec.ServerName,
keys gomatrixserverlib.JSONVerifier,
roomsMu *MutexByRoom,
producer *producers.SyncAPIProducer,
inboundPresenceEnabled bool,
pdus []json.RawMessage,
edus []gomatrixserverlib.EDU,
- origin gomatrixserverlib.ServerName,
+ origin spec.ServerName,
transactionID gomatrixserverlib.TransactionID,
- destination gomatrixserverlib.ServerName,
+ destination spec.ServerName,
) TxnReq {
t := TxnReq{
rsAPI: rsAPI,
@@ -154,7 +155,7 @@ func (t *TxnReq) ProcessTransaction(ctx context.Context) (*fclient.RespSend, *ut
util.GetLogger(ctx).WithError(err).Debugf("Transaction: Failed to parse event JSON of event %s", string(pdu))
continue
}
- if event.Type() == gomatrixserverlib.MRoomCreate && event.StateKeyEquals("") {
+ if event.Type() == spec.MRoomCreate && event.StateKeyEquals("") {
continue
}
if api.IsServerBannedFromRoom(ctx, t.rsAPI, event.RoomID(), t.Origin) {
@@ -207,7 +208,7 @@ func (t *TxnReq) processEDUs(ctx context.Context) {
for _, e := range t.EDUs {
EDUCountTotal.Inc()
switch e.Type {
- case gomatrixserverlib.MTyping:
+ case spec.MTyping:
// https://matrix.org/docs/spec/server_server/latest#typing-notifications
var typingPayload struct {
RoomID string `json:"room_id"`
@@ -228,7 +229,7 @@ func (t *TxnReq) processEDUs(ctx context.Context) {
if err := t.producer.SendTyping(ctx, typingPayload.UserID, typingPayload.RoomID, typingPayload.Typing, 30*1000); err != nil {
util.GetLogger(ctx).WithError(err).Error("Failed to send typing event to JetStream")
}
- case gomatrixserverlib.MDirectToDevice:
+ case spec.MDirectToDevice:
// https://matrix.org/docs/spec/server_server/r0.1.3#m-direct-to-device-schema
var directPayload gomatrixserverlib.ToDeviceMessage
if err := json.Unmarshal(e.Content, &directPayload); err != nil {
@@ -255,12 +256,12 @@ func (t *TxnReq) processEDUs(ctx context.Context) {
}
}
}
- case gomatrixserverlib.MDeviceListUpdate:
+ case spec.MDeviceListUpdate:
if err := t.producer.SendDeviceListUpdate(ctx, e.Content, t.Origin); err != nil {
sentry.CaptureException(err)
util.GetLogger(ctx).WithError(err).Error("failed to InputDeviceListUpdate")
}
- case gomatrixserverlib.MReceipt:
+ case spec.MReceipt:
// https://matrix.org/docs/spec/server_server/r0.1.4#receipts
payload := map[string]types.FederationReceiptMRead{}
@@ -296,7 +297,7 @@ func (t *TxnReq) processEDUs(ctx context.Context) {
sentry.CaptureException(err)
logrus.WithError(err).Errorf("Failed to process signing key update")
}
- case gomatrixserverlib.MPresence:
+ case spec.MPresence:
if t.inboundPresenceEnabled {
if err := t.processPresence(ctx, e); err != nil {
logrus.WithError(err).Errorf("Failed to process presence update")
@@ -336,7 +337,7 @@ func (t *TxnReq) processPresence(ctx context.Context, e gomatrixserverlib.EDU) e
// processReceiptEvent sends receipt events to JetStream
func (t *TxnReq) processReceiptEvent(ctx context.Context,
userID, roomID, receiptType string,
- timestamp gomatrixserverlib.Timestamp,
+ timestamp spec.Timestamp,
eventIDs []string,
) error {
if _, serverName, err := gomatrixserverlib.SplitID('@', userID); err != nil {
diff --git a/internal/transactionrequest_test.go b/internal/transactionrequest_test.go
index c152eb28..b539e1a5 100644
--- a/internal/transactionrequest_test.go
+++ b/internal/transactionrequest_test.go
@@ -23,6 +23,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/stretchr/testify/assert"
"go.uber.org/atomic"
@@ -39,8 +40,8 @@ import (
)
const (
- testOrigin = gomatrixserverlib.ServerName("kaer.morhen")
- testDestination = gomatrixserverlib.ServerName("white.orchard")
+ testOrigin = spec.ServerName("kaer.morhen")
+ testDestination = spec.ServerName("white.orchard")
)
var (
@@ -235,7 +236,7 @@ func TestProcessTransactionRequestEDUTyping(t *testing.T) {
t.Errorf("failed to marshal EDU JSON")
}
badEDU := gomatrixserverlib.EDU{Type: "m.typing"}
- badEDU.Content = gomatrixserverlib.RawJSON("badjson")
+ badEDU.Content = spec.RawJSON("badjson")
edus := []gomatrixserverlib.EDU{badEDU, edu}
ctx := process.NewProcessContext()
@@ -301,7 +302,7 @@ func TestProcessTransactionRequestEDUToDevice(t *testing.T) {
t.Errorf("failed to marshal EDU JSON")
}
badEDU := gomatrixserverlib.EDU{Type: "m.direct_to_device"}
- badEDU.Content = gomatrixserverlib.RawJSON("badjson")
+ badEDU.Content = spec.RawJSON("badjson")
edus := []gomatrixserverlib.EDU{badEDU, edu}
ctx := process.NewProcessContext()
@@ -378,7 +379,7 @@ func TestProcessTransactionRequestEDUDeviceListUpdate(t *testing.T) {
t.Errorf("failed to marshal EDU JSON")
}
badEDU := gomatrixserverlib.EDU{Type: "m.device_list_update"}
- badEDU.Content = gomatrixserverlib.RawJSON("badjson")
+ badEDU.Content = spec.RawJSON("badjson")
edus := []gomatrixserverlib.EDU{badEDU, edu}
ctx := process.NewProcessContext()
@@ -441,7 +442,7 @@ func TestProcessTransactionRequestEDUReceipt(t *testing.T) {
t.Errorf("failed to marshal EDU JSON")
}
badEDU := gomatrixserverlib.EDU{Type: "m.receipt"}
- badEDU.Content = gomatrixserverlib.RawJSON("badjson")
+ badEDU.Content = spec.RawJSON("badjson")
badUser := gomatrixserverlib.EDU{Type: "m.receipt"}
if badUser.Content, err = json.Marshal(map[string]interface{}{
roomID: map[string]interface{}{
@@ -519,7 +520,7 @@ func TestProcessTransactionRequestEDUSigningKeyUpdate(t *testing.T) {
t.Errorf("failed to marshal EDU JSON")
}
badEDU := gomatrixserverlib.EDU{Type: "m.signing_key_update"}
- badEDU.Content = gomatrixserverlib.RawJSON("badjson")
+ badEDU.Content = spec.RawJSON("badjson")
edus := []gomatrixserverlib.EDU{badEDU, edu}
ctx := process.NewProcessContext()
@@ -576,7 +577,7 @@ func TestProcessTransactionRequestEDUPresence(t *testing.T) {
t.Errorf("failed to marshal EDU JSON")
}
badEDU := gomatrixserverlib.EDU{Type: "m.presence"}
- badEDU.Content = gomatrixserverlib.RawJSON("badjson")
+ badEDU.Content = spec.RawJSON("badjson")
edus := []gomatrixserverlib.EDU{badEDU, edu}
ctx := process.NewProcessContext()
diff --git a/internal/validate.go b/internal/validate.go
index 0461b897..f794d7a5 100644
--- a/internal/validate.go
+++ b/internal/validate.go
@@ -21,7 +21,7 @@ import (
"regexp"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -70,7 +70,7 @@ func PasswordResponse(err error) *util.JSONResponse {
}
// ValidateUsername returns an error if the username is invalid
-func ValidateUsername(localpart string, domain gomatrixserverlib.ServerName) error {
+func ValidateUsername(localpart string, domain spec.ServerName) error {
// https://github.com/matrix-org/synapse/blob/v0.20.0/synapse/rest/client/v2_alpha/register.py#L161
if id := fmt.Sprintf("@%s:%s", localpart, domain); len(id) > maxUsernameLength {
return ErrUsernameTooLong
@@ -100,7 +100,7 @@ func UsernameResponse(err error) *util.JSONResponse {
}
// ValidateApplicationServiceUsername returns an error if the username is invalid for an application service
-func ValidateApplicationServiceUsername(localpart string, domain gomatrixserverlib.ServerName) error {
+func ValidateApplicationServiceUsername(localpart string, domain spec.ServerName) error {
if id := fmt.Sprintf("@%s:%s", localpart, domain); len(id) > maxUsernameLength {
return ErrUsernameTooLong
} else if !validUsernameRegex.MatchString(localpart) {
diff --git a/internal/validate_test.go b/internal/validate_test.go
index d0ad0470..2244b7a9 100644
--- a/internal/validate_test.go
+++ b/internal/validate_test.go
@@ -7,7 +7,7 @@ import (
"testing"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -54,7 +54,7 @@ func Test_validateUsername(t *testing.T) {
tests := []struct {
name string
localpart string
- domain gomatrixserverlib.ServerName
+ domain spec.ServerName
wantErr error
wantJSON *util.JSONResponse
}{
diff --git a/mediaapi/routing/download.go b/mediaapi/routing/download.go
index 412faceb..bba24327 100644
--- a/mediaapi/routing/download.go
+++ b/mediaapi/routing/download.go
@@ -36,8 +36,8 @@ import (
"github.com/matrix-org/dendrite/mediaapi/thumbnailer"
"github.com/matrix-org/dendrite/mediaapi/types"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
@@ -72,7 +72,7 @@ type downloadRequest struct {
func Download(
w http.ResponseWriter,
req *http.Request,
- origin gomatrixserverlib.ServerName,
+ origin spec.ServerName,
mediaID types.MediaID,
cfg *config.MediaAPI,
db storage.Database,
diff --git a/mediaapi/routing/routing.go b/mediaapi/routing/routing.go
index 79e8308a..e0af4a91 100644
--- a/mediaapi/routing/routing.go
+++ b/mediaapi/routing/routing.go
@@ -25,8 +25,8 @@ import (
"github.com/matrix-org/dendrite/mediaapi/types"
"github.com/matrix-org/dendrite/setup/config"
userapi "github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
@@ -140,7 +140,7 @@ func makeDownloadAPI(
}
vars, _ := httputil.URLDecodeMapValues(mux.Vars(req))
- serverName := gomatrixserverlib.ServerName(vars["serverName"])
+ serverName := spec.ServerName(vars["serverName"])
// For the purposes of loop avoidance, we will return a 404 if allow_remote is set to
// false in the query string and the target server name isn't our own.
diff --git a/mediaapi/storage/interface.go b/mediaapi/storage/interface.go
index d083be1e..cf3e7df5 100644
--- a/mediaapi/storage/interface.go
+++ b/mediaapi/storage/interface.go
@@ -18,7 +18,7 @@ import (
"context"
"github.com/matrix-org/dendrite/mediaapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type Database interface {
@@ -28,12 +28,12 @@ type Database interface {
type MediaRepository interface {
StoreMediaMetadata(ctx context.Context, mediaMetadata *types.MediaMetadata) error
- GetMediaMetadata(ctx context.Context, mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName) (*types.MediaMetadata, error)
- GetMediaMetadataByHash(ctx context.Context, mediaHash types.Base64Hash, mediaOrigin gomatrixserverlib.ServerName) (*types.MediaMetadata, error)
+ GetMediaMetadata(ctx context.Context, mediaID types.MediaID, mediaOrigin spec.ServerName) (*types.MediaMetadata, error)
+ GetMediaMetadataByHash(ctx context.Context, mediaHash types.Base64Hash, mediaOrigin spec.ServerName) (*types.MediaMetadata, error)
}
type Thumbnails interface {
StoreThumbnail(ctx context.Context, thumbnailMetadata *types.ThumbnailMetadata) error
- GetThumbnail(ctx context.Context, mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName, width, height int, resizeMethod string) (*types.ThumbnailMetadata, error)
- GetThumbnails(ctx context.Context, mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName) ([]*types.ThumbnailMetadata, error)
+ GetThumbnail(ctx context.Context, mediaID types.MediaID, mediaOrigin spec.ServerName, width, height int, resizeMethod string) (*types.ThumbnailMetadata, error)
+ GetThumbnails(ctx context.Context, mediaID types.MediaID, mediaOrigin spec.ServerName) ([]*types.ThumbnailMetadata, error)
}
diff --git a/mediaapi/storage/postgres/media_repository_table.go b/mediaapi/storage/postgres/media_repository_table.go
index 41cee487..0583dd01 100644
--- a/mediaapi/storage/postgres/media_repository_table.go
+++ b/mediaapi/storage/postgres/media_repository_table.go
@@ -23,7 +23,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/mediaapi/storage/tables"
"github.com/matrix-org/dendrite/mediaapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const mediaSchema = `
@@ -88,7 +88,7 @@ func NewPostgresMediaRepositoryTable(db *sql.DB) (tables.MediaRepository, error)
func (s *mediaStatements) InsertMedia(
ctx context.Context, txn *sql.Tx, mediaMetadata *types.MediaMetadata,
) error {
- mediaMetadata.CreationTimestamp = gomatrixserverlib.AsTimestamp(time.Now())
+ mediaMetadata.CreationTimestamp = spec.AsTimestamp(time.Now())
_, err := sqlutil.TxStmtContext(ctx, txn, s.insertMediaStmt).ExecContext(
ctx,
mediaMetadata.MediaID,
@@ -104,7 +104,7 @@ func (s *mediaStatements) InsertMedia(
}
func (s *mediaStatements) SelectMedia(
- ctx context.Context, txn *sql.Tx, mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, mediaID types.MediaID, mediaOrigin spec.ServerName,
) (*types.MediaMetadata, error) {
mediaMetadata := types.MediaMetadata{
MediaID: mediaID,
@@ -124,7 +124,7 @@ func (s *mediaStatements) SelectMedia(
}
func (s *mediaStatements) SelectMediaByHash(
- ctx context.Context, txn *sql.Tx, mediaHash types.Base64Hash, mediaOrigin gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, mediaHash types.Base64Hash, mediaOrigin spec.ServerName,
) (*types.MediaMetadata, error) {
mediaMetadata := types.MediaMetadata{
Base64Hash: mediaHash,
diff --git a/mediaapi/storage/postgres/thumbnail_table.go b/mediaapi/storage/postgres/thumbnail_table.go
index 7e07b476..85448552 100644
--- a/mediaapi/storage/postgres/thumbnail_table.go
+++ b/mediaapi/storage/postgres/thumbnail_table.go
@@ -24,7 +24,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/mediaapi/storage/tables"
"github.com/matrix-org/dendrite/mediaapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const thumbnailSchema = `
@@ -91,7 +91,7 @@ func NewPostgresThumbnailsTable(db *sql.DB) (tables.Thumbnails, error) {
func (s *thumbnailStatements) InsertThumbnail(
ctx context.Context, txn *sql.Tx, thumbnailMetadata *types.ThumbnailMetadata,
) error {
- thumbnailMetadata.MediaMetadata.CreationTimestamp = gomatrixserverlib.AsTimestamp(time.Now())
+ thumbnailMetadata.MediaMetadata.CreationTimestamp = spec.AsTimestamp(time.Now())
_, err := sqlutil.TxStmtContext(ctx, txn, s.insertThumbnailStmt).ExecContext(
ctx,
thumbnailMetadata.MediaMetadata.MediaID,
@@ -110,7 +110,7 @@ func (s *thumbnailStatements) SelectThumbnail(
ctx context.Context,
txn *sql.Tx,
mediaID types.MediaID,
- mediaOrigin gomatrixserverlib.ServerName,
+ mediaOrigin spec.ServerName,
width, height int,
resizeMethod string,
) (*types.ThumbnailMetadata, error) {
@@ -141,7 +141,7 @@ func (s *thumbnailStatements) SelectThumbnail(
}
func (s *thumbnailStatements) SelectThumbnails(
- ctx context.Context, txn *sql.Tx, mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, mediaID types.MediaID, mediaOrigin spec.ServerName,
) ([]*types.ThumbnailMetadata, error) {
rows, err := sqlutil.TxStmtContext(ctx, txn, s.selectThumbnailsStmt).QueryContext(
ctx, mediaID, mediaOrigin,
diff --git a/mediaapi/storage/shared/mediaapi.go b/mediaapi/storage/shared/mediaapi.go
index c8d9ad6a..867405fb 100644
--- a/mediaapi/storage/shared/mediaapi.go
+++ b/mediaapi/storage/shared/mediaapi.go
@@ -21,7 +21,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/mediaapi/storage/tables"
"github.com/matrix-org/dendrite/mediaapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type Database struct {
@@ -42,7 +42,7 @@ func (d Database) StoreMediaMetadata(ctx context.Context, mediaMetadata *types.M
// GetMediaMetadata returns metadata about media stored on this server.
// The media could have been uploaded to this server or fetched from another server and cached here.
// Returns nil metadata if there is no metadata associated with this media.
-func (d Database) GetMediaMetadata(ctx context.Context, mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName) (*types.MediaMetadata, error) {
+func (d Database) GetMediaMetadata(ctx context.Context, mediaID types.MediaID, mediaOrigin spec.ServerName) (*types.MediaMetadata, error) {
mediaMetadata, err := d.MediaRepository.SelectMedia(ctx, nil, mediaID, mediaOrigin)
if err != nil && err == sql.ErrNoRows {
return nil, nil
@@ -53,7 +53,7 @@ func (d Database) GetMediaMetadata(ctx context.Context, mediaID types.MediaID, m
// GetMediaMetadataByHash returns metadata about media stored on this server.
// The media could have been uploaded to this server or fetched from another server and cached here.
// Returns nil metadata if there is no metadata associated with this media.
-func (d Database) GetMediaMetadataByHash(ctx context.Context, mediaHash types.Base64Hash, mediaOrigin gomatrixserverlib.ServerName) (*types.MediaMetadata, error) {
+func (d Database) GetMediaMetadataByHash(ctx context.Context, mediaHash types.Base64Hash, mediaOrigin spec.ServerName) (*types.MediaMetadata, error) {
mediaMetadata, err := d.MediaRepository.SelectMediaByHash(ctx, nil, mediaHash, mediaOrigin)
if err != nil && err == sql.ErrNoRows {
return nil, nil
@@ -72,7 +72,7 @@ func (d Database) StoreThumbnail(ctx context.Context, thumbnailMetadata *types.T
// GetThumbnail returns metadata about a specific thumbnail.
// The media could have been uploaded to this server or fetched from another server and cached here.
// Returns nil metadata if there is no metadata associated with this thumbnail.
-func (d Database) GetThumbnail(ctx context.Context, mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName, width, height int, resizeMethod string) (*types.ThumbnailMetadata, error) {
+func (d Database) GetThumbnail(ctx context.Context, mediaID types.MediaID, mediaOrigin spec.ServerName, width, height int, resizeMethod string) (*types.ThumbnailMetadata, error) {
metadata, err := d.Thumbnails.SelectThumbnail(ctx, nil, mediaID, mediaOrigin, width, height, resizeMethod)
if err != nil {
if err == sql.ErrNoRows {
@@ -86,7 +86,7 @@ func (d Database) GetThumbnail(ctx context.Context, mediaID types.MediaID, media
// GetThumbnails returns metadata about all thumbnails for a specific media stored on this server.
// The media could have been uploaded to this server or fetched from another server and cached here.
// Returns nil metadata if there are no thumbnails associated with this media.
-func (d Database) GetThumbnails(ctx context.Context, mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName) ([]*types.ThumbnailMetadata, error) {
+func (d Database) GetThumbnails(ctx context.Context, mediaID types.MediaID, mediaOrigin spec.ServerName) ([]*types.ThumbnailMetadata, error) {
metadatas, err := d.Thumbnails.SelectThumbnails(ctx, nil, mediaID, mediaOrigin)
if err != nil {
if err == sql.ErrNoRows {
diff --git a/mediaapi/storage/sqlite3/media_repository_table.go b/mediaapi/storage/sqlite3/media_repository_table.go
index 78431967..625688cd 100644
--- a/mediaapi/storage/sqlite3/media_repository_table.go
+++ b/mediaapi/storage/sqlite3/media_repository_table.go
@@ -23,7 +23,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/mediaapi/storage/tables"
"github.com/matrix-org/dendrite/mediaapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const mediaSchema = `
@@ -91,7 +91,7 @@ func NewSQLiteMediaRepositoryTable(db *sql.DB) (tables.MediaRepository, error) {
func (s *mediaStatements) InsertMedia(
ctx context.Context, txn *sql.Tx, mediaMetadata *types.MediaMetadata,
) error {
- mediaMetadata.CreationTimestamp = gomatrixserverlib.AsTimestamp(time.Now())
+ mediaMetadata.CreationTimestamp = spec.AsTimestamp(time.Now())
_, err := sqlutil.TxStmtContext(ctx, txn, s.insertMediaStmt).ExecContext(
ctx,
mediaMetadata.MediaID,
@@ -107,7 +107,7 @@ func (s *mediaStatements) InsertMedia(
}
func (s *mediaStatements) SelectMedia(
- ctx context.Context, txn *sql.Tx, mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, mediaID types.MediaID, mediaOrigin spec.ServerName,
) (*types.MediaMetadata, error) {
mediaMetadata := types.MediaMetadata{
MediaID: mediaID,
@@ -127,7 +127,7 @@ func (s *mediaStatements) SelectMedia(
}
func (s *mediaStatements) SelectMediaByHash(
- ctx context.Context, txn *sql.Tx, mediaHash types.Base64Hash, mediaOrigin gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, mediaHash types.Base64Hash, mediaOrigin spec.ServerName,
) (*types.MediaMetadata, error) {
mediaMetadata := types.MediaMetadata{
Base64Hash: mediaHash,
diff --git a/mediaapi/storage/sqlite3/thumbnail_table.go b/mediaapi/storage/sqlite3/thumbnail_table.go
index 5ff2fece..259d55b7 100644
--- a/mediaapi/storage/sqlite3/thumbnail_table.go
+++ b/mediaapi/storage/sqlite3/thumbnail_table.go
@@ -24,7 +24,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/mediaapi/storage/tables"
"github.com/matrix-org/dendrite/mediaapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const thumbnailSchema = `
@@ -79,7 +79,7 @@ func NewSQLiteThumbnailsTable(db *sql.DB) (tables.Thumbnails, error) {
}
func (s *thumbnailStatements) InsertThumbnail(ctx context.Context, txn *sql.Tx, thumbnailMetadata *types.ThumbnailMetadata) error {
- thumbnailMetadata.MediaMetadata.CreationTimestamp = gomatrixserverlib.AsTimestamp(time.Now())
+ thumbnailMetadata.MediaMetadata.CreationTimestamp = spec.AsTimestamp(time.Now())
_, err := sqlutil.TxStmtContext(ctx, txn, s.insertThumbnailStmt).ExecContext(
ctx,
thumbnailMetadata.MediaMetadata.MediaID,
@@ -98,7 +98,7 @@ func (s *thumbnailStatements) SelectThumbnail(
ctx context.Context,
txn *sql.Tx,
mediaID types.MediaID,
- mediaOrigin gomatrixserverlib.ServerName,
+ mediaOrigin spec.ServerName,
width, height int,
resizeMethod string,
) (*types.ThumbnailMetadata, error) {
@@ -130,7 +130,7 @@ func (s *thumbnailStatements) SelectThumbnail(
func (s *thumbnailStatements) SelectThumbnails(
ctx context.Context, txn *sql.Tx, mediaID types.MediaID,
- mediaOrigin gomatrixserverlib.ServerName,
+ mediaOrigin spec.ServerName,
) ([]*types.ThumbnailMetadata, error) {
rows, err := sqlutil.TxStmtContext(ctx, txn, s.selectThumbnailsStmt).QueryContext(
ctx, mediaID, mediaOrigin,
diff --git a/mediaapi/storage/tables/interface.go b/mediaapi/storage/tables/interface.go
index bf63bc6a..2ff8039b 100644
--- a/mediaapi/storage/tables/interface.go
+++ b/mediaapi/storage/tables/interface.go
@@ -19,28 +19,28 @@ import (
"database/sql"
"github.com/matrix-org/dendrite/mediaapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type Thumbnails interface {
InsertThumbnail(ctx context.Context, txn *sql.Tx, thumbnailMetadata *types.ThumbnailMetadata) error
SelectThumbnail(
ctx context.Context, txn *sql.Tx,
- mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName,
+ mediaID types.MediaID, mediaOrigin spec.ServerName,
width, height int,
resizeMethod string,
) (*types.ThumbnailMetadata, error)
SelectThumbnails(
ctx context.Context, txn *sql.Tx, mediaID types.MediaID,
- mediaOrigin gomatrixserverlib.ServerName,
+ mediaOrigin spec.ServerName,
) ([]*types.ThumbnailMetadata, error)
}
type MediaRepository interface {
InsertMedia(ctx context.Context, txn *sql.Tx, mediaMetadata *types.MediaMetadata) error
- SelectMedia(ctx context.Context, txn *sql.Tx, mediaID types.MediaID, mediaOrigin gomatrixserverlib.ServerName) (*types.MediaMetadata, error)
+ SelectMedia(ctx context.Context, txn *sql.Tx, mediaID types.MediaID, mediaOrigin spec.ServerName) (*types.MediaMetadata, error)
SelectMediaByHash(
ctx context.Context, txn *sql.Tx,
- mediaHash types.Base64Hash, mediaOrigin gomatrixserverlib.ServerName,
+ mediaHash types.Base64Hash, mediaOrigin spec.ServerName,
) (*types.MediaMetadata, error)
}
diff --git a/mediaapi/types/types.go b/mediaapi/types/types.go
index ab28b341..e1c29e0f 100644
--- a/mediaapi/types/types.go
+++ b/mediaapi/types/types.go
@@ -18,7 +18,7 @@ import (
"sync"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// FileSizeBytes is a file size in bytes
@@ -48,10 +48,10 @@ type MatrixUserID string
// MediaMetadata is metadata associated with a media file
type MediaMetadata struct {
MediaID MediaID
- Origin gomatrixserverlib.ServerName
+ Origin spec.ServerName
ContentType ContentType
FileSizeBytes FileSizeBytes
- CreationTimestamp gomatrixserverlib.Timestamp
+ CreationTimestamp spec.Timestamp
UploadName Filename
Base64Hash Base64Hash
UserID MatrixUserID
diff --git a/relayapi/api/api.go b/relayapi/api/api.go
index f0ed8326..83ff2890 100644
--- a/relayapi/api/api.go
+++ b/relayapi/api/api.go
@@ -19,6 +19,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// RelayInternalAPI is used to query information from the relay server.
@@ -28,8 +29,8 @@ type RelayInternalAPI interface {
// Retrieve from external relay server all transactions stored for us and process them.
PerformRelayServerSync(
ctx context.Context,
- userID gomatrixserverlib.UserID,
- relayServer gomatrixserverlib.ServerName,
+ userID spec.UserID,
+ relayServer spec.ServerName,
) error
// Tells the relayapi whether or not it should act as a relay server for external servers.
@@ -45,13 +46,13 @@ type RelayServerAPI interface {
PerformStoreTransaction(
ctx context.Context,
transaction gomatrixserverlib.Transaction,
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
) error
// Obtain the oldest stored transaction for the specified userID.
QueryTransactions(
ctx context.Context,
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
previousEntry fclient.RelayEntry,
) (QueryRelayTransactionsResponse, error)
}
diff --git a/relayapi/internal/api.go b/relayapi/internal/api.go
index 3a5762fb..55e86aef 100644
--- a/relayapi/internal/api.go
+++ b/relayapi/internal/api.go
@@ -22,6 +22,7 @@ import (
"github.com/matrix-org/dendrite/relayapi/storage"
rsAPI "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type RelayInternalAPI struct {
@@ -31,7 +32,7 @@ type RelayInternalAPI struct {
keyRing *gomatrixserverlib.KeyRing
producer *producers.SyncAPIProducer
presenceEnabledInbound bool
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
relayingEnabledMutex sync.Mutex
relayingEnabled bool
}
@@ -43,7 +44,7 @@ func NewRelayInternalAPI(
keyRing *gomatrixserverlib.KeyRing,
producer *producers.SyncAPIProducer,
presenceEnabledInbound bool,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
relayingEnabled bool,
) *RelayInternalAPI {
return &RelayInternalAPI{
diff --git a/relayapi/internal/perform.go b/relayapi/internal/perform.go
index 66d42119..45765211 100644
--- a/relayapi/internal/perform.go
+++ b/relayapi/internal/perform.go
@@ -22,6 +22,7 @@ import (
"github.com/matrix-org/dendrite/relayapi/api"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
)
@@ -42,8 +43,8 @@ func (r *RelayInternalAPI) RelayingEnabled() bool {
// PerformRelayServerSync implements api.RelayInternalAPI
func (r *RelayInternalAPI) PerformRelayServerSync(
ctx context.Context,
- userID gomatrixserverlib.UserID,
- relayServer gomatrixserverlib.ServerName,
+ userID spec.UserID,
+ relayServer spec.ServerName,
) error {
// Providing a default RelayEntry (EntryID = 0) is done to ask the relay if there are any
// transactions available for this node.
@@ -75,7 +76,7 @@ func (r *RelayInternalAPI) PerformRelayServerSync(
func (r *RelayInternalAPI) PerformStoreTransaction(
ctx context.Context,
transaction gomatrixserverlib.Transaction,
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
) error {
logrus.Warnf("Storing transaction for %v", userID)
receipt, err := r.db.StoreTransaction(ctx, transaction)
@@ -85,7 +86,7 @@ func (r *RelayInternalAPI) PerformStoreTransaction(
}
err = r.db.AssociateTransactionWithDestinations(
ctx,
- map[gomatrixserverlib.UserID]struct{}{
+ map[spec.UserID]struct{}{
userID: {},
},
transaction.TransactionID,
@@ -97,7 +98,7 @@ func (r *RelayInternalAPI) PerformStoreTransaction(
// QueryTransactions implements api.RelayInternalAPI
func (r *RelayInternalAPI) QueryTransactions(
ctx context.Context,
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
previousEntry fclient.RelayEntry,
) (api.QueryRelayTransactionsResponse, error) {
logrus.Infof("QueryTransactions for %s", userID.Raw())
diff --git a/relayapi/internal/perform_test.go b/relayapi/internal/perform_test.go
index 2c5e1f1f..111fb46b 100644
--- a/relayapi/internal/perform_test.go
+++ b/relayapi/internal/perform_test.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
@@ -37,9 +38,9 @@ type testFedClient struct {
func (f *testFedClient) P2PGetTransactionFromRelay(
ctx context.Context,
- u gomatrixserverlib.UserID,
+ u spec.UserID,
prev fclient.RelayEntry,
- relayServer gomatrixserverlib.ServerName,
+ relayServer spec.ServerName,
) (res fclient.RespGetRelayTransaction, err error) {
f.queryCount++
if f.shouldFail {
@@ -68,7 +69,7 @@ func TestPerformRelayServerSync(t *testing.T) {
RelayQueueJSON: testDB,
}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.Nil(t, err, "Invalid userID")
fedClient := &testFedClient{}
@@ -76,7 +77,7 @@ func TestPerformRelayServerSync(t *testing.T) {
&db, fedClient, nil, nil, nil, false, "", true,
)
- err = relayAPI.PerformRelayServerSync(context.Background(), *userID, gomatrixserverlib.ServerName("relay"))
+ err = relayAPI.PerformRelayServerSync(context.Background(), *userID, spec.ServerName("relay"))
assert.NoError(t, err)
}
@@ -88,7 +89,7 @@ func TestPerformRelayServerSyncFedError(t *testing.T) {
RelayQueueJSON: testDB,
}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.Nil(t, err, "Invalid userID")
fedClient := &testFedClient{shouldFail: true}
@@ -96,7 +97,7 @@ func TestPerformRelayServerSyncFedError(t *testing.T) {
&db, fedClient, nil, nil, nil, false, "", true,
)
- err = relayAPI.PerformRelayServerSync(context.Background(), *userID, gomatrixserverlib.ServerName("relay"))
+ err = relayAPI.PerformRelayServerSync(context.Background(), *userID, spec.ServerName("relay"))
assert.Error(t, err)
}
@@ -108,7 +109,7 @@ func TestPerformRelayServerSyncRunsUntilQueueEmpty(t *testing.T) {
RelayQueueJSON: testDB,
}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.Nil(t, err, "Invalid userID")
fedClient := &testFedClient{queueDepth: 2}
@@ -116,7 +117,7 @@ func TestPerformRelayServerSyncRunsUntilQueueEmpty(t *testing.T) {
&db, fedClient, nil, nil, nil, false, "", true,
)
- err = relayAPI.PerformRelayServerSync(context.Background(), *userID, gomatrixserverlib.ServerName("relay"))
+ err = relayAPI.PerformRelayServerSync(context.Background(), *userID, spec.ServerName("relay"))
assert.NoError(t, err)
assert.Equal(t, uint(3), fedClient.queryCount)
}
diff --git a/relayapi/relayapi_test.go b/relayapi/relayapi_test.go
index 27426221..9d67cdf9 100644
--- a/relayapi/relayapi_test.go
+++ b/relayapi/relayapi_test.go
@@ -33,6 +33,7 @@ import (
"github.com/matrix-org/dendrite/test/testrig"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
@@ -74,12 +75,12 @@ func TestCreateInvalidRelayPublicRoutesPanics(t *testing.T) {
})
}
-func createGetRelayTxnHTTPRequest(serverName gomatrixserverlib.ServerName, userID string) *http.Request {
+func createGetRelayTxnHTTPRequest(serverName spec.ServerName, userID string) *http.Request {
_, sk, _ := ed25519.GenerateKey(nil)
keyID := signing.KeyID
pk := sk.Public().(ed25519.PublicKey)
- origin := gomatrixserverlib.ServerName(hex.EncodeToString(pk))
- req := gomatrixserverlib.NewFederationRequest("GET", origin, serverName, "/_matrix/federation/v1/relay_txn/"+userID)
+ origin := spec.ServerName(hex.EncodeToString(pk))
+ req := fclient.NewFederationRequest("GET", origin, serverName, "/_matrix/federation/v1/relay_txn/"+userID)
content := fclient.RelayEntry{EntryID: 0}
req.SetContent(content)
req.Sign(origin, gomatrixserverlib.KeyID(keyID), sk)
@@ -94,12 +95,12 @@ type sendRelayContent struct {
EDUs []gomatrixserverlib.EDU `json:"edus"`
}
-func createSendRelayTxnHTTPRequest(serverName gomatrixserverlib.ServerName, txnID string, userID string) *http.Request {
+func createSendRelayTxnHTTPRequest(serverName spec.ServerName, txnID string, userID string) *http.Request {
_, sk, _ := ed25519.GenerateKey(nil)
keyID := signing.KeyID
pk := sk.Public().(ed25519.PublicKey)
- origin := gomatrixserverlib.ServerName(hex.EncodeToString(pk))
- req := gomatrixserverlib.NewFederationRequest("PUT", origin, serverName, "/_matrix/federation/v1/send_relay/"+txnID+"/"+userID)
+ origin := spec.ServerName(hex.EncodeToString(pk))
+ req := fclient.NewFederationRequest("PUT", origin, serverName, "/_matrix/federation/v1/send_relay/"+txnID+"/"+userID)
content := sendRelayContent{}
req.SetContent(content)
req.Sign(origin, gomatrixserverlib.KeyID(keyID), sk)
diff --git a/relayapi/routing/relaytxn.go b/relayapi/routing/relaytxn.go
index 06a2a07f..2fc61373 100644
--- a/relayapi/routing/relaytxn.go
+++ b/relayapi/routing/relaytxn.go
@@ -20,8 +20,8 @@ import (
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/relayapi/api"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
)
@@ -30,9 +30,9 @@ import (
// This endpoint can be extracted into a separate relay server service.
func GetTransactionFromRelay(
httpReq *http.Request,
- fedReq *gomatrixserverlib.FederationRequest,
+ fedReq *fclient.FederationRequest,
relayAPI api.RelayInternalAPI,
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
) util.JSONResponse {
logrus.Infof("Processing relay_txn for %s", userID.Raw())
diff --git a/relayapi/routing/relaytxn_test.go b/relayapi/routing/relaytxn_test.go
index bc76ddf2..e6d2d9e5 100644
--- a/relayapi/routing/relaytxn_test.go
+++ b/relayapi/routing/relaytxn_test.go
@@ -26,16 +26,17 @@ import (
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
func createQuery(
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
prevEntry fclient.RelayEntry,
-) gomatrixserverlib.FederationRequest {
+) fclient.FederationRequest {
var federationPathPrefixV1 = "/_matrix/federation/v1"
path := federationPathPrefixV1 + "/relay_txn/" + userID.Raw()
- request := gomatrixserverlib.NewFederationRequest("GET", userID.Domain(), "relay", path)
+ request := fclient.NewFederationRequest("GET", userID.Domain(), "relay", path)
request.SetContent(prevEntry)
return request
@@ -49,7 +50,7 @@ func TestGetEmptyDatabaseReturnsNothing(t *testing.T) {
RelayQueueJSON: testDB,
}
httpReq := &http.Request{}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.NoError(t, err, "Invalid userID")
transaction := createTransaction()
@@ -82,7 +83,7 @@ func TestGetInvalidPrevEntryFails(t *testing.T) {
RelayQueueJSON: testDB,
}
httpReq := &http.Request{}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.NoError(t, err, "Invalid userID")
transaction := createTransaction()
@@ -107,7 +108,7 @@ func TestGetReturnsSavedTransaction(t *testing.T) {
RelayQueueJSON: testDB,
}
httpReq := &http.Request{}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.NoError(t, err, "Invalid userID")
transaction := createTransaction()
@@ -116,7 +117,7 @@ func TestGetReturnsSavedTransaction(t *testing.T) {
err = db.AssociateTransactionWithDestinations(
context.Background(),
- map[gomatrixserverlib.UserID]struct{}{
+ map[spec.UserID]struct{}{
*userID: {},
},
transaction.TransactionID,
@@ -157,7 +158,7 @@ func TestGetReturnsMultipleSavedTransactions(t *testing.T) {
RelayQueueJSON: testDB,
}
httpReq := &http.Request{}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.NoError(t, err, "Invalid userID")
transaction := createTransaction()
@@ -166,7 +167,7 @@ func TestGetReturnsMultipleSavedTransactions(t *testing.T) {
err = db.AssociateTransactionWithDestinations(
context.Background(),
- map[gomatrixserverlib.UserID]struct{}{
+ map[spec.UserID]struct{}{
*userID: {},
},
transaction.TransactionID,
@@ -179,7 +180,7 @@ func TestGetReturnsMultipleSavedTransactions(t *testing.T) {
err = db.AssociateTransactionWithDestinations(
context.Background(),
- map[gomatrixserverlib.UserID]struct{}{
+ map[spec.UserID]struct{}{
*userID: {},
},
transaction2.TransactionID,
diff --git a/relayapi/routing/routing.go b/relayapi/routing/routing.go
index 8ee0743e..6140d032 100644
--- a/relayapi/routing/routing.go
+++ b/relayapi/routing/routing.go
@@ -26,6 +26,8 @@ import (
relayInternal "github.com/matrix-org/dendrite/relayapi/internal"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
)
@@ -44,7 +46,7 @@ func Setup(
v1fedmux.Handle("/send_relay/{txnID}/{userID}", MakeRelayAPI(
"send_relay_transaction", "", cfg.Matrix.IsLocalServerName, keys,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
logrus.Infof("Handling send_relay from: %s", request.Origin())
if !relayAPI.RelayingEnabled() {
logrus.Warnf("Dropping send_relay from: %s", request.Origin())
@@ -53,7 +55,7 @@ func Setup(
}
}
- userID, err := gomatrixserverlib.NewUserID(vars["userID"], false)
+ userID, err := spec.NewUserID(vars["userID"], false)
if err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
@@ -69,7 +71,7 @@ func Setup(
v1fedmux.Handle("/relay_txn/{userID}", MakeRelayAPI(
"get_relay_transaction", "", cfg.Matrix.IsLocalServerName, keys,
- func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest, vars map[string]string) util.JSONResponse {
+ func(httpReq *http.Request, request *fclient.FederationRequest, vars map[string]string) util.JSONResponse {
logrus.Infof("Handling relay_txn from: %s", request.Origin())
if !relayAPI.RelayingEnabled() {
logrus.Warnf("Dropping relay_txn from: %s", request.Origin())
@@ -78,7 +80,7 @@ func Setup(
}
}
- userID, err := gomatrixserverlib.NewUserID(vars["userID"], false)
+ userID, err := spec.NewUserID(vars["userID"], false)
if err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
@@ -92,13 +94,13 @@ func Setup(
// MakeRelayAPI makes an http.Handler that checks matrix relay authentication.
func MakeRelayAPI(
- metricsName string, serverName gomatrixserverlib.ServerName,
- isLocalServerName func(gomatrixserverlib.ServerName) bool,
+ metricsName string, serverName spec.ServerName,
+ isLocalServerName func(spec.ServerName) bool,
keyRing gomatrixserverlib.JSONVerifier,
- f func(*http.Request, *gomatrixserverlib.FederationRequest, map[string]string) util.JSONResponse,
+ f func(*http.Request, *fclient.FederationRequest, map[string]string) util.JSONResponse,
) http.Handler {
h := func(req *http.Request) util.JSONResponse {
- fedReq, errResp := gomatrixserverlib.VerifyHTTPRequest(
+ fedReq, errResp := fclient.VerifyHTTPRequest(
req, time.Now(), serverName, isLocalServerName, keyRing,
)
if fedReq == nil {
diff --git a/relayapi/routing/sendrelay.go b/relayapi/routing/sendrelay.go
index 84c24103..e4794dc4 100644
--- a/relayapi/routing/sendrelay.go
+++ b/relayapi/routing/sendrelay.go
@@ -22,6 +22,7 @@ import (
"github.com/matrix-org/dendrite/relayapi/api"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
)
@@ -30,10 +31,10 @@ import (
// This endpoint can be extracted into a separate relay server service.
func SendTransactionToRelay(
httpReq *http.Request,
- fedReq *gomatrixserverlib.FederationRequest,
+ fedReq *fclient.FederationRequest,
relayAPI api.RelayInternalAPI,
txnID gomatrixserverlib.TransactionID,
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
) util.JSONResponse {
logrus.Infof("Processing send_relay for %s", userID.Raw())
diff --git a/relayapi/routing/sendrelay_test.go b/relayapi/routing/sendrelay_test.go
index 66594c47..05dfbe6d 100644
--- a/relayapi/routing/sendrelay_test.go
+++ b/relayapi/routing/sendrelay_test.go
@@ -26,11 +26,13 @@ import (
"github.com/matrix-org/dendrite/relayapi/storage/shared"
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
const (
- testOrigin = gomatrixserverlib.ServerName("kaer.morhen")
+ testOrigin = spec.ServerName("kaer.morhen")
)
func createTransaction() gomatrixserverlib.Transaction {
@@ -43,15 +45,15 @@ func createTransaction() gomatrixserverlib.Transaction {
}
func createFederationRequest(
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
txnID gomatrixserverlib.TransactionID,
- origin gomatrixserverlib.ServerName,
- destination gomatrixserverlib.ServerName,
+ origin spec.ServerName,
+ destination spec.ServerName,
content interface{},
-) gomatrixserverlib.FederationRequest {
+) fclient.FederationRequest {
var federationPathPrefixV1 = "/_matrix/federation/v1"
path := federationPathPrefixV1 + "/send_relay/" + string(txnID) + "/" + userID.Raw()
- request := gomatrixserverlib.NewFederationRequest("PUT", origin, destination, path)
+ request := fclient.NewFederationRequest("PUT", origin, destination, path)
request.SetContent(content)
return request
@@ -65,7 +67,7 @@ func TestForwardEmptyReturnsOk(t *testing.T) {
RelayQueueJSON: testDB,
}
httpReq := &http.Request{}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.NoError(t, err, "Invalid userID")
txn := createTransaction()
@@ -88,7 +90,7 @@ func TestForwardBadJSONReturnsError(t *testing.T) {
RelayQueueJSON: testDB,
}
httpReq := &http.Request{}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.NoError(t, err, "Invalid userID")
type BadData struct {
@@ -117,7 +119,7 @@ func TestForwardTooManyPDUsReturnsError(t *testing.T) {
RelayQueueJSON: testDB,
}
httpReq := &http.Request{}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.NoError(t, err, "Invalid userID")
type BadData struct {
@@ -151,7 +153,7 @@ func TestForwardTooManyEDUsReturnsError(t *testing.T) {
RelayQueueJSON: testDB,
}
httpReq := &http.Request{}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.NoError(t, err, "Invalid userID")
type BadData struct {
@@ -161,7 +163,7 @@ func TestForwardTooManyEDUsReturnsError(t *testing.T) {
Field: []gomatrixserverlib.EDU{},
}
for i := 0; i < 101; i++ {
- content.Field = append(content.Field, gomatrixserverlib.EDU{Type: gomatrixserverlib.MTyping})
+ content.Field = append(content.Field, gomatrixserverlib.EDU{Type: spec.MTyping})
}
assert.Greater(t, len(content.Field), 100)
@@ -185,7 +187,7 @@ func TestUniqueTransactionStoredInDatabase(t *testing.T) {
RelayQueueJSON: testDB,
}
httpReq := &http.Request{}
- userID, err := gomatrixserverlib.NewUserID("@local:domain", false)
+ userID, err := spec.NewUserID("@local:domain", false)
assert.NoError(t, err, "Invalid userID")
txn := createTransaction()
diff --git a/relayapi/storage/interface.go b/relayapi/storage/interface.go
index f5f9a06e..bc1722cd 100644
--- a/relayapi/storage/interface.go
+++ b/relayapi/storage/interface.go
@@ -19,6 +19,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/storage/shared/receipt"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type Database interface {
@@ -29,19 +30,19 @@ type Database interface {
// Adds a new transaction_id: server_name mapping with associated json table nid to the queue
// entry table for each provided destination.
- AssociateTransactionWithDestinations(ctx context.Context, destinations map[gomatrixserverlib.UserID]struct{}, transactionID gomatrixserverlib.TransactionID, dbReceipt *receipt.Receipt) error
+ AssociateTransactionWithDestinations(ctx context.Context, destinations map[spec.UserID]struct{}, transactionID gomatrixserverlib.TransactionID, dbReceipt *receipt.Receipt) error
// Removes every server_name: receipt pair provided from the queue entries table.
// Will then remove every entry for each receipt provided from the queue json table.
// If any of the entries don't exist in either table, nothing will happen for that entry and
// an error will not be generated.
- CleanTransactions(ctx context.Context, userID gomatrixserverlib.UserID, receipts []*receipt.Receipt) error
+ CleanTransactions(ctx context.Context, userID spec.UserID, receipts []*receipt.Receipt) error
// Gets the oldest transaction for the provided server_name.
// If no transactions exist, returns nil and no error.
- GetTransaction(ctx context.Context, userID gomatrixserverlib.UserID) (*gomatrixserverlib.Transaction, *receipt.Receipt, error)
+ GetTransaction(ctx context.Context, userID spec.UserID) (*gomatrixserverlib.Transaction, *receipt.Receipt, error)
// Gets the number of transactions being stored for the provided server_name.
// If the server doesn't exist in the database then 0 is returned with no error.
- GetTransactionCount(ctx context.Context, userID gomatrixserverlib.UserID) (int64, error)
+ GetTransactionCount(ctx context.Context, userID spec.UserID) (int64, error)
}
diff --git a/relayapi/storage/postgres/relay_queue_table.go b/relayapi/storage/postgres/relay_queue_table.go
index e97cf8cc..5873af76 100644
--- a/relayapi/storage/postgres/relay_queue_table.go
+++ b/relayapi/storage/postgres/relay_queue_table.go
@@ -22,6 +22,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const relayQueueSchema = `
@@ -90,7 +91,7 @@ func (s *relayQueueStatements) InsertQueueEntry(
ctx context.Context,
txn *sql.Tx,
transactionID gomatrixserverlib.TransactionID,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
nid int64,
) error {
stmt := sqlutil.TxStmt(txn, s.insertQueueEntryStmt)
@@ -106,7 +107,7 @@ func (s *relayQueueStatements) InsertQueueEntry(
func (s *relayQueueStatements) DeleteQueueEntries(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
jsonNIDs []int64,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteQueueEntriesStmt)
@@ -117,7 +118,7 @@ func (s *relayQueueStatements) DeleteQueueEntries(
func (s *relayQueueStatements) SelectQueueEntries(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
limit int,
) ([]int64, error) {
stmt := sqlutil.TxStmt(txn, s.selectQueueEntriesStmt)
@@ -141,7 +142,7 @@ func (s *relayQueueStatements) SelectQueueEntries(
func (s *relayQueueStatements) SelectQueueEntryCount(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (int64, error) {
var count int64
stmt := sqlutil.TxStmt(txn, s.selectQueueEntryCountStmt)
diff --git a/relayapi/storage/postgres/storage.go b/relayapi/storage/postgres/storage.go
index 78bbaf1c..35c08c28 100644
--- a/relayapi/storage/postgres/storage.go
+++ b/relayapi/storage/postgres/storage.go
@@ -21,7 +21,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/relayapi/storage/shared"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// Database stores information needed by the relayapi
@@ -36,7 +36,7 @@ func NewDatabase(
conMan sqlutil.Connections,
dbProperties *config.DatabaseOptions,
cache caching.FederationCache,
- isLocalServerName func(gomatrixserverlib.ServerName) bool,
+ isLocalServerName func(spec.ServerName) bool,
) (*Database, error) {
var d Database
var err error
diff --git a/relayapi/storage/shared/storage.go b/relayapi/storage/shared/storage.go
index 0993707b..fc1f12e7 100644
--- a/relayapi/storage/shared/storage.go
+++ b/relayapi/storage/shared/storage.go
@@ -25,11 +25,12 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/relayapi/storage/tables"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type Database struct {
DB *sql.DB
- IsLocalServerName func(gomatrixserverlib.ServerName) bool
+ IsLocalServerName func(spec.ServerName) bool
Cache caching.FederationCache
Writer sqlutil.Writer
RelayQueue tables.RelayQueue
@@ -61,7 +62,7 @@ func (d *Database) StoreTransaction(
func (d *Database) AssociateTransactionWithDestinations(
ctx context.Context,
- destinations map[gomatrixserverlib.UserID]struct{},
+ destinations map[spec.UserID]struct{},
transactionID gomatrixserverlib.TransactionID,
dbReceipt *receipt.Receipt,
) error {
@@ -88,7 +89,7 @@ func (d *Database) AssociateTransactionWithDestinations(
func (d *Database) CleanTransactions(
ctx context.Context,
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
receipts []*receipt.Receipt,
) error {
nids := make([]int64, len(receipts))
@@ -123,7 +124,7 @@ func (d *Database) CleanTransactions(
func (d *Database) GetTransaction(
ctx context.Context,
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
) (*gomatrixserverlib.Transaction, *receipt.Receipt, error) {
entriesRequested := 1
nids, err := d.RelayQueue.SelectQueueEntries(ctx, nil, userID.Domain(), entriesRequested)
@@ -160,7 +161,7 @@ func (d *Database) GetTransaction(
func (d *Database) GetTransactionCount(
ctx context.Context,
- userID gomatrixserverlib.UserID,
+ userID spec.UserID,
) (int64, error) {
count, err := d.RelayQueue.SelectQueueEntryCount(ctx, nil, userID.Domain())
if err != nil {
diff --git a/relayapi/storage/sqlite3/relay_queue_table.go b/relayapi/storage/sqlite3/relay_queue_table.go
index 49c6b4de..30482ae9 100644
--- a/relayapi/storage/sqlite3/relay_queue_table.go
+++ b/relayapi/storage/sqlite3/relay_queue_table.go
@@ -23,6 +23,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const relayQueueSchema = `
@@ -90,7 +91,7 @@ func (s *relayQueueStatements) InsertQueueEntry(
ctx context.Context,
txn *sql.Tx,
transactionID gomatrixserverlib.TransactionID,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
nid int64,
) error {
stmt := sqlutil.TxStmt(txn, s.insertQueueEntryStmt)
@@ -106,7 +107,7 @@ func (s *relayQueueStatements) InsertQueueEntry(
func (s *relayQueueStatements) DeleteQueueEntries(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
jsonNIDs []int64,
) error {
deleteSQL := strings.Replace(deleteQueueEntriesSQL, "($2)", sqlutil.QueryVariadicOffset(len(jsonNIDs), 1), 1)
@@ -129,7 +130,7 @@ func (s *relayQueueStatements) DeleteQueueEntries(
func (s *relayQueueStatements) SelectQueueEntries(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
limit int,
) ([]int64, error) {
stmt := sqlutil.TxStmt(txn, s.selectQueueEntriesStmt)
@@ -153,7 +154,7 @@ func (s *relayQueueStatements) SelectQueueEntries(
func (s *relayQueueStatements) SelectQueueEntryCount(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (int64, error) {
var count int64
stmt := sqlutil.TxStmt(txn, s.selectQueueEntryCountStmt)
diff --git a/relayapi/storage/sqlite3/storage.go b/relayapi/storage/sqlite3/storage.go
index da2cf9f7..7b46396f 100644
--- a/relayapi/storage/sqlite3/storage.go
+++ b/relayapi/storage/sqlite3/storage.go
@@ -21,7 +21,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/relayapi/storage/shared"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// Database stores information needed by the federation sender
@@ -36,7 +36,7 @@ func NewDatabase(
conMan sqlutil.Connections,
dbProperties *config.DatabaseOptions,
cache caching.FederationCache,
- isLocalServerName func(gomatrixserverlib.ServerName) bool,
+ isLocalServerName func(spec.ServerName) bool,
) (*Database, error) {
var d Database
var err error
diff --git a/relayapi/storage/storage.go b/relayapi/storage/storage.go
index 17d9e6c7..6fce1efe 100644
--- a/relayapi/storage/storage.go
+++ b/relayapi/storage/storage.go
@@ -25,7 +25,7 @@ import (
"github.com/matrix-org/dendrite/relayapi/storage/postgres"
"github.com/matrix-org/dendrite/relayapi/storage/sqlite3"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// NewDatabase opens a new database
@@ -33,7 +33,7 @@ func NewDatabase(
conMan sqlutil.Connections,
dbProperties *config.DatabaseOptions,
cache caching.FederationCache,
- isLocalServerName func(gomatrixserverlib.ServerName) bool,
+ isLocalServerName func(spec.ServerName) bool,
) (Database, error) {
switch {
case dbProperties.ConnectionString.IsSQLite():
diff --git a/relayapi/storage/storage_wasm.go b/relayapi/storage/storage_wasm.go
index 92847e1b..7e732334 100644
--- a/relayapi/storage/storage_wasm.go
+++ b/relayapi/storage/storage_wasm.go
@@ -29,7 +29,7 @@ func NewDatabase(
conMan sqlutil.Connections,
dbProperties *config.DatabaseOptions,
cache caching.FederationCache,
- isLocalServerName func(gomatrixserverlib.ServerName) bool,
+ isLocalServerName func(spec.ServerName) bool,
) (Database, error) {
switch {
case dbProperties.ConnectionString.IsSQLite():
diff --git a/relayapi/storage/tables/interface.go b/relayapi/storage/tables/interface.go
index 9056a567..27f43a8d 100644
--- a/relayapi/storage/tables/interface.go
+++ b/relayapi/storage/tables/interface.go
@@ -19,6 +19,7 @@ import (
"database/sql"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// RelayQueue table contains a mapping of server name to transaction id and the corresponding nid.
@@ -28,21 +29,21 @@ type RelayQueue interface {
// Adds a new transaction_id: server_name mapping with associated json table nid to the table.
// Will ensure only one transaction id is present for each server_name: nid mapping.
// Adding duplicates will silently do nothing.
- InsertQueueEntry(ctx context.Context, txn *sql.Tx, transactionID gomatrixserverlib.TransactionID, serverName gomatrixserverlib.ServerName, nid int64) error
+ InsertQueueEntry(ctx context.Context, txn *sql.Tx, transactionID gomatrixserverlib.TransactionID, serverName spec.ServerName, nid int64) error
// Removes multiple entries from the table corresponding the the list of nids provided.
// If any of the provided nids don't match a row in the table, that deletion is considered
// successful.
- DeleteQueueEntries(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, jsonNIDs []int64) error
+ DeleteQueueEntries(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, jsonNIDs []int64) error
// Get a list of nids associated with the provided server name.
// Returns up to `limit` nids. The entries are returned oldest first.
// Will return an empty list if no matches were found.
- SelectQueueEntries(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, limit int) ([]int64, error)
+ SelectQueueEntries(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, limit int) ([]int64, error)
// Get the number of entries in the table associated with the provided server name.
// If there are no matching rows, a count of 0 is returned with err set to nil.
- SelectQueueEntryCount(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) (int64, error)
+ SelectQueueEntryCount(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) (int64, error)
}
// RelayQueueJSON table contains a map of nid to the raw transaction json.
diff --git a/relayapi/storage/tables/relay_queue_json_table_test.go b/relayapi/storage/tables/relay_queue_json_table_test.go
index efa3363e..97af7eae 100644
--- a/relayapi/storage/tables/relay_queue_json_table_test.go
+++ b/relayapi/storage/tables/relay_queue_json_table_test.go
@@ -27,11 +27,12 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
const (
- testOrigin = gomatrixserverlib.ServerName("kaer.morhen")
+ testOrigin = spec.ServerName("kaer.morhen")
)
func mustCreateTransaction() gomatrixserverlib.Transaction {
diff --git a/relayapi/storage/tables/relay_queue_table_test.go b/relayapi/storage/tables/relay_queue_table_test.go
index 99f9922c..d196eaf5 100644
--- a/relayapi/storage/tables/relay_queue_table_test.go
+++ b/relayapi/storage/tables/relay_queue_table_test.go
@@ -28,6 +28,7 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
@@ -73,7 +74,7 @@ func TestShoudInsertQueueTransaction(t *testing.T) {
defer close()
transactionID := gomatrixserverlib.TransactionID(fmt.Sprintf("%d", time.Now().UnixNano()))
- serverName := gomatrixserverlib.ServerName("domain")
+ serverName := spec.ServerName("domain")
nid := int64(1)
err := db.Table.InsertQueueEntry(ctx, nil, transactionID, serverName, nid)
if err != nil {
@@ -89,7 +90,7 @@ func TestShouldRetrieveInsertedQueueTransaction(t *testing.T) {
defer close()
transactionID := gomatrixserverlib.TransactionID(fmt.Sprintf("%d", time.Now().UnixNano()))
- serverName := gomatrixserverlib.ServerName("domain")
+ serverName := spec.ServerName("domain")
nid := int64(1)
err := db.Table.InsertQueueEntry(ctx, nil, transactionID, serverName, nid)
@@ -114,7 +115,7 @@ func TestShouldRetrieveOldestInsertedQueueTransaction(t *testing.T) {
defer close()
transactionID := gomatrixserverlib.TransactionID(fmt.Sprintf("%d", time.Now().UnixNano()))
- serverName := gomatrixserverlib.ServerName("domain")
+ serverName := spec.ServerName("domain")
nid := int64(2)
err := db.Table.InsertQueueEntry(ctx, nil, transactionID, serverName, nid)
if err != nil {
@@ -122,7 +123,7 @@ func TestShouldRetrieveOldestInsertedQueueTransaction(t *testing.T) {
}
transactionID = gomatrixserverlib.TransactionID(fmt.Sprintf("%d", time.Now().UnixNano()))
- serverName = gomatrixserverlib.ServerName("domain")
+ serverName = spec.ServerName("domain")
oldestNID := int64(1)
err = db.Table.InsertQueueEntry(ctx, nil, transactionID, serverName, oldestNID)
if err != nil {
@@ -155,7 +156,7 @@ func TestShouldDeleteQueueTransaction(t *testing.T) {
defer close()
transactionID := gomatrixserverlib.TransactionID(fmt.Sprintf("%d", time.Now().UnixNano()))
- serverName := gomatrixserverlib.ServerName("domain")
+ serverName := spec.ServerName("domain")
nid := int64(1)
err := db.Table.InsertQueueEntry(ctx, nil, transactionID, serverName, nid)
@@ -186,10 +187,10 @@ func TestShouldDeleteOnlySpecifiedQueueTransaction(t *testing.T) {
defer close()
transactionID := gomatrixserverlib.TransactionID(fmt.Sprintf("%d", time.Now().UnixNano()))
- serverName := gomatrixserverlib.ServerName("domain")
+ serverName := spec.ServerName("domain")
nid := int64(1)
transactionID2 := gomatrixserverlib.TransactionID(fmt.Sprintf("%d2", time.Now().UnixNano()))
- serverName2 := gomatrixserverlib.ServerName("domain2")
+ serverName2 := spec.ServerName("domain2")
nid2 := int64(2)
transactionID3 := gomatrixserverlib.TransactionID(fmt.Sprintf("%d3", time.Now().UnixNano()))
diff --git a/roomserver/acls/acls.go b/roomserver/acls/acls.go
index b18daa3d..80d45e8c 100644
--- a/roomserver/acls/acls.go
+++ b/roomserver/acls/acls.go
@@ -24,6 +24,7 @@ import (
"sync"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
)
@@ -120,7 +121,7 @@ func (s *ServerACLs) OnServerACLUpdate(state *gomatrixserverlib.Event) {
s.acls[state.RoomID()] = acls
}
-func (s *ServerACLs) IsServerBannedFromRoom(serverName gomatrixserverlib.ServerName, roomID string) bool {
+func (s *ServerACLs) IsServerBannedFromRoom(serverName spec.ServerName, roomID string) bool {
s.aclsMutex.RLock()
// First of all check if we have an ACL for this room. If we don't then
// no servers are banned from the room.
@@ -133,7 +134,7 @@ func (s *ServerACLs) IsServerBannedFromRoom(serverName gomatrixserverlib.ServerN
// Split the host and port apart. This is because the spec calls on us to
// validate the hostname only in cases where the port is also present.
if serverNameOnly, _, err := net.SplitHostPort(string(serverName)); err == nil {
- serverName = gomatrixserverlib.ServerName(serverNameOnly)
+ serverName = spec.ServerName(serverNameOnly)
}
// Check if the hostname is an IPv4 or IPv6 literal. We cheat here by adding
// a /0 prefix length just to trick ParseCIDR into working. If we find that
diff --git a/roomserver/api/api.go b/roomserver/api/api.go
index dda5bb5a..4ce40e3e 100644
--- a/roomserver/api/api.go
+++ b/roomserver/api/api.go
@@ -4,6 +4,7 @@ import (
"context"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
asAPI "github.com/matrix-org/dendrite/appservice/api"
fsAPI "github.com/matrix-org/dendrite/federationapi/api"
@@ -197,7 +198,7 @@ type FederationRoomserverAPI interface {
// Query missing events for a room from roomserver
QueryMissingEvents(ctx context.Context, req *QueryMissingEventsRequest, res *QueryMissingEventsResponse) error
// Query whether a server is allowed to see an event
- QueryServerAllowedToSeeEvent(ctx context.Context, serverName gomatrixserverlib.ServerName, eventID string) (allowed bool, err error)
+ QueryServerAllowedToSeeEvent(ctx context.Context, serverName spec.ServerName, eventID string) (allowed bool, err error)
QueryRoomsForUser(ctx context.Context, req *QueryRoomsForUserRequest, res *QueryRoomsForUserResponse) error
QueryRestrictedJoinAllowed(ctx context.Context, req *QueryRestrictedJoinAllowedRequest, res *QueryRestrictedJoinAllowedResponse) error
PerformInboundPeek(ctx context.Context, req *PerformInboundPeekRequest, res *PerformInboundPeekResponse) error
diff --git a/roomserver/api/input.go b/roomserver/api/input.go
index 88d52327..b52317cd 100644
--- a/roomserver/api/input.go
+++ b/roomserver/api/input.go
@@ -19,6 +19,7 @@ import (
"fmt"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type Kind int
@@ -68,7 +69,7 @@ type InputRoomEvent struct {
// The event JSON for the event to add.
Event *gomatrixserverlib.HeaderedEvent `json:"event"`
// Which server told us about this event.
- Origin gomatrixserverlib.ServerName `json:"origin"`
+ Origin spec.ServerName `json:"origin"`
// Whether the state is supplied as a list of event IDs or whether it
// should be derived from the state at the previous events.
HasState bool `json:"has_state"`
@@ -94,9 +95,9 @@ type TransactionID struct {
// InputRoomEventsRequest is a request to InputRoomEvents
type InputRoomEventsRequest struct {
- InputRoomEvents []InputRoomEvent `json:"input_room_events"`
- Asynchronous bool `json:"async"`
- VirtualHost gomatrixserverlib.ServerName `json:"virtual_host"`
+ InputRoomEvents []InputRoomEvent `json:"input_room_events"`
+ Asynchronous bool `json:"async"`
+ VirtualHost spec.ServerName `json:"virtual_host"`
}
// InputRoomEventsResponse is a response to InputRoomEvents
diff --git a/roomserver/api/output.go b/roomserver/api/output.go
index 0c0f52c4..73788747 100644
--- a/roomserver/api/output.go
+++ b/roomserver/api/output.go
@@ -16,6 +16,7 @@ package api
import (
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// An OutputType is a type of roomserver output.
@@ -250,7 +251,7 @@ type OutputNewInboundPeek struct {
// a race between tracking the state returned by /peek and emitting subsequent
// peeked events)
LatestEventID string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
// how often we told the peeking server to renew the peek
RenewalInterval int64
}
diff --git a/roomserver/api/perform.go b/roomserver/api/perform.go
index 83cb0460..e125a300 100644
--- a/roomserver/api/perform.go
+++ b/roomserver/api/perform.go
@@ -6,6 +6,8 @@ import (
"net/http"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
@@ -76,18 +78,18 @@ const (
)
type PerformJoinRequest struct {
- RoomIDOrAlias string `json:"room_id_or_alias"`
- UserID string `json:"user_id"`
- IsGuest bool `json:"is_guest"`
- Content map[string]interface{} `json:"content"`
- ServerNames []gomatrixserverlib.ServerName `json:"server_names"`
- Unsigned map[string]interface{} `json:"unsigned"`
+ RoomIDOrAlias string `json:"room_id_or_alias"`
+ UserID string `json:"user_id"`
+ IsGuest bool `json:"is_guest"`
+ Content map[string]interface{} `json:"content"`
+ ServerNames []spec.ServerName `json:"server_names"`
+ Unsigned map[string]interface{} `json:"unsigned"`
}
type PerformJoinResponse struct {
// The room ID, populated on success.
RoomID string `json:"room_id"`
- JoinedVia gomatrixserverlib.ServerName
+ JoinedVia spec.ServerName
// If non-nil, the join request failed. Contains more information why it failed.
Error *PerformError
}
@@ -103,11 +105,11 @@ type PerformLeaveResponse struct {
}
type PerformInviteRequest struct {
- RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
- Event *gomatrixserverlib.HeaderedEvent `json:"event"`
- InviteRoomState []gomatrixserverlib.InviteV2StrippedState `json:"invite_room_state"`
- SendAsServer string `json:"send_as_server"`
- TransactionID *TransactionID `json:"transaction_id"`
+ RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
+ Event *gomatrixserverlib.HeaderedEvent `json:"event"`
+ InviteRoomState []fclient.InviteV2StrippedState `json:"invite_room_state"`
+ SendAsServer string `json:"send_as_server"`
+ TransactionID *TransactionID `json:"transaction_id"`
}
type PerformInviteResponse struct {
@@ -115,10 +117,10 @@ type PerformInviteResponse struct {
}
type PerformPeekRequest struct {
- RoomIDOrAlias string `json:"room_id_or_alias"`
- UserID string `json:"user_id"`
- DeviceID string `json:"device_id"`
- ServerNames []gomatrixserverlib.ServerName `json:"server_names"`
+ RoomIDOrAlias string `json:"room_id_or_alias"`
+ UserID string `json:"user_id"`
+ DeviceID string `json:"device_id"`
+ ServerNames []spec.ServerName `json:"server_names"`
}
type PerformPeekResponse struct {
@@ -148,9 +150,9 @@ type PerformBackfillRequest struct {
// The maximum number of events to retrieve.
Limit int `json:"limit"`
// The server interested in the events.
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ ServerName spec.ServerName `json:"server_name"`
// Which virtual host are we doing this for?
- VirtualHost gomatrixserverlib.ServerName `json:"virtual_host"`
+ VirtualHost spec.ServerName `json:"virtual_host"`
}
// PrevEventIDs returns the prev_event IDs of all backwards extremities, de-duplicated in a lexicographically sorted order.
@@ -183,11 +185,11 @@ type PerformPublishResponse struct {
}
type PerformInboundPeekRequest struct {
- UserID string `json:"user_id"`
- RoomID string `json:"room_id"`
- PeekID string `json:"peek_id"`
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
- RenewalInterval int64 `json:"renewal_interval"`
+ UserID string `json:"user_id"`
+ RoomID string `json:"room_id"`
+ PeekID string `json:"peek_id"`
+ ServerName spec.ServerName `json:"server_name"`
+ RenewalInterval int64 `json:"renewal_interval"`
}
type PerformInboundPeekResponse struct {
@@ -250,9 +252,9 @@ type PerformAdminPurgeRoomResponse struct {
}
type PerformAdminDownloadStateRequest struct {
- RoomID string `json:"room_id"`
- UserID string `json:"user_id"`
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ RoomID string `json:"room_id"`
+ UserID string `json:"user_id"`
+ ServerName spec.ServerName `json:"server_name"`
}
type PerformAdminDownloadStateResponse struct {
diff --git a/roomserver/api/query.go b/roomserver/api/query.go
index 612c3315..56915b1e 100644
--- a/roomserver/api/query.go
+++ b/roomserver/api/query.go
@@ -22,6 +22,7 @@ import (
"strings"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/dendrite/syncapi/synctypes"
@@ -159,7 +160,7 @@ type QueryMembershipsForRoomResponse struct {
type QueryServerJoinedToRoomRequest struct {
// Server name of the server to find. If not specified, we will
// default to checking if the local server is joined.
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ ServerName spec.ServerName `json:"server_name"`
// ID of the room to see if we are still joined to
RoomID string `json:"room_id"`
}
@@ -177,7 +178,7 @@ type QueryServerAllowedToSeeEventRequest struct {
// The event ID to look up invites in.
EventID string `json:"event_id"`
// The server interested in the event
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ ServerName spec.ServerName `json:"server_name"`
}
// QueryServerAllowedToSeeEventResponse is a response to QueryServerAllowedToSeeEvent
@@ -195,7 +196,7 @@ type QueryMissingEventsRequest struct {
// Limit the number of events this query returns.
Limit int `json:"limit"`
// The server interested in the event
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ ServerName spec.ServerName `json:"server_name"`
}
// QueryMissingEventsResponse is a response to QueryMissingEvents
@@ -340,8 +341,8 @@ type QueryKnownUsersResponse struct {
}
type QueryServerBannedFromRoomRequest struct {
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
- RoomID string `json:"room_id"`
+ ServerName spec.ServerName `json:"server_name"`
+ RoomID string `json:"room_id"`
}
type QueryServerBannedFromRoomResponse struct {
diff --git a/roomserver/api/wrapper.go b/roomserver/api/wrapper.go
index 831ffe25..ff4445bf 100644
--- a/roomserver/api/wrapper.go
+++ b/roomserver/api/wrapper.go
@@ -19,6 +19,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
)
@@ -27,8 +28,8 @@ import (
func SendEvents(
ctx context.Context, rsAPI InputRoomEventsAPI,
kind Kind, events []*gomatrixserverlib.HeaderedEvent,
- virtualHost, origin gomatrixserverlib.ServerName,
- sendAsServer gomatrixserverlib.ServerName, txnID *TransactionID,
+ virtualHost, origin spec.ServerName,
+ sendAsServer spec.ServerName, txnID *TransactionID,
async bool,
) error {
ires := make([]InputRoomEvent, len(events))
@@ -49,9 +50,9 @@ func SendEvents(
// marked as `true` in haveEventIDs.
func SendEventWithState(
ctx context.Context, rsAPI InputRoomEventsAPI,
- virtualHost gomatrixserverlib.ServerName, kind Kind,
+ virtualHost spec.ServerName, kind Kind,
state gomatrixserverlib.StateResponse, event *gomatrixserverlib.HeaderedEvent,
- origin gomatrixserverlib.ServerName, haveEventIDs map[string]bool, async bool,
+ origin spec.ServerName, haveEventIDs map[string]bool, async bool,
) error {
outliers := gomatrixserverlib.LineariseStateResponse(event.RoomVersion, state)
ires := make([]InputRoomEvent, 0, len(outliers))
@@ -93,7 +94,7 @@ func SendEventWithState(
// SendInputRoomEvents to the roomserver.
func SendInputRoomEvents(
ctx context.Context, rsAPI InputRoomEventsAPI,
- virtualHost gomatrixserverlib.ServerName,
+ virtualHost spec.ServerName,
ires []InputRoomEvent, async bool,
) error {
request := InputRoomEventsRequest{
@@ -144,7 +145,7 @@ func GetStateEvent(ctx context.Context, rsAPI QueryEventsAPI, roomID string, tup
}
// IsServerBannedFromRoom returns whether the server is banned from a room by server ACLs.
-func IsServerBannedFromRoom(ctx context.Context, rsAPI FederationRoomserverAPI, roomID string, serverName gomatrixserverlib.ServerName) bool {
+func IsServerBannedFromRoom(ctx context.Context, rsAPI FederationRoomserverAPI, roomID string, serverName spec.ServerName) bool {
req := &QueryServerBannedFromRoomRequest{
ServerName: serverName,
RoomID: roomID,
@@ -163,11 +164,11 @@ func IsServerBannedFromRoom(ctx context.Context, rsAPI FederationRoomserverAPI,
func PopulatePublicRooms(ctx context.Context, roomIDs []string, rsAPI QueryBulkStateContentAPI) ([]fclient.PublicRoom, error) {
avatarTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.avatar", StateKey: ""}
nameTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.name", StateKey: ""}
- canonicalTuple := gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomCanonicalAlias, StateKey: ""}
+ canonicalTuple := gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomCanonicalAlias, StateKey: ""}
topicTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.topic", StateKey: ""}
guestTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.guest_access", StateKey: ""}
- visibilityTuple := gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomHistoryVisibility, StateKey: ""}
- joinRuleTuple := gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomJoinRules, StateKey: ""}
+ visibilityTuple := gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomHistoryVisibility, StateKey: ""}
+ joinRuleTuple := gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomJoinRules, StateKey: ""}
var stateRes QueryBulkStateContentResponse
err := rsAPI.QueryBulkStateContent(ctx, &QueryBulkStateContentRequest{
@@ -175,7 +176,7 @@ func PopulatePublicRooms(ctx context.Context, roomIDs []string, rsAPI QueryBulkS
AllowWildcards: true,
StateTuples: []gomatrixserverlib.StateKeyTuple{
nameTuple, canonicalTuple, topicTuple, guestTuple, visibilityTuple, joinRuleTuple, avatarTuple,
- {EventType: gomatrixserverlib.MRoomMember, StateKey: "*"},
+ {EventType: spec.MRoomMember, StateKey: "*"},
},
}, &stateRes)
if err != nil {
@@ -191,7 +192,7 @@ func PopulatePublicRooms(ctx context.Context, roomIDs []string, rsAPI QueryBulkS
joinCount := 0
var joinRule, guestAccess string
for tuple, contentVal := range data {
- if tuple.EventType == gomatrixserverlib.MRoomMember && contentVal == "join" {
+ if tuple.EventType == spec.MRoomMember && contentVal == "join" {
joinCount++
continue
}
@@ -215,7 +216,7 @@ func PopulatePublicRooms(ctx context.Context, roomIDs []string, rsAPI QueryBulkS
guestAccess = contentVal
}
}
- if joinRule == gomatrixserverlib.Public && guestAccess == "can_join" {
+ if joinRule == spec.Public && guestAccess == "can_join" {
pub.GuestCanJoin = true
}
pub.JoinedMembersCount = joinCount
diff --git a/roomserver/auth/auth.go b/roomserver/auth/auth.go
index 31a856e8..5f72454a 100644
--- a/roomserver/auth/auth.go
+++ b/roomserver/auth/auth.go
@@ -14,6 +14,7 @@ package auth
import (
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// TODO: This logic should live in gomatrixserverlib
@@ -21,7 +22,7 @@ import (
// IsServerAllowed returns true if the server is allowed to see events in the room
// at this particular state. This function implements https://matrix.org/docs/spec/client_server/r0.6.0#id87
func IsServerAllowed(
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
serverCurrentlyInRoom bool,
authEvents []*gomatrixserverlib.Event,
) bool {
@@ -32,7 +33,7 @@ func IsServerAllowed(
return true
}
// 2. If the user's membership was join, allow.
- joinedUserExists := IsAnyUserOnServerWithMembership(serverName, authEvents, gomatrixserverlib.Join)
+ joinedUserExists := IsAnyUserOnServerWithMembership(serverName, authEvents, spec.Join)
if joinedUserExists {
return true
}
@@ -41,7 +42,7 @@ func IsServerAllowed(
return true
}
// 4. If the user's membership was invite, and the history_visibility was set to invited, allow.
- invitedUserExists := IsAnyUserOnServerWithMembership(serverName, authEvents, gomatrixserverlib.Invite)
+ invitedUserExists := IsAnyUserOnServerWithMembership(serverName, authEvents, spec.Invite)
if invitedUserExists && historyVisibility == gomatrixserverlib.HistoryVisibilityInvited {
return true
}
@@ -55,7 +56,7 @@ func HistoryVisibilityForRoom(authEvents []*gomatrixserverlib.Event) gomatrixser
// By default if no history_visibility is set, or if the value is not understood, the visibility is assumed to be shared.
visibility := gomatrixserverlib.HistoryVisibilityShared
for _, ev := range authEvents {
- if ev.Type() != gomatrixserverlib.MRoomHistoryVisibility {
+ if ev.Type() != spec.MRoomHistoryVisibility {
continue
}
if vis, err := ev.HistoryVisibility(); err == nil {
@@ -65,9 +66,9 @@ func HistoryVisibilityForRoom(authEvents []*gomatrixserverlib.Event) gomatrixser
return visibility
}
-func IsAnyUserOnServerWithMembership(serverName gomatrixserverlib.ServerName, authEvents []*gomatrixserverlib.Event, wantMembership string) bool {
+func IsAnyUserOnServerWithMembership(serverName spec.ServerName, authEvents []*gomatrixserverlib.Event, wantMembership string) bool {
for _, ev := range authEvents {
- if ev.Type() != gomatrixserverlib.MRoomMember {
+ if ev.Type() != spec.MRoomMember {
continue
}
membership, err := ev.Membership()
diff --git a/roomserver/internal/alias.go b/roomserver/internal/alias.go
index 94b8b16c..46598746 100644
--- a/roomserver/internal/alias.go
+++ b/roomserver/internal/alias.go
@@ -26,6 +26,7 @@ import (
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/roomserver/internal/helpers"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/tidwall/gjson"
"github.com/tidwall/sjson"
)
@@ -142,7 +143,7 @@ func (r *RoomserverInternalAPI) RemoveRoomAlias(
var plEvent *gomatrixserverlib.HeaderedEvent
var pls *gomatrixserverlib.PowerLevelContent
- plEvent, err = r.DB.GetStateEvent(ctx, roomID, gomatrixserverlib.MRoomPowerLevels, "")
+ plEvent, err = r.DB.GetStateEvent(ctx, roomID, spec.MRoomPowerLevels, "")
if err != nil {
return fmt.Errorf("r.DB.GetStateEvent: %w", err)
}
@@ -152,13 +153,13 @@ func (r *RoomserverInternalAPI) RemoveRoomAlias(
return fmt.Errorf("plEvent.PowerLevels: %w", err)
}
- if pls.UserLevel(request.UserID) < pls.EventLevel(gomatrixserverlib.MRoomCanonicalAlias, true) {
+ if pls.UserLevel(request.UserID) < pls.EventLevel(spec.MRoomCanonicalAlias, true) {
response.Removed = false
return nil
}
}
- ev, err := r.DB.GetStateEvent(ctx, roomID, gomatrixserverlib.MRoomCanonicalAlias, "")
+ ev, err := r.DB.GetStateEvent(ctx, roomID, spec.MRoomCanonicalAlias, "")
if err != nil && err != sql.ErrNoRows {
return err
} else if ev != nil {
diff --git a/roomserver/internal/api.go b/roomserver/internal/api.go
index 47e1bf2f..975e7796 100644
--- a/roomserver/internal/api.go
+++ b/roomserver/internal/api.go
@@ -5,6 +5,7 @@ import (
"github.com/getsentry/sentry-go"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/sirupsen/logrus"
@@ -43,7 +44,7 @@ type RoomserverInternalAPI struct {
DB storage.Database
Cfg *config.Dendrite
Cache caching.RoomServerCaches
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
KeyRing gomatrixserverlib.JSONVerifier
ServerACLs *acls.ServerACLs
fsAPI fsAPI.RoomserverFederationAPI
@@ -53,7 +54,7 @@ type RoomserverInternalAPI struct {
Durable string
InputRoomEventTopic string // JetStream topic for new input room events
OutputProducer *producers.RoomEventProducer
- PerspectiveServerNames []gomatrixserverlib.ServerName
+ PerspectiveServerNames []spec.ServerName
enableMetrics bool
}
@@ -61,7 +62,7 @@ func NewRoomserverAPI(
processContext *process.ProcessContext, dendriteCfg *config.Dendrite, roomserverDB storage.Database,
js nats.JetStreamContext, nc *nats.Conn, caches caching.RoomServerCaches, enableMetrics bool,
) *RoomserverInternalAPI {
- var perspectiveServerNames []gomatrixserverlib.ServerName
+ var perspectiveServerNames []spec.ServerName
for _, kp := range dendriteCfg.FederationAPI.KeyPerspectives {
perspectiveServerNames = append(perspectiveServerNames, kp.ServerName)
}
diff --git a/roomserver/internal/helpers/auth.go b/roomserver/internal/helpers/auth.go
index 9defe794..4ef6e248 100644
--- a/roomserver/internal/helpers/auth.go
+++ b/roomserver/internal/helpers/auth.go
@@ -20,6 +20,7 @@ import (
"sort"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/roomserver/state"
"github.com/matrix-org/dendrite/roomserver/storage"
@@ -59,7 +60,7 @@ func CheckForSoftFail(
// state because we haven't received a m.room.create event yet.
// If we're now processing the first create event then never
// soft-fail it.
- if len(authStateEntries) == 0 && event.Type() == gomatrixserverlib.MRoomCreate {
+ if len(authStateEntries) == 0 && event.Type() == spec.MRoomCreate {
return false, nil
}
diff --git a/roomserver/internal/helpers/helpers.go b/roomserver/internal/helpers/helpers.go
index 9a70bcc9..959f5cf7 100644
--- a/roomserver/internal/helpers/helpers.go
+++ b/roomserver/internal/helpers/helpers.go
@@ -9,6 +9,7 @@ import (
"strings"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -54,7 +55,7 @@ func UpdateToInviteMembership(
Type: api.OutputTypeRetireInviteEvent,
RetireInviteEvent: &api.OutputRetireInviteEvent{
EventID: eventID,
- Membership: gomatrixserverlib.Join,
+ Membership: spec.Join,
RetiredByEventID: add.EventID(),
TargetUserID: *add.StateKey(),
},
@@ -67,7 +68,7 @@ func UpdateToInviteMembership(
// memberships. If the servername is not supplied then the local server will be
// checked instead using a faster code path.
// TODO: This should probably be replaced by an API call.
-func IsServerCurrentlyInRoom(ctx context.Context, db storage.Database, serverName gomatrixserverlib.ServerName, roomID string) (bool, error) {
+func IsServerCurrentlyInRoom(ctx context.Context, db storage.Database, serverName spec.ServerName, roomID string) (bool, error) {
info, err := db.RoomInfo(ctx, roomID)
if err != nil {
return false, err
@@ -93,7 +94,7 @@ func IsServerCurrentlyInRoom(ctx context.Context, db storage.Database, serverNam
for i := range events {
gmslEvents[i] = events[i].Event
}
- return auth.IsAnyUserOnServerWithMembership(serverName, gmslEvents, gomatrixserverlib.Join), nil
+ return auth.IsAnyUserOnServerWithMembership(serverName, gmslEvents, spec.Join), nil
}
func IsInvitePending(
@@ -194,7 +195,7 @@ func GetMembershipsAtState(
return nil, err
}
- if membership == gomatrixserverlib.Join {
+ if membership == spec.Join {
events = append(events, event)
}
}
@@ -252,7 +253,7 @@ func LoadStateEvents(
}
func CheckServerAllowedToSeeEvent(
- ctx context.Context, db storage.Database, info *types.RoomInfo, eventID string, serverName gomatrixserverlib.ServerName, isServerInRoom bool,
+ ctx context.Context, db storage.Database, info *types.RoomInfo, eventID string, serverName spec.ServerName, isServerInRoom bool,
) (bool, error) {
stateAtEvent, err := db.GetHistoryVisibilityState(ctx, info, eventID, string(serverName))
switch err {
@@ -280,7 +281,7 @@ func CheckServerAllowedToSeeEvent(
}
func slowGetHistoryVisibilityState(
- ctx context.Context, db storage.Database, info *types.RoomInfo, eventID string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, db storage.Database, info *types.RoomInfo, eventID string, serverName spec.ServerName,
) ([]*gomatrixserverlib.Event, error) {
roomState := state.NewStateResolution(db, info)
stateEntries, err := roomState.LoadStateAtEvent(ctx, eventID)
@@ -332,7 +333,7 @@ func slowGetHistoryVisibilityState(
// TODO: Remove this when we have tests to assert correctness of this function
func ScanEventTree(
ctx context.Context, db storage.Database, info *types.RoomInfo, front []string, visited map[string]bool, limit int,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) ([]types.EventNID, map[string]struct{}, error) {
var resultNIDs []types.EventNID
var err error
diff --git a/roomserver/internal/input/input.go b/roomserver/internal/input/input.go
index 83aa9e90..3e7ff7f7 100644
--- a/roomserver/internal/input/input.go
+++ b/roomserver/internal/input/input.go
@@ -25,6 +25,7 @@ import (
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/Arceliar/phony"
"github.com/getsentry/sentry-go"
@@ -79,7 +80,7 @@ type Inputer struct {
NATSClient *nats.Conn
JetStream nats.JetStreamContext
Durable nats.SubOpt
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
SigningIdentity *fclient.SigningIdentity
FSAPI fedapi.RoomserverFederationAPI
KeyRing gomatrixserverlib.JSONVerifier
@@ -284,7 +285,7 @@ func (w *worker) _next() {
var errString string
if err = w.r.processRoomEvent(
w.r.ProcessContext.Context(),
- gomatrixserverlib.ServerName(msg.Header.Get("virtual_host")),
+ spec.ServerName(msg.Header.Get("virtual_host")),
&inputRoomEvent,
); err != nil {
switch err.(type) {
diff --git a/roomserver/internal/input/input_events.go b/roomserver/internal/input/input_events.go
index 971befa0..334e68b9 100644
--- a/roomserver/internal/input/input_events.go
+++ b/roomserver/internal/input/input_events.go
@@ -28,6 +28,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/prometheus/client_golang/prometheus"
"github.com/sirupsen/logrus"
@@ -73,7 +74,7 @@ var processRoomEventDuration = prometheus.NewHistogramVec(
// nolint:gocyclo
func (r *Inputer) processRoomEvent(
ctx context.Context,
- virtualHost gomatrixserverlib.ServerName,
+ virtualHost spec.ServerName,
input *api.InputRoomEvent,
) error {
select {
@@ -123,7 +124,7 @@ func (r *Inputer) processRoomEvent(
if rerr != nil {
return fmt.Errorf("r.DB.RoomInfo: %w", rerr)
}
- isCreateEvent := event.Type() == gomatrixserverlib.MRoomCreate && event.StateKeyEquals("")
+ isCreateEvent := event.Type() == spec.MRoomCreate && event.StateKeyEquals("")
if roomInfo == nil && !isCreateEvent {
return fmt.Errorf("room %s does not exist for event %s", event.RoomID(), event.EventID())
}
@@ -180,7 +181,7 @@ func (r *Inputer) processRoomEvent(
// Sort all of the servers into a map so that we can randomise
// their order. Then make sure that the input origin and the
// event origin are first on the list.
- servers := map[gomatrixserverlib.ServerName]struct{}{}
+ servers := map[spec.ServerName]struct{}{}
for _, server := range serverRes.ServerNames {
servers[server] = struct{}{}
}
@@ -476,7 +477,7 @@ func (r *Inputer) processRoomEvent(
}
// If guest_access changed and is not can_join, kick all guest users.
- if event.Type() == gomatrixserverlib.MRoomGuestAccess && gjson.GetBytes(event.Content(), "guest_access").Str != "can_join" {
+ if event.Type() == spec.MRoomGuestAccess && gjson.GetBytes(event.Content(), "guest_access").Str != "can_join" {
if err = r.kickGuests(ctx, event, roomInfo); err != nil {
logrus.WithError(err).Error("failed to kick guest users on m.room.guest_access revocation")
}
@@ -509,7 +510,7 @@ func (r *Inputer) processStateBefore(
) (historyVisibility gomatrixserverlib.HistoryVisibility, rejectionErr error, err error) {
historyVisibility = gomatrixserverlib.HistoryVisibilityShared // Default to shared.
event := input.Event.Unwrap()
- isCreateEvent := event.Type() == gomatrixserverlib.MRoomCreate && event.StateKeyEquals("")
+ isCreateEvent := event.Type() == spec.MRoomCreate && event.StateKeyEquals("")
var stateBeforeEvent []*gomatrixserverlib.Event
switch {
case isCreateEvent:
@@ -546,7 +547,7 @@ func (r *Inputer) processStateBefore(
// output events.
tuplesNeeded := gomatrixserverlib.StateNeededForAuth([]*gomatrixserverlib.Event{event}).Tuples()
tuplesNeeded = append(tuplesNeeded, gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomHistoryVisibility,
+ EventType: spec.MRoomHistoryVisibility,
StateKey: "",
})
stateBeforeReq := &api.QueryStateAfterEventsRequest{
@@ -579,7 +580,7 @@ func (r *Inputer) processStateBefore(
// Work out what the history visibility was at the time of the
// event.
for _, event := range stateBeforeEvent {
- if event.Type() != gomatrixserverlib.MRoomHistoryVisibility || !event.StateKeyEquals("") {
+ if event.Type() != spec.MRoomHistoryVisibility || !event.StateKeyEquals("") {
continue
}
if hisVis, err := event.HistoryVisibility(); err == nil {
@@ -602,11 +603,11 @@ func (r *Inputer) fetchAuthEvents(
ctx context.Context,
logger *logrus.Entry,
roomInfo *types.RoomInfo,
- virtualHost gomatrixserverlib.ServerName,
+ virtualHost spec.ServerName,
event *gomatrixserverlib.HeaderedEvent,
auth *gomatrixserverlib.AuthEvents,
known map[string]*types.Event,
- servers []gomatrixserverlib.ServerName,
+ servers []spec.ServerName,
) error {
trace, ctx := internal.StartRegion(ctx, "fetchAuthEvents")
defer trace.EndRegion()
@@ -842,12 +843,12 @@ func (r *Inputer) kickGuests(ctx context.Context, event *gomatrixserverlib.Event
if err = json.Unmarshal(memberEvent.Content(), &memberContent); err != nil {
return err
}
- memberContent.Membership = gomatrixserverlib.Leave
+ memberContent.Membership = spec.Leave
stateKey := *memberEvent.StateKey()
fledglingEvent := &gomatrixserverlib.EventBuilder{
RoomID: event.RoomID(),
- Type: gomatrixserverlib.MRoomMember,
+ Type: spec.MRoomMember,
StateKey: &stateKey,
Sender: stateKey,
PrevEvents: prevEvents,
diff --git a/roomserver/internal/input/input_events_test.go b/roomserver/internal/input/input_events_test.go
index 818e7715..9acc435b 100644
--- a/roomserver/internal/input/input_events_test.go
+++ b/roomserver/internal/input/input_events_test.go
@@ -4,6 +4,7 @@ import (
"testing"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/test"
)
@@ -21,15 +22,15 @@ func Test_EventAuth(t *testing.T) {
// Add the legal auth events from room2
for _, x := range room2.Events() {
- if x.Type() == gomatrixserverlib.MRoomCreate {
+ if x.Type() == spec.MRoomCreate {
authEventIDs = append(authEventIDs, x.EventID())
authEvents = append(authEvents, x.Event)
}
- if x.Type() == gomatrixserverlib.MRoomPowerLevels {
+ if x.Type() == spec.MRoomPowerLevels {
authEventIDs = append(authEventIDs, x.EventID())
authEvents = append(authEvents, x.Event)
}
- if x.Type() == gomatrixserverlib.MRoomJoinRules {
+ if x.Type() == spec.MRoomJoinRules {
authEventIDs = append(authEventIDs, x.EventID())
authEvents = append(authEvents, x.Event)
}
@@ -37,7 +38,7 @@ func Test_EventAuth(t *testing.T) {
// Add the illegal auth event from room1 (rooms are different)
for _, x := range room1.Events() {
- if x.Type() == gomatrixserverlib.MRoomMember {
+ if x.Type() == spec.MRoomMember {
authEventIDs = append(authEventIDs, x.EventID())
authEvents = append(authEvents, x.Event)
}
diff --git a/roomserver/internal/input/input_membership.go b/roomserver/internal/input/input_membership.go
index 4028f0b5..947f6c15 100644
--- a/roomserver/internal/input/input_membership.go
+++ b/roomserver/internal/input/input_membership.go
@@ -19,6 +19,7 @@ import (
"fmt"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -86,7 +87,7 @@ func (r *Inputer) updateMembership(
) ([]api.OutputEvent, error) {
var err error
// Default the membership to Leave if no event was added or removed.
- newMembership := gomatrixserverlib.Leave
+ newMembership := spec.Leave
if add != nil {
newMembership, err = add.Membership()
if err != nil {
@@ -120,13 +121,13 @@ func (r *Inputer) updateMembership(
}
switch newMembership {
- case gomatrixserverlib.Invite:
+ case spec.Invite:
return helpers.UpdateToInviteMembership(mu, add, updates, updater.RoomVersion())
- case gomatrixserverlib.Join:
+ case spec.Join:
return updateToJoinMembership(mu, add, updates)
- case gomatrixserverlib.Leave, gomatrixserverlib.Ban:
+ case spec.Leave, spec.Ban:
return updateToLeaveMembership(mu, add, newMembership, updates)
- case gomatrixserverlib.Knock:
+ case spec.Knock:
return updateToKnockMembership(mu, add, updates)
default:
panic(fmt.Errorf(
@@ -160,7 +161,7 @@ func updateToJoinMembership(
Type: api.OutputTypeRetireInviteEvent,
RetireInviteEvent: &api.OutputRetireInviteEvent{
EventID: eventID,
- Membership: gomatrixserverlib.Join,
+ Membership: spec.Join,
RetiredByEventID: add.EventID(),
TargetUserID: *add.StateKey(),
},
diff --git a/roomserver/internal/input/input_missing.go b/roomserver/internal/input/input_missing.go
index 16bc18d8..c7b64797 100644
--- a/roomserver/internal/input/input_missing.go
+++ b/roomserver/internal/input/input_missing.go
@@ -9,6 +9,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
@@ -42,15 +43,15 @@ func (p *parsedRespState) Events() []*gomatrixserverlib.Event {
type missingStateReq struct {
log *logrus.Entry
- virtualHost gomatrixserverlib.ServerName
- origin gomatrixserverlib.ServerName
+ virtualHost spec.ServerName
+ origin spec.ServerName
db storage.RoomDatabase
roomInfo *types.RoomInfo
inputer *Inputer
keys gomatrixserverlib.JSONVerifier
federation fedapi.RoomserverFederationAPI
roomsMu *internal.MutexByRoom
- servers []gomatrixserverlib.ServerName
+ servers []spec.ServerName
hadEvents map[string]bool
hadEventsMutex sync.Mutex
haveEvents map[string]*gomatrixserverlib.Event
@@ -279,7 +280,7 @@ func (t *missingStateReq) lookupResolvedStateBeforeEvent(ctx context.Context, e
resolvedState := &parsedRespState{}
switch len(states) {
case 0:
- extremityIsCreate := e.Type() == gomatrixserverlib.MRoomCreate && e.StateKeyEquals("")
+ extremityIsCreate := e.Type() == spec.MRoomCreate && e.StateKeyEquals("")
if !extremityIsCreate {
// There are no previous states and this isn't the beginning of the
// room - this is an error condition!
@@ -291,7 +292,7 @@ func (t *missingStateReq) lookupResolvedStateBeforeEvent(ctx context.Context, e
// use it as-is. There's no point in resolving it again. Only trust a
// trustworthy state snapshot if it actually contains some state for all
// non-create events, otherwise we need to resolve what came from federation.
- isCreate := e.Type() == gomatrixserverlib.MRoomCreate && e.StateKeyEquals("")
+ isCreate := e.Type() == spec.MRoomCreate && e.StateKeyEquals("")
if states[0].trustworthy && (isCreate || len(states[0].StateEvents) > 0) {
resolvedState = states[0].parsedRespState
break
@@ -597,7 +598,7 @@ Event:
// If we retrieved back to the beginning of the room then there's nothing else
// to do - we closed the gap.
- if len(earliestNewEvent.PrevEventIDs()) == 0 && earliestNewEvent.Type() == gomatrixserverlib.MRoomCreate && earliestNewEvent.StateKeyEquals("") {
+ if len(earliestNewEvent.PrevEventIDs()) == 0 && earliestNewEvent.Type() == spec.MRoomCreate && earliestNewEvent.StateKeyEquals("") {
return newEvents, true, t.isPrevStateKnown(ctx, e), nil
}
diff --git a/roomserver/internal/perform/perform_admin.go b/roomserver/internal/perform/perform_admin.go
index f35e40bc..e7b9db1f 100644
--- a/roomserver/internal/perform/perform_admin.go
+++ b/roomserver/internal/perform/perform_admin.go
@@ -28,6 +28,7 @@ import (
"github.com/matrix-org/dendrite/roomserver/storage"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
)
@@ -107,12 +108,12 @@ func (r *Admin) PerformAdminEvacuateRoom(
}
return nil
}
- memberContent.Membership = gomatrixserverlib.Leave
+ memberContent.Membership = spec.Leave
stateKey := *memberEvent.StateKey()
fledglingEvent := &gomatrixserverlib.EventBuilder{
RoomID: req.RoomID,
- Type: gomatrixserverlib.MRoomMember,
+ Type: spec.MRoomMember,
StateKey: &stateKey,
Sender: stateKey,
PrevEvents: prevEvents,
@@ -195,7 +196,7 @@ func (r *Admin) PerformAdminEvacuateUser(
return nil
}
- roomIDs, err := r.DB.GetRoomsByMembership(ctx, req.UserID, gomatrixserverlib.Join)
+ roomIDs, err := r.DB.GetRoomsByMembership(ctx, req.UserID, spec.Join)
if err != nil && err != sql.ErrNoRows {
res.Error = &api.PerformError{
Code: api.PerformErrorBadRequest,
@@ -204,7 +205,7 @@ func (r *Admin) PerformAdminEvacuateUser(
return nil
}
- inviteRoomIDs, err := r.DB.GetRoomsByMembership(ctx, req.UserID, gomatrixserverlib.Invite)
+ inviteRoomIDs, err := r.DB.GetRoomsByMembership(ctx, req.UserID, spec.Invite)
if err != nil && err != sql.ErrNoRows {
res.Error = &api.PerformError{
Code: api.PerformErrorBadRequest,
@@ -361,7 +362,7 @@ func (r *Admin) PerformAdminDownloadState(
Type: "org.matrix.dendrite.state_download",
Sender: req.UserID,
RoomID: req.RoomID,
- Content: gomatrixserverlib.RawJSON("{}"),
+ Content: spec.RawJSON("{}"),
}
eventsNeeded, err := gomatrixserverlib.StateNeededForEventBuilder(builder)
diff --git a/roomserver/internal/perform/perform_backfill.go b/roomserver/internal/perform/perform_backfill.go
index 23862b24..d9a2394a 100644
--- a/roomserver/internal/perform/perform_backfill.go
+++ b/roomserver/internal/perform/perform_backfill.go
@@ -19,6 +19,7 @@ import (
"fmt"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
@@ -37,13 +38,13 @@ import (
const maxBackfillServers = 5
type Backfiller struct {
- IsLocalServerName func(gomatrixserverlib.ServerName) bool
+ IsLocalServerName func(spec.ServerName) bool
DB storage.Database
FSAPI federationAPI.RoomserverFederationAPI
KeyRing gomatrixserverlib.JSONVerifier
// The servers which should be preferred above other servers when backfilling
- PreferServers []gomatrixserverlib.ServerName
+ PreferServers []spec.ServerName
}
// PerformBackfill implements api.RoomServerQueryAPI
@@ -175,7 +176,7 @@ func (r *Backfiller) backfillViaFederation(ctx context.Context, req *api.Perform
// fetchAndStoreMissingEvents does a best-effort fetch and store of missing events specified in stateIDs. Returns no error as it is just
// best effort.
func (r *Backfiller) fetchAndStoreMissingEvents(ctx context.Context, roomVer gomatrixserverlib.RoomVersion,
- backfillRequester *backfillRequester, stateIDs []string, virtualHost gomatrixserverlib.ServerName) {
+ backfillRequester *backfillRequester, stateIDs []string, virtualHost spec.ServerName) {
servers := backfillRequester.servers
@@ -245,13 +246,13 @@ func (r *Backfiller) fetchAndStoreMissingEvents(ctx context.Context, roomVer gom
type backfillRequester struct {
db storage.Database
fsAPI federationAPI.RoomserverFederationAPI
- virtualHost gomatrixserverlib.ServerName
- isLocalServerName func(gomatrixserverlib.ServerName) bool
- preferServer map[gomatrixserverlib.ServerName]bool
+ virtualHost spec.ServerName
+ isLocalServerName func(spec.ServerName) bool
+ preferServer map[spec.ServerName]bool
bwExtrems map[string][]string
// per-request state
- servers []gomatrixserverlib.ServerName
+ servers []spec.ServerName
eventIDToBeforeStateIDs map[string][]string
eventIDMap map[string]*gomatrixserverlib.Event
historyVisiblity gomatrixserverlib.HistoryVisibility
@@ -260,11 +261,11 @@ type backfillRequester struct {
func newBackfillRequester(
db storage.Database, fsAPI federationAPI.RoomserverFederationAPI,
- virtualHost gomatrixserverlib.ServerName,
- isLocalServerName func(gomatrixserverlib.ServerName) bool,
- bwExtrems map[string][]string, preferServers []gomatrixserverlib.ServerName,
+ virtualHost spec.ServerName,
+ isLocalServerName func(spec.ServerName) bool,
+ bwExtrems map[string][]string, preferServers []spec.ServerName,
) *backfillRequester {
- preferServer := make(map[gomatrixserverlib.ServerName]bool)
+ preferServer := make(map[spec.ServerName]bool)
for _, p := range preferServers {
preferServer[p] = true
}
@@ -415,7 +416,7 @@ func (b *backfillRequester) StateBeforeEvent(ctx context.Context, roomVer gomatr
// It returns a list of servers which can be queried for backfill requests. These servers
// will be servers that are in the room already. The entries at the beginning are preferred servers
// and will be tried first. An empty list will fail the request.
-func (b *backfillRequester) ServersAtEvent(ctx context.Context, roomID, eventID string) []gomatrixserverlib.ServerName {
+func (b *backfillRequester) ServersAtEvent(ctx context.Context, roomID, eventID string) []spec.ServerName {
// eventID will be a prev_event ID of a backwards extremity, meaning we will not have a database entry for it. Instead, use
// its successor, so look it up.
successor := ""
@@ -478,19 +479,19 @@ FindSuccessor:
memberEvents = append(memberEvents, memberEventsFromVis...)
// Store the server names in a temporary map to avoid duplicates.
- serverSet := make(map[gomatrixserverlib.ServerName]bool)
+ serverSet := make(map[spec.ServerName]bool)
for _, event := range memberEvents {
if _, senderDomain, err := gomatrixserverlib.SplitID('@', event.Sender()); err == nil {
serverSet[senderDomain] = true
}
}
- var servers []gomatrixserverlib.ServerName
+ var servers []spec.ServerName
for server := range serverSet {
if b.isLocalServerName(server) {
continue
}
if b.preferServer[server] { // insert at the front
- servers = append([]gomatrixserverlib.ServerName{server}, servers...)
+ servers = append([]spec.ServerName{server}, servers...)
} else { // insert at the back
servers = append(servers, server)
}
@@ -505,7 +506,7 @@ FindSuccessor:
// Backfill performs a backfill request to the given server.
// https://matrix.org/docs/spec/server_server/latest#get-matrix-federation-v1-backfill-roomid
-func (b *backfillRequester) Backfill(ctx context.Context, origin, server gomatrixserverlib.ServerName, roomID string,
+func (b *backfillRequester) Backfill(ctx context.Context, origin, server spec.ServerName, roomID string,
limit int, fromEventIDs []string) (gomatrixserverlib.Transaction, error) {
tx, err := b.fsAPI.Backfill(ctx, origin, server, roomID, limit, fromEventIDs)
@@ -547,7 +548,7 @@ func (b *backfillRequester) ProvideEvents(roomVer gomatrixserverlib.RoomVersion,
// pull all events and then filter by that table.
func joinEventsFromHistoryVisibility(
ctx context.Context, db storage.RoomDatabase, roomInfo *types.RoomInfo, stateEntries []types.StateEntry,
- thisServer gomatrixserverlib.ServerName) ([]types.Event, gomatrixserverlib.HistoryVisibility, error) {
+ thisServer spec.ServerName) ([]types.Event, gomatrixserverlib.HistoryVisibility, error) {
var eventNIDs []types.EventNID
for _, entry := range stateEntries {
diff --git a/roomserver/internal/perform/perform_invite.go b/roomserver/internal/perform/perform_invite.go
index 13d13f7b..a23cdea1 100644
--- a/roomserver/internal/perform/perform_invite.go
+++ b/roomserver/internal/perform/perform_invite.go
@@ -28,6 +28,8 @@ import (
"github.com/matrix-org/dendrite/roomserver/types"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
log "github.com/sirupsen/logrus"
)
@@ -95,7 +97,7 @@ func (r *Inviter) PerformInvite(
inviteState := req.InviteRoomState
if len(inviteState) == 0 && info != nil {
- var is []gomatrixserverlib.InviteV2StrippedState
+ var is []fclient.InviteV2StrippedState
if is, err = buildInviteStrippedState(ctx, r.DB, info, req); err == nil {
inviteState = is
}
@@ -266,14 +268,14 @@ func buildInviteStrippedState(
db storage.Database,
info *types.RoomInfo,
input *api.PerformInviteRequest,
-) ([]gomatrixserverlib.InviteV2StrippedState, error) {
+) ([]fclient.InviteV2StrippedState, error) {
stateWanted := []gomatrixserverlib.StateKeyTuple{}
// "If they are set on the room, at least the state for m.room.avatar, m.room.canonical_alias, m.room.join_rules, and m.room.name SHOULD be included."
// https://matrix.org/docs/spec/client_server/r0.6.0#m-room-member
for _, t := range []string{
- gomatrixserverlib.MRoomName, gomatrixserverlib.MRoomCanonicalAlias,
- gomatrixserverlib.MRoomJoinRules, gomatrixserverlib.MRoomAvatar,
- gomatrixserverlib.MRoomEncryption, gomatrixserverlib.MRoomCreate,
+ spec.MRoomName, spec.MRoomCanonicalAlias,
+ spec.MRoomJoinRules, spec.MRoomAvatar,
+ spec.MRoomEncryption, spec.MRoomCreate,
} {
stateWanted = append(stateWanted, gomatrixserverlib.StateKeyTuple{
EventType: t,
@@ -295,12 +297,12 @@ func buildInviteStrippedState(
if err != nil {
return nil, err
}
- inviteState := []gomatrixserverlib.InviteV2StrippedState{
- gomatrixserverlib.NewInviteV2StrippedState(input.Event.Event),
+ inviteState := []fclient.InviteV2StrippedState{
+ fclient.NewInviteV2StrippedState(input.Event.Event),
}
stateEvents = append(stateEvents, types.Event{Event: input.Event.Unwrap()})
for _, event := range stateEvents {
- inviteState = append(inviteState, gomatrixserverlib.NewInviteV2StrippedState(event.Event))
+ inviteState = append(inviteState, fclient.NewInviteV2StrippedState(event.Event))
}
return inviteState, nil
}
diff --git a/roomserver/internal/perform/perform_join.go b/roomserver/internal/perform/perform_join.go
index 02383a45..9b0895e9 100644
--- a/roomserver/internal/perform/perform_join.go
+++ b/roomserver/internal/perform/perform_join.go
@@ -24,6 +24,7 @@ import (
"github.com/getsentry/sentry-go"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
"github.com/tidwall/gjson"
@@ -83,7 +84,7 @@ func (r *Joiner) PerformJoin(
func (r *Joiner) performJoin(
ctx context.Context,
req *rsAPI.PerformJoinRequest,
-) (string, gomatrixserverlib.ServerName, error) {
+) (string, spec.ServerName, error) {
_, domain, err := gomatrixserverlib.SplitID('@', req.UserID)
if err != nil {
return "", "", &rsAPI.PerformError{
@@ -112,7 +113,7 @@ func (r *Joiner) performJoin(
func (r *Joiner) performJoinRoomByAlias(
ctx context.Context,
req *rsAPI.PerformJoinRequest,
-) (string, gomatrixserverlib.ServerName, error) {
+) (string, spec.ServerName, error) {
// Get the domain part of the room alias.
_, domain, err := gomatrixserverlib.SplitID('#', req.RoomIDOrAlias)
if err != nil {
@@ -167,7 +168,7 @@ func (r *Joiner) performJoinRoomByAlias(
func (r *Joiner) performJoinRoomByID(
ctx context.Context,
req *rsAPI.PerformJoinRequest,
-) (string, gomatrixserverlib.ServerName, error) {
+) (string, spec.ServerName, error) {
// The original client request ?server_name=... may include this HS so filter that out so we
// don't attempt to make_join with ourselves
for i := 0; i < len(req.ServerNames); i++ {
@@ -204,7 +205,7 @@ func (r *Joiner) performJoinRoomByID(
}
}
eb := gomatrixserverlib.EventBuilder{
- Type: gomatrixserverlib.MRoomMember,
+ Type: spec.MRoomMember,
Sender: userID,
StateKey: &userID,
RoomID: req.RoomIDOrAlias,
@@ -220,7 +221,7 @@ func (r *Joiner) performJoinRoomByID(
if req.Content == nil {
req.Content = map[string]interface{}{}
}
- req.Content["membership"] = gomatrixserverlib.Join
+ req.Content["membership"] = spec.Join
if authorisedVia, aerr := r.populateAuthorisedViaUserForRestrictedJoin(ctx, req); aerr != nil {
return "", "", aerr
} else if authorisedVia != "" {
@@ -274,7 +275,7 @@ func (r *Joiner) performJoinRoomByID(
if req.IsGuest {
var guestAccessEvent *gomatrixserverlib.HeaderedEvent
guestAccess := "forbidden"
- guestAccessEvent, err = r.DB.GetStateEvent(ctx, req.RoomIDOrAlias, gomatrixserverlib.MRoomGuestAccess, "")
+ guestAccessEvent, err = r.DB.GetStateEvent(ctx, req.RoomIDOrAlias, spec.MRoomGuestAccess, "")
if (err != nil && !errors.Is(err, sql.ErrNoRows)) || guestAccessEvent == nil {
logrus.WithError(err).Warn("unable to get m.room.guest_access event, defaulting to 'forbidden'")
}
@@ -293,7 +294,7 @@ func (r *Joiner) performJoinRoomByID(
}
// If we should do a forced federated join then do that.
- var joinedVia gomatrixserverlib.ServerName
+ var joinedVia spec.ServerName
if forceFederatedJoin {
joinedVia, err = r.performFederatedJoinRoomByID(ctx, req)
return req.RoomIDOrAlias, joinedVia, err
@@ -388,7 +389,7 @@ func (r *Joiner) performJoinRoomByID(
func (r *Joiner) performFederatedJoinRoomByID(
ctx context.Context,
req *rsAPI.PerformJoinRequest,
-) (gomatrixserverlib.ServerName, error) {
+) (spec.ServerName, error) {
// Try joining by all of the supplied server names.
fedReq := fsAPI.PerformJoinRequest{
RoomID: req.RoomIDOrAlias, // the room ID to try and join
diff --git a/roomserver/internal/perform/perform_leave.go b/roomserver/internal/perform/perform_leave.go
index 00b6c50c..4dfb522a 100644
--- a/roomserver/internal/perform/perform_leave.go
+++ b/roomserver/internal/perform/perform_leave.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/dendrite/internal/eventutil"
"github.com/matrix-org/gomatrix"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
@@ -126,7 +127,7 @@ func (r *Leaver) performLeaveRoomByID(
RoomID: req.RoomID,
StateToFetch: []gomatrixserverlib.StateKeyTuple{
{
- EventType: gomatrixserverlib.MRoomMember,
+ EventType: spec.MRoomMember,
StateKey: req.UserID,
},
},
@@ -147,14 +148,14 @@ func (r *Leaver) performLeaveRoomByID(
if err != nil {
return nil, fmt.Errorf("error getting membership: %w", err)
}
- if membership != gomatrixserverlib.Join && membership != gomatrixserverlib.Invite {
+ if membership != spec.Join && membership != spec.Invite {
return nil, fmt.Errorf("user %q is not joined to the room (membership is %q)", req.UserID, membership)
}
// Prepare the template for the leave event.
userID := req.UserID
eb := gomatrixserverlib.EventBuilder{
- Type: gomatrixserverlib.MRoomMember,
+ Type: spec.MRoomMember,
Sender: userID,
StateKey: &userID,
RoomID: req.RoomID,
@@ -227,7 +228,7 @@ func (r *Leaver) performFederatedRejectInvite(
leaveReq := fsAPI.PerformLeaveRequest{
RoomID: req.RoomID,
UserID: req.UserID,
- ServerNames: []gomatrixserverlib.ServerName{domain},
+ ServerNames: []spec.ServerName{domain},
}
leaveRes := fsAPI.PerformLeaveResponse{}
if err = r.FSAPI.PerformLeave(ctx, &leaveReq, &leaveRes); err != nil {
diff --git a/roomserver/internal/perform/perform_peek.go b/roomserver/internal/perform/perform_peek.go
index 436d137f..2f39050d 100644
--- a/roomserver/internal/perform/perform_peek.go
+++ b/roomserver/internal/perform/perform_peek.go
@@ -26,12 +26,13 @@ import (
"github.com/matrix-org/dendrite/roomserver/storage"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
)
type Peeker struct {
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
Cfg *config.RoomServer
FSAPI fsAPI.RoomserverFederationAPI
DB storage.Database
diff --git a/roomserver/internal/perform/perform_unpeek.go b/roomserver/internal/perform/perform_unpeek.go
index 4d714be6..28486fa1 100644
--- a/roomserver/internal/perform/perform_unpeek.go
+++ b/roomserver/internal/perform/perform_unpeek.go
@@ -24,10 +24,11 @@ import (
"github.com/matrix-org/dendrite/roomserver/internal/input"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type Unpeeker struct {
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
Cfg *config.RoomServer
FSAPI fsAPI.RoomserverFederationAPI
Inputer *input.Inputer
diff --git a/roomserver/internal/perform/perform_upgrade.go b/roomserver/internal/perform/perform_upgrade.go
index b739b067..ed57abf2 100644
--- a/roomserver/internal/perform/perform_upgrade.go
+++ b/roomserver/internal/perform/perform_upgrade.go
@@ -24,6 +24,7 @@ import (
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
)
@@ -148,7 +149,7 @@ func (r *Upgrader) performRoomUpgrade(
func (r *Upgrader) getRoomPowerLevels(ctx context.Context, roomID string) (*gomatrixserverlib.PowerLevelContent, *api.PerformError) {
oldPowerLevelsEvent := api.GetStateEvent(ctx, r.URSAPI, roomID, gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomPowerLevels,
+ EventType: spec.MRoomPowerLevels,
StateKey: "",
})
powerLevelContent, err := oldPowerLevelsEvent.PowerLevels()
@@ -161,7 +162,7 @@ func (r *Upgrader) getRoomPowerLevels(ctx context.Context, roomID string) (*goma
return powerLevelContent, nil
}
-func (r *Upgrader) restrictOldRoomPowerLevels(ctx context.Context, evTime time.Time, userID string, userDomain gomatrixserverlib.ServerName, roomID string) *api.PerformError {
+func (r *Upgrader) restrictOldRoomPowerLevels(ctx context.Context, evTime time.Time, userID string, userDomain spec.ServerName, roomID string) *api.PerformError {
restrictedPowerLevelContent, pErr := r.getRoomPowerLevels(ctx, roomID)
if pErr != nil {
return pErr
@@ -179,7 +180,7 @@ func (r *Upgrader) restrictOldRoomPowerLevels(ctx context.Context, evTime time.T
restrictedPowerLevelContent.Invite = restrictedDefaultPowerLevel
restrictedPowerLevelsHeadered, resErr := r.makeHeaderedEvent(ctx, evTime, userID, roomID, fledglingEvent{
- Type: gomatrixserverlib.MRoomPowerLevels,
+ Type: spec.MRoomPowerLevels,
StateKey: "",
Content: restrictedPowerLevelContent,
})
@@ -230,9 +231,9 @@ func moveLocalAliases(ctx context.Context,
return nil
}
-func (r *Upgrader) clearOldCanonicalAliasEvent(ctx context.Context, oldRoom *api.QueryLatestEventsAndStateResponse, evTime time.Time, userID string, userDomain gomatrixserverlib.ServerName, roomID string) *api.PerformError {
+func (r *Upgrader) clearOldCanonicalAliasEvent(ctx context.Context, oldRoom *api.QueryLatestEventsAndStateResponse, evTime time.Time, userID string, userDomain spec.ServerName, roomID string) *api.PerformError {
for _, event := range oldRoom.StateEvents {
- if event.Type() != gomatrixserverlib.MRoomCanonicalAlias || !event.StateKeyEquals("") {
+ if event.Type() != spec.MRoomCanonicalAlias || !event.StateKeyEquals("") {
continue
}
var aliasContent struct {
@@ -251,7 +252,7 @@ func (r *Upgrader) clearOldCanonicalAliasEvent(ctx context.Context, oldRoom *api
}
emptyCanonicalAliasEvent, resErr := r.makeHeaderedEvent(ctx, evTime, userID, roomID, fledglingEvent{
- Type: gomatrixserverlib.MRoomCanonicalAlias,
+ Type: spec.MRoomCanonicalAlias,
Content: map[string]interface{}{},
})
if resErr != nil {
@@ -332,7 +333,7 @@ func (r *Upgrader) validateRoomExists(ctx context.Context, roomID string) error
func (r *Upgrader) userIsAuthorized(ctx context.Context, userID, roomID string,
) bool {
plEvent := api.GetStateEvent(ctx, r.URSAPI, roomID, gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomPowerLevels,
+ EventType: spec.MRoomPowerLevels,
StateKey: "",
})
if plEvent == nil {
@@ -355,7 +356,7 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, oldRoom *api.Query
// This shouldn't ever happen, but better to be safe than sorry.
continue
}
- if event.Type() == gomatrixserverlib.MRoomMember && !event.StateKeyEquals(userID) {
+ if event.Type() == spec.MRoomMember && !event.StateKeyEquals(userID) {
// With the exception of bans and invites which we do want to copy, we
// should ignore membership events that aren't our own, as event auth will
// prevent us from being able to create membership events on behalf of other
@@ -365,8 +366,8 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, oldRoom *api.Query
continue
}
switch membership {
- case gomatrixserverlib.Ban:
- case gomatrixserverlib.Invite:
+ case spec.Ban:
+ case spec.Invite:
default:
continue
}
@@ -377,10 +378,10 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, oldRoom *api.Query
// The following events are ones that we are going to override manually
// in the following section.
override := map[gomatrixserverlib.StateKeyTuple]struct{}{
- {EventType: gomatrixserverlib.MRoomCreate, StateKey: ""}: {},
- {EventType: gomatrixserverlib.MRoomMember, StateKey: userID}: {},
- {EventType: gomatrixserverlib.MRoomPowerLevels, StateKey: ""}: {},
- {EventType: gomatrixserverlib.MRoomJoinRules, StateKey: ""}: {},
+ {EventType: spec.MRoomCreate, StateKey: ""}: {},
+ {EventType: spec.MRoomMember, StateKey: userID}: {},
+ {EventType: spec.MRoomPowerLevels, StateKey: ""}: {},
+ {EventType: spec.MRoomJoinRules, StateKey: ""}: {},
}
// The overridden events are essential events that must be present in the
@@ -393,10 +394,10 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, oldRoom *api.Query
}
}
- oldCreateEvent := state[gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomCreate, StateKey: ""}]
- oldMembershipEvent := state[gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomMember, StateKey: userID}]
- oldPowerLevelsEvent := state[gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomPowerLevels, StateKey: ""}]
- oldJoinRulesEvent := state[gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomJoinRules, StateKey: ""}]
+ oldCreateEvent := state[gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomCreate, StateKey: ""}]
+ oldMembershipEvent := state[gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomMember, StateKey: userID}]
+ oldPowerLevelsEvent := state[gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomPowerLevels, StateKey: ""}]
+ oldJoinRulesEvent := state[gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomJoinRules, StateKey: ""}]
// Create the new room create event. Using a map here instead of CreateContent
// means that we preserve any other interesting fields that might be present
@@ -410,7 +411,7 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, oldRoom *api.Query
RoomID: roomID,
}
newCreateEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomCreate,
+ Type: spec.MRoomCreate,
StateKey: "",
Content: newCreateContent,
}
@@ -421,9 +422,9 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, oldRoom *api.Query
// the events after it.
newMembershipContent := map[string]interface{}{}
_ = json.Unmarshal(oldMembershipEvent.Content(), &newMembershipContent)
- newMembershipContent["membership"] = gomatrixserverlib.Join
+ newMembershipContent["membership"] = spec.Join
newMembershipEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomMember,
+ Type: spec.MRoomMember,
StateKey: userID,
Content: newMembershipContent,
}
@@ -447,11 +448,11 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, oldRoom *api.Query
// existing join rules contains garbage, the room can still be
// upgraded.
newJoinRulesContent := map[string]interface{}{
- "join_rule": gomatrixserverlib.Invite, // sane default
+ "join_rule": spec.Invite, // sane default
}
_ = json.Unmarshal(oldJoinRulesEvent.Content(), &newJoinRulesContent)
newJoinRulesEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomJoinRules,
+ Type: spec.MRoomJoinRules,
StateKey: "",
Content: newJoinRulesContent,
}
@@ -464,9 +465,9 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, oldRoom *api.Query
// For some reason Sytest expects there to be a guest access event.
// Create one if it doesn't exist.
- if _, ok := state[gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomGuestAccess, StateKey: ""}]; !ok {
+ if _, ok := state[gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomGuestAccess, StateKey: ""}]; !ok {
eventsToMake = append(eventsToMake, fledglingEvent{
- Type: gomatrixserverlib.MRoomGuestAccess,
+ Type: spec.MRoomGuestAccess,
Content: map[string]string{
"guest_access": "forbidden",
},
@@ -495,14 +496,14 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, oldRoom *api.Query
// override that now by restoring the original power levels.
if powerLevelsOverridden {
eventsToMake = append(eventsToMake, fledglingEvent{
- Type: gomatrixserverlib.MRoomPowerLevels,
+ Type: spec.MRoomPowerLevels,
Content: powerLevelContent,
})
}
return eventsToMake, nil
}
-func (r *Upgrader) sendInitialEvents(ctx context.Context, evTime time.Time, userID string, userDomain gomatrixserverlib.ServerName, newRoomID, newVersion string, eventsToMake []fledglingEvent) *api.PerformError {
+func (r *Upgrader) sendInitialEvents(ctx context.Context, evTime time.Time, userID string, userDomain spec.ServerName, newRoomID, newVersion string, eventsToMake []fledglingEvent) *api.PerformError {
var err error
var builtEvents []*gomatrixserverlib.HeaderedEvent
authEvents := gomatrixserverlib.NewAuthEvents(nil)
@@ -681,14 +682,14 @@ func createTemporaryPowerLevels(powerLevelContent *gomatrixserverlib.PowerLevelC
// Then return the temporary power levels event.
return fledglingEvent{
- Type: gomatrixserverlib.MRoomPowerLevels,
+ Type: spec.MRoomPowerLevels,
Content: tempPowerLevelContent,
}, powerLevelsOverridden
}
func (r *Upgrader) sendHeaderedEvent(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
headeredEvent *gomatrixserverlib.HeaderedEvent,
sendAsServer string,
) *api.PerformError {
diff --git a/roomserver/internal/query/query.go b/roomserver/internal/query/query.go
index cac8d995..2c85d3eb 100644
--- a/roomserver/internal/query/query.go
+++ b/roomserver/internal/query/query.go
@@ -22,6 +22,7 @@ import (
"fmt"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
@@ -41,7 +42,7 @@ import (
type Queryer struct {
DB storage.Database
Cache caching.RoomServerCaches
- IsLocalServerName func(gomatrixserverlib.ServerName) bool
+ IsLocalServerName func(spec.ServerName) bool
ServerACLs *acls.ServerACLs
}
@@ -305,7 +306,7 @@ func (r *Queryer) QueryMembershipAtEvent(
// a given event, overwrite any other existing membership events.
for i := range memberships {
ev := memberships[i]
- if ev.Type() == gomatrixserverlib.MRoomMember && ev.StateKeyEquals(request.UserID) {
+ if ev.Type() == spec.MRoomMember && ev.StateKeyEquals(request.UserID) {
response.Membership[eventID] = ev.Event.Headered(info.RoomVersion)
}
}
@@ -435,7 +436,7 @@ func (r *Queryer) QueryServerJoinedToRoom(
// QueryServerAllowedToSeeEvent implements api.RoomserverInternalAPI
func (r *Queryer) QueryServerAllowedToSeeEvent(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
eventID string,
) (allowed bool, err error) {
events, err := r.DB.EventNIDs(ctx, []string{eventID})
@@ -896,7 +897,7 @@ func (r *Queryer) QueryRestrictedJoinAllowed(ctx context.Context, req *api.Query
// the flag.
res.Resident = true
// Get the join rules to work out if the join rule is "restricted".
- joinRulesEvent, err := r.DB.GetStateEvent(ctx, req.RoomID, gomatrixserverlib.MRoomJoinRules, "")
+ joinRulesEvent, err := r.DB.GetStateEvent(ctx, req.RoomID, spec.MRoomJoinRules, "")
if err != nil {
return fmt.Errorf("r.DB.GetStateEvent: %w", err)
}
@@ -908,7 +909,7 @@ func (r *Queryer) QueryRestrictedJoinAllowed(ctx context.Context, req *api.Query
return fmt.Errorf("json.Unmarshal: %w", err)
}
// If the join rule isn't "restricted" then there's nothing more to do.
- res.Restricted = joinRules.JoinRule == gomatrixserverlib.Restricted
+ res.Restricted = joinRules.JoinRule == spec.Restricted
if !res.Restricted {
return nil
}
@@ -925,7 +926,7 @@ func (r *Queryer) QueryRestrictedJoinAllowed(ctx context.Context, req *api.Query
// We need to get the power levels content so that we can determine which
// users in the room are entitled to issue invites. We need to use one of
// these users as the authorising user.
- powerLevelsEvent, err := r.DB.GetStateEvent(ctx, req.RoomID, gomatrixserverlib.MRoomPowerLevels, "")
+ powerLevelsEvent, err := r.DB.GetStateEvent(ctx, req.RoomID, spec.MRoomPowerLevels, "")
if err != nil {
return fmt.Errorf("r.DB.GetStateEvent: %w", err)
}
@@ -937,7 +938,7 @@ func (r *Queryer) QueryRestrictedJoinAllowed(ctx context.Context, req *api.Query
for _, rule := range joinRules.Allow {
// We only understand "m.room_membership" rules at this point in
// time, so skip any rule that doesn't match those.
- if rule.Type != gomatrixserverlib.MRoomMembership {
+ if rule.Type != spec.MRoomMembership {
continue
}
// See if the room exists. If it doesn't exist or if it's a stub
@@ -984,7 +985,7 @@ func (r *Queryer) QueryRestrictedJoinAllowed(ctx context.Context, req *api.Query
continue
}
event := events[0]
- if event.Type() != gomatrixserverlib.MRoomMember || event.StateKey() == nil {
+ if event.Type() != spec.MRoomMember || event.StateKey() == nil {
continue // shouldn't happen
}
// Only users that have the power to invite should be chosen.
diff --git a/roomserver/roomserver_test.go b/roomserver/roomserver_test.go
index 729da15b..67d6db46 100644
--- a/roomserver/roomserver_test.go
+++ b/roomserver/roomserver_test.go
@@ -10,6 +10,7 @@ import (
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/dendrite/internal/httputil"
"github.com/matrix-org/dendrite/internal/sqlutil"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
"github.com/matrix-org/dendrite/roomserver/state"
@@ -61,10 +62,10 @@ func testSharedUsers(t *testing.T, rsAPI api.RoomserverInternalAPI) {
room := test.NewRoom(t, alice, test.RoomPreset(test.PresetTrustedPrivateChat))
// Invite and join Bob
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
@@ -102,7 +103,7 @@ func testKickUsers(t *testing.T, rsAPI api.RoomserverInternalAPI, usrAPI userAPI
room := test.NewRoom(t, alice, test.RoomPreset(test.PresetPublicChat), test.GuestsCanJoin(true))
// Join with the guest user
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
@@ -134,7 +135,7 @@ func testKickUsers(t *testing.T, rsAPI api.RoomserverInternalAPI, usrAPI userAPI
}
// revoke guest access
- revokeEvent := room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomGuestAccess, map[string]string{"guest_access": "forbidden"}, test.WithStateKey(""))
+ revokeEvent := room.CreateAndInsert(t, alice, spec.MRoomGuestAccess, map[string]string{"guest_access": "forbidden"}, test.WithStateKey(""))
if err := api.SendEvents(ctx, rsAPI, api.KindNew, []*gomatrixserverlib.HeaderedEvent{revokeEvent}, "test", "test", "test", nil, false); err != nil {
t.Errorf("failed to send events: %v", err)
}
@@ -164,10 +165,10 @@ func Test_QueryLeftUsers(t *testing.T) {
room := test.NewRoom(t, alice, test.RoomPreset(test.PresetTrustedPrivateChat))
// Invite and join Bob
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
@@ -216,7 +217,7 @@ func TestPurgeRoom(t *testing.T) {
room := test.NewRoom(t, alice, test.RoomPreset(test.PresetTrustedPrivateChat))
// Invite Bob
- inviteEvent := room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ inviteEvent := room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(bob.ID))
@@ -443,7 +444,7 @@ func TestRedaction(t *testing.T) {
redactedEvent := room.CreateAndInsert(t, alice, "m.room.message", map[string]interface{}{"body": "hello world"})
builderEv := mustCreateEvent(t, fledglingEvent{
- Type: gomatrixserverlib.MRoomRedaction,
+ Type: spec.MRoomRedaction,
Sender: alice.ID,
RoomID: room.ID,
Redacts: redactedEvent.EventID(),
@@ -460,7 +461,7 @@ func TestRedaction(t *testing.T) {
redactedEvent := room.CreateAndInsert(t, bob, "m.room.message", map[string]interface{}{"body": "hello world"})
builderEv := mustCreateEvent(t, fledglingEvent{
- Type: gomatrixserverlib.MRoomRedaction,
+ Type: spec.MRoomRedaction,
Sender: alice.ID,
RoomID: room.ID,
Redacts: redactedEvent.EventID(),
@@ -477,7 +478,7 @@ func TestRedaction(t *testing.T) {
redactedEvent := room.CreateAndInsert(t, alice, "m.room.message", map[string]interface{}{"body": "hello world"})
builderEv := mustCreateEvent(t, fledglingEvent{
- Type: gomatrixserverlib.MRoomRedaction,
+ Type: spec.MRoomRedaction,
Sender: bob.ID,
RoomID: room.ID,
Redacts: redactedEvent.EventID(),
@@ -493,7 +494,7 @@ func TestRedaction(t *testing.T) {
redactedEvent := room.CreateAndInsert(t, bob, "m.room.message", map[string]interface{}{"body": "hello world"})
builderEv := mustCreateEvent(t, fledglingEvent{
- Type: gomatrixserverlib.MRoomRedaction,
+ Type: spec.MRoomRedaction,
Sender: charlie.ID,
RoomID: room.ID,
Redacts: redactedEvent.EventID(),
@@ -523,10 +524,10 @@ func TestRedaction(t *testing.T) {
var err error
room := test.NewRoom(t, alice, test.RoomPreset(test.PresetPublicChat))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, charlie, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, charlie, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(charlie.ID))
@@ -568,7 +569,7 @@ func TestRedaction(t *testing.T) {
if redactedEvent != nil {
assert.Equal(t, ev.Redacts(), redactedEvent.EventID())
}
- if ev.Type() == gomatrixserverlib.MRoomRedaction {
+ if ev.Type() == spec.MRoomRedaction {
nids, err := db.EventNIDs(ctx, []string{ev.Redacts()})
assert.NoError(t, err)
evs, err := db.Events(ctx, roomInfo, []types.EventNID{nids[ev.Redacts()].EventNID})
diff --git a/roomserver/storage/interface.go b/roomserver/storage/interface.go
index 5b90f8b3..b80184f9 100644
--- a/roomserver/storage/interface.go
+++ b/roomserver/storage/interface.go
@@ -18,6 +18,7 @@ import (
"context"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/roomserver/state"
"github.com/matrix-org/dendrite/roomserver/storage/shared"
@@ -162,7 +163,7 @@ type Database interface {
// GetLocalServerInRoom returns true if we think we're in a given room or false otherwise.
GetLocalServerInRoom(ctx context.Context, roomNID types.RoomNID) (bool, error)
// GetServerInRoom returns true if we think a server is in a given room or false otherwise.
- GetServerInRoom(ctx context.Context, roomNID types.RoomNID, serverName gomatrixserverlib.ServerName) (bool, error)
+ GetServerInRoom(ctx context.Context, roomNID types.RoomNID, serverName spec.ServerName) (bool, error)
// GetKnownUsers searches all users that userID knows about.
GetKnownUsers(ctx context.Context, userID, searchString string, limit int) ([]string, error)
// GetKnownRooms returns a list of all rooms we know about.
diff --git a/roomserver/storage/postgres/membership_table.go b/roomserver/storage/postgres/membership_table.go
index d774b789..835a43b2 100644
--- a/roomserver/storage/postgres/membership_table.go
+++ b/roomserver/storage/postgres/membership_table.go
@@ -21,13 +21,13 @@ import (
"fmt"
"github.com/lib/pq"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/roomserver/storage/postgres/deltas"
"github.com/matrix-org/dendrite/roomserver/storage/tables"
"github.com/matrix-org/dendrite/roomserver/types"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const membershipSchema = `
@@ -450,7 +450,7 @@ func (s *membershipStatements) SelectLocalServerInRoom(
func (s *membershipStatements) SelectServerInRoom(
ctx context.Context, txn *sql.Tx,
- roomNID types.RoomNID, serverName gomatrixserverlib.ServerName,
+ roomNID types.RoomNID, serverName spec.ServerName,
) (bool, error) {
var nid types.RoomNID
stmt := sqlutil.TxStmt(txn, s.selectServerInRoomStmt)
diff --git a/roomserver/storage/shared/storage.go b/roomserver/storage/shared/storage.go
index 78bda95e..17095709 100644
--- a/roomserver/storage/shared/storage.go
+++ b/roomserver/storage/shared/storage.go
@@ -8,6 +8,7 @@ import (
"sort"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/tidwall/gjson"
@@ -905,7 +906,7 @@ func extractRoomVersionFromCreateEvent(event *gomatrixserverlib.Event) (
var err error
var roomVersion gomatrixserverlib.RoomVersion
// Look for m.room.create events.
- if event.Type() != gomatrixserverlib.MRoomCreate {
+ if event.Type() != spec.MRoomCreate {
return gomatrixserverlib.RoomVersion(""), nil
}
roomVersion = gomatrixserverlib.RoomVersionV1
@@ -949,7 +950,7 @@ func (d *EventDatabase) MaybeRedactEvent(
)
wErr := d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
- isRedactionEvent := event.Type() == gomatrixserverlib.MRoomRedaction && event.StateKey() == nil
+ isRedactionEvent := event.Type() == spec.MRoomRedaction && event.StateKey() == nil
if isRedactionEvent {
// an event which redacts itself should be ignored
if event.EventID() == event.Redacts() {
@@ -1044,7 +1045,7 @@ func (d *EventDatabase) loadRedactionPair(
var redactionEvent, redactedEvent *types.Event
var info *tables.RedactionInfo
var err error
- isRedactionEvent := event.Type() == gomatrixserverlib.MRoomRedaction && event.StateKey() == nil
+ isRedactionEvent := event.Type() == spec.MRoomRedaction && event.StateKey() == nil
var eventBeingRedacted string
if isRedactionEvent {
@@ -1469,7 +1470,7 @@ func (d *Database) GetLocalServerInRoom(ctx context.Context, roomNID types.RoomN
}
// GetServerInRoom returns true if we think a server is in a given room or false otherwise.
-func (d *Database) GetServerInRoom(ctx context.Context, roomNID types.RoomNID, serverName gomatrixserverlib.ServerName) (bool, error) {
+func (d *Database) GetServerInRoom(ctx context.Context, roomNID types.RoomNID, serverName spec.ServerName) (bool, error) {
return d.MembershipTable.SelectServerInRoom(ctx, nil, roomNID, serverName)
}
diff --git a/roomserver/storage/sqlite3/membership_table.go b/roomserver/storage/sqlite3/membership_table.go
index 8a60b359..977788d5 100644
--- a/roomserver/storage/sqlite3/membership_table.go
+++ b/roomserver/storage/sqlite3/membership_table.go
@@ -21,13 +21,12 @@ import (
"fmt"
"strings"
- "github.com/matrix-org/gomatrixserverlib"
-
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/roomserver/storage/sqlite3/deltas"
"github.com/matrix-org/dendrite/roomserver/storage/tables"
"github.com/matrix-org/dendrite/roomserver/types"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const membershipSchema = `
@@ -398,7 +397,7 @@ func (s *membershipStatements) SelectLocalServerInRoom(ctx context.Context, txn
return found, nil
}
-func (s *membershipStatements) SelectServerInRoom(ctx context.Context, txn *sql.Tx, roomNID types.RoomNID, serverName gomatrixserverlib.ServerName) (bool, error) {
+func (s *membershipStatements) SelectServerInRoom(ctx context.Context, txn *sql.Tx, roomNID types.RoomNID, serverName spec.ServerName) (bool, error) {
var nid types.RoomNID
stmt := sqlutil.TxStmt(txn, s.selectServerInRoomStmt)
err := stmt.QueryRowContext(ctx, tables.MembershipStateJoin, roomNID, serverName).Scan(&nid)
diff --git a/roomserver/storage/tables/interface.go b/roomserver/storage/tables/interface.go
index 4ce2a9c4..45dc0fc2 100644
--- a/roomserver/storage/tables/interface.go
+++ b/roomserver/storage/tables/interface.go
@@ -6,6 +6,7 @@ import (
"errors"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/tidwall/gjson"
"github.com/matrix-org/dendrite/roomserver/types"
@@ -147,7 +148,7 @@ type Membership interface {
SelectKnownUsers(ctx context.Context, txn *sql.Tx, userID types.EventStateKeyNID, searchString string, limit int) ([]string, error)
UpdateForgetMembership(ctx context.Context, txn *sql.Tx, roomNID types.RoomNID, targetUserNID types.EventStateKeyNID, forget bool) error
SelectLocalServerInRoom(ctx context.Context, txn *sql.Tx, roomNID types.RoomNID) (bool, error)
- SelectServerInRoom(ctx context.Context, txn *sql.Tx, roomNID types.RoomNID, serverName gomatrixserverlib.ServerName) (bool, error)
+ SelectServerInRoom(ctx context.Context, txn *sql.Tx, roomNID types.RoomNID, serverName spec.ServerName) (bool, error)
DeleteMembership(ctx context.Context, txn *sql.Tx, roomNID types.RoomNID, targetUserNID types.EventStateKeyNID) error
SelectJoinedUsers(ctx context.Context, txn *sql.Tx, targetUserNIDs []types.EventStateKeyNID) ([]types.EventStateKeyNID, error)
}
@@ -199,17 +200,17 @@ func ExtractContentValue(ev *gomatrixserverlib.HeaderedEvent) string {
content := ev.Content()
key := ""
switch ev.Type() {
- case gomatrixserverlib.MRoomCreate:
+ case spec.MRoomCreate:
key = "creator"
- case gomatrixserverlib.MRoomCanonicalAlias:
+ case spec.MRoomCanonicalAlias:
key = "alias"
- case gomatrixserverlib.MRoomHistoryVisibility:
+ case spec.MRoomHistoryVisibility:
key = "history_visibility"
- case gomatrixserverlib.MRoomJoinRules:
+ case spec.MRoomJoinRules:
key = "join_rule"
- case gomatrixserverlib.MRoomMember:
+ case spec.MRoomMember:
key = "membership"
- case gomatrixserverlib.MRoomName:
+ case spec.MRoomName:
key = "name"
case "m.room.avatar":
key = "url"
diff --git a/setup/config/config.go b/setup/config/config.go
index 1a25f71e..41396ae3 100644
--- a/setup/config/config.go
+++ b/setup/config/config.go
@@ -26,6 +26,7 @@ import (
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
"golang.org/x/crypto/ed25519"
"gopkg.in/yaml.v2"
@@ -239,7 +240,7 @@ func loadConfig(
key.KeyID = keyID
key.PrivateKey = privateKey
- key.PublicKey = gomatrixserverlib.Base64Bytes(privateKey.Public().(ed25519.PublicKey))
+ key.PublicKey = spec.Base64Bytes(privateKey.Public().(ed25519.PublicKey))
case key.KeyID == "":
return nil, fmt.Errorf("'key_id' must be specified if 'public_key' is specified")
diff --git a/setup/config/config_federationapi.go b/setup/config/config_federationapi.go
index 8c1540b5..a72eee36 100644
--- a/setup/config/config_federationapi.go
+++ b/setup/config/config_federationapi.go
@@ -2,6 +2,7 @@ package config
import (
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type FederationAPI struct {
@@ -101,7 +102,7 @@ type KeyPerspectives []KeyPerspective
type KeyPerspective struct {
// The server name of the perspective key server
- ServerName gomatrixserverlib.ServerName `yaml:"server_name"`
+ ServerName spec.ServerName `yaml:"server_name"`
// Server keys for the perspective user, used to verify the
// keys have been signed by the perspective server
Keys []KeyPerspectiveTrustKey `yaml:"keys"`
diff --git a/setup/config/config_global.go b/setup/config/config_global.go
index 0687e9d3..1622bf35 100644
--- a/setup/config/config_global.go
+++ b/setup/config/config_global.go
@@ -9,6 +9,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"golang.org/x/crypto/ed25519"
)
@@ -122,7 +123,7 @@ func (c *Global) Verify(configErrs *ConfigErrors) {
c.Cache.Verify(configErrs)
}
-func (c *Global) IsLocalServerName(serverName gomatrixserverlib.ServerName) bool {
+func (c *Global) IsLocalServerName(serverName spec.ServerName) bool {
if c.ServerName == serverName {
return true
}
@@ -134,7 +135,7 @@ func (c *Global) IsLocalServerName(serverName gomatrixserverlib.ServerName) bool
return false
}
-func (c *Global) SplitLocalID(sigil byte, id string) (string, gomatrixserverlib.ServerName, error) {
+func (c *Global) SplitLocalID(sigil byte, id string) (string, spec.ServerName, error) {
u, s, err := gomatrixserverlib.SplitID(sigil, id)
if err != nil {
return u, s, err
@@ -145,7 +146,7 @@ func (c *Global) SplitLocalID(sigil byte, id string) (string, gomatrixserverlib.
return u, s, nil
}
-func (c *Global) VirtualHost(serverName gomatrixserverlib.ServerName) *VirtualHost {
+func (c *Global) VirtualHost(serverName spec.ServerName) *VirtualHost {
for _, v := range c.VirtualHosts {
if v.ServerName == serverName {
return v
@@ -154,7 +155,7 @@ func (c *Global) VirtualHost(serverName gomatrixserverlib.ServerName) *VirtualHo
return nil
}
-func (c *Global) VirtualHostForHTTPHost(serverName gomatrixserverlib.ServerName) *VirtualHost {
+func (c *Global) VirtualHostForHTTPHost(serverName spec.ServerName) *VirtualHost {
for _, v := range c.VirtualHosts {
if v.ServerName == serverName {
return v
@@ -168,7 +169,7 @@ func (c *Global) VirtualHostForHTTPHost(serverName gomatrixserverlib.ServerName)
return nil
}
-func (c *Global) SigningIdentityFor(serverName gomatrixserverlib.ServerName) (*fclient.SigningIdentity, error) {
+func (c *Global) SigningIdentityFor(serverName spec.ServerName) (*fclient.SigningIdentity, error) {
for _, id := range c.SigningIdentities() {
if id.ServerName == serverName {
return id, nil
@@ -205,7 +206,7 @@ type VirtualHost struct {
// Match these HTTP Host headers on the `/key/v2/server` endpoint, this needs
// to match all delegated names, likely including the port number too if
// the well-known delegation includes that also.
- MatchHTTPHosts []gomatrixserverlib.ServerName `yaml:"match_http_hosts"`
+ MatchHTTPHosts []spec.ServerName `yaml:"match_http_hosts"`
// Is registration enabled on this virtual host?
AllowRegistration bool `yaml:"allow_registration"`
@@ -236,14 +237,14 @@ type OldVerifyKeys struct {
PrivateKey ed25519.PrivateKey `yaml:"-"`
// The public key, in case only that part is known.
- PublicKey gomatrixserverlib.Base64Bytes `yaml:"public_key"`
+ PublicKey spec.Base64Bytes `yaml:"public_key"`
// The key ID of the private key.
KeyID gomatrixserverlib.KeyID `yaml:"key_id"`
// When the private key was designed as "expired", as a UNIX timestamp
// in millisecond precision.
- ExpiredAt gomatrixserverlib.Timestamp `yaml:"expired_at"`
+ ExpiredAt spec.Timestamp `yaml:"expired_at"`
}
// The configuration to use for Prometheus metrics
diff --git a/setup/config/config_test.go b/setup/config/config_test.go
index a0509aaf..8a65c990 100644
--- a/setup/config/config_test.go
+++ b/setup/config/config_test.go
@@ -19,8 +19,8 @@ import (
"reflect"
"testing"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
"gopkg.in/yaml.v2"
)
@@ -275,7 +275,7 @@ func Test_SigningIdentityFor(t *testing.T) {
tests := []struct {
name string
virtualHosts []*VirtualHost
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
want *fclient.SigningIdentity
wantErr bool
}{
@@ -285,17 +285,17 @@ func Test_SigningIdentityFor(t *testing.T) {
},
{
name: "no identity found",
- serverName: gomatrixserverlib.ServerName("doesnotexist"),
+ serverName: spec.ServerName("doesnotexist"),
wantErr: true,
},
{
name: "found identity",
- serverName: gomatrixserverlib.ServerName("main"),
+ serverName: spec.ServerName("main"),
want: &fclient.SigningIdentity{ServerName: "main"},
},
{
name: "identity found on virtual hosts",
- serverName: gomatrixserverlib.ServerName("vh2"),
+ serverName: spec.ServerName("vh2"),
virtualHosts: []*VirtualHost{
{SigningIdentity: fclient.SigningIdentity{ServerName: "vh1"}},
{SigningIdentity: fclient.SigningIdentity{ServerName: "vh2"}},
diff --git a/setup/mscs/msc2836/msc2836.go b/setup/mscs/msc2836/msc2836.go
index a12a28b1..8982e6e3 100644
--- a/setup/mscs/msc2836/msc2836.go
+++ b/setup/mscs/msc2836/msc2836.go
@@ -38,6 +38,7 @@ import (
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -134,7 +135,7 @@ func Enable(
routers.Federation.Handle("/unstable/event_relationships", httputil.MakeExternalAPI(
"msc2836_event_relationships", func(req *http.Request) util.JSONResponse {
- fedReq, errResp := gomatrixserverlib.VerifyHTTPRequest(
+ fedReq, errResp := fclient.VerifyHTTPRequest(
req, time.Now(), cfg.Global.ServerName, cfg.Global.IsLocalServerName, keyRing,
)
if fedReq == nil {
@@ -156,7 +157,7 @@ type reqCtx struct {
// federated request args
isFederatedRequest bool
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
fsAPI fs.FederationInternalAPI
}
@@ -192,7 +193,7 @@ func eventRelationshipHandler(db Database, rsAPI roomserver.RoomserverInternalAP
}
func federatedEventRelationship(
- ctx context.Context, fedReq *gomatrixserverlib.FederationRequest, db Database, rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationInternalAPI,
+ ctx context.Context, fedReq *fclient.FederationRequest, db Database, rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationInternalAPI,
) util.JSONResponse {
relation, err := NewEventRelationshipRequest(bytes.NewBuffer(fedReq.Content()))
if err != nil {
@@ -486,7 +487,7 @@ func walkThread(
}
// MSC2836EventRelationships performs an /event_relationships request to a remote server
-func (rc *reqCtx) MSC2836EventRelationships(eventID string, srv gomatrixserverlib.ServerName, ver gomatrixserverlib.RoomVersion) (*MSC2836EventRelationshipsResponse, error) {
+func (rc *reqCtx) MSC2836EventRelationships(eventID string, srv spec.ServerName, ver gomatrixserverlib.RoomVersion) (*MSC2836EventRelationshipsResponse, error) {
res, err := rc.fsAPI.MSC2836EventRelationships(rc.ctx, rc.serverName, srv, fclient.MSC2836EventRelationshipsRequest{
EventID: eventID,
DepthFirst: rc.req.DepthFirst,
@@ -545,7 +546,7 @@ func (rc *reqCtx) authorisedToSeeEvent(event *gomatrixserverlib.HeaderedEvent) b
return queryMembershipRes.IsInRoom
}
-func (rc *reqCtx) getServersForEventID(eventID string) []gomatrixserverlib.ServerName {
+func (rc *reqCtx) getServersForEventID(eventID string) []spec.ServerName {
if rc.req.RoomID == "" {
util.GetLogger(rc.ctx).WithField("event_id", eventID).Error(
"getServersForEventID: event exists in unknown room",
@@ -689,7 +690,7 @@ func (rc *reqCtx) addChildMetadata(ev *gomatrixserverlib.HeaderedEvent) {
if count == 0 {
return
}
- err := ev.SetUnsignedField("children_hash", gomatrixserverlib.Base64Bytes(hash))
+ err := ev.SetUnsignedField("children_hash", spec.Base64Bytes(hash))
if err != nil {
util.GetLogger(rc.ctx).WithError(err).Warn("Failed to set children_hash")
}
diff --git a/setup/mscs/msc2836/msc2836_test.go b/setup/mscs/msc2836/msc2836_test.go
index 3c443148..a06b7211 100644
--- a/setup/mscs/msc2836/msc2836_test.go
+++ b/setup/mscs/msc2836/msc2836_test.go
@@ -18,6 +18,7 @@ import (
"github.com/matrix-org/dendrite/setup/process"
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal/hooks"
"github.com/matrix-org/dendrite/internal/httputil"
@@ -596,7 +597,7 @@ func mustCreateEvent(t *testing.T, ev fledglingEvent) (result *gomatrixserverlib
}
// make sure the origin_server_ts changes so we can test recency
time.Sleep(1 * time.Millisecond)
- signedEvent, err := eb.Build(time.Now(), gomatrixserverlib.ServerName("localhost"), "ed25519:test", key, roomVer)
+ signedEvent, err := eb.Build(time.Now(), spec.ServerName("localhost"), "ed25519:test", key, roomVer)
if err != nil {
t.Fatalf("mustCreateEvent: failed to sign event: %s", err)
}
diff --git a/setup/mscs/msc2836/storage.go b/setup/mscs/msc2836/storage.go
index 1cf7e878..4f348192 100644
--- a/setup/mscs/msc2836/storage.go
+++ b/setup/mscs/msc2836/storage.go
@@ -10,12 +10,13 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
type eventInfo struct {
EventID string
- OriginServerTS gomatrixserverlib.Timestamp
+ OriginServerTS spec.Timestamp
RoomID string
}
@@ -350,8 +351,8 @@ func roomIDAndServers(ev *gomatrixserverlib.HeaderedEvent) (roomID string, serve
func extractChildMetadata(ev *gomatrixserverlib.HeaderedEvent) (count int, hash []byte) {
unsigned := struct {
- Counts map[string]int `json:"children"`
- Hash gomatrixserverlib.Base64Bytes `json:"children_hash"`
+ Counts map[string]int `json:"children"`
+ Hash spec.Base64Bytes `json:"children_hash"`
}{}
if err := json.Unmarshal(ev.Unsigned(), &unsigned); err != nil {
// expected if there is no unsigned field at all
diff --git a/setup/mscs/msc2946/msc2946.go b/setup/mscs/msc2946/msc2946.go
index 965af920..80d6c598 100644
--- a/setup/mscs/msc2946/msc2946.go
+++ b/setup/mscs/msc2946/msc2946.go
@@ -37,6 +37,7 @@ import (
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/tidwall/gjson"
)
@@ -64,7 +65,7 @@ func Enable(
fedAPI := httputil.MakeExternalAPI(
"msc2946_fed_spaces", func(req *http.Request) util.JSONResponse {
- fedReq, errResp := gomatrixserverlib.VerifyHTTPRequest(
+ fedReq, errResp := fclient.VerifyHTTPRequest(
req, time.Now(), cfg.Global.ServerName, cfg.Global.IsLocalServerName, keyRing,
)
if fedReq == nil {
@@ -85,10 +86,10 @@ func Enable(
}
func federatedSpacesHandler(
- ctx context.Context, fedReq *gomatrixserverlib.FederationRequest, roomID string,
+ ctx context.Context, fedReq *fclient.FederationRequest, roomID string,
cache caching.SpaceSummaryRoomsCache,
rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationInternalAPI,
- thisServer gomatrixserverlib.ServerName,
+ thisServer spec.ServerName,
) util.JSONResponse {
u, err := url.Parse(fedReq.RequestURI())
if err != nil {
@@ -122,7 +123,7 @@ func spacesHandler(
rsAPI roomserver.RoomserverInternalAPI,
fsAPI fs.FederationInternalAPI,
cache caching.SpaceSummaryRoomsCache,
- thisServer gomatrixserverlib.ServerName,
+ thisServer spec.ServerName,
) func(*http.Request, *userapi.Device) util.JSONResponse {
// declared outside the returned handler so it persists between calls
// TODO: clear based on... time?
@@ -162,8 +163,8 @@ type paginationInfo struct {
type walker struct {
rootRoomID string
caller *userapi.Device
- serverName gomatrixserverlib.ServerName
- thisServer gomatrixserverlib.ServerName
+ serverName spec.ServerName
+ thisServer spec.ServerName
rsAPI roomserver.RoomserverInternalAPI
fsAPI fs.FederationInternalAPI
ctx context.Context
@@ -269,7 +270,7 @@ func (w *walker) walk() util.JSONResponse {
// if this room is not a space room, skip.
var roomType string
- create := w.stateEvent(rv.roomID, gomatrixserverlib.MRoomCreate, "")
+ create := w.stateEvent(rv.roomID, spec.MRoomCreate, "")
if create != nil {
// escape the `.`s so gjson doesn't think it's nested
roomType = gjson.GetBytes(create.Content(), strings.ReplaceAll(ConstCreateEventContentKey, ".", `\.`)).Str
@@ -434,7 +435,7 @@ func (w *walker) federatedRoomInfo(roomID string, vias []string) *fclient.MSC294
if serverName == string(w.thisServer) {
continue
}
- res, err := w.fsAPI.MSC2946Spaces(ctx, w.thisServer, gomatrixserverlib.ServerName(serverName), roomID, w.suggestedOnly)
+ res, err := w.fsAPI.MSC2946Spaces(ctx, w.thisServer, spec.ServerName(serverName), roomID, w.suggestedOnly)
if err != nil {
util.GetLogger(w.ctx).WithError(err).Warnf("failed to call MSC2946Spaces on server %s", serverName)
continue
@@ -484,11 +485,11 @@ func (w *walker) authorised(roomID, parentRoomID string) (authed, isJoinedOrInvi
func (w *walker) authorisedServer(roomID string) bool {
// Check history visibility / join rules first
hisVisTuple := gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomHistoryVisibility,
+ EventType: spec.MRoomHistoryVisibility,
StateKey: "",
}
joinRuleTuple := gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomJoinRules,
+ EventType: spec.MRoomJoinRules,
StateKey: "",
}
var queryRoomRes roomserver.QueryCurrentStateResponse
@@ -522,11 +523,11 @@ func (w *walker) authorisedServer(roomID string) bool {
return false
}
- if rule == gomatrixserverlib.Public || rule == gomatrixserverlib.Knock {
+ if rule == spec.Public || rule == spec.Knock {
return true
}
- if rule == gomatrixserverlib.Restricted {
+ if rule == spec.Restricted {
allowJoinedToRoomIDs = append(allowJoinedToRoomIDs, w.restrictedJoinRuleAllowedRooms(joinRuleEv, "m.room_membership")...)
}
}
@@ -556,15 +557,15 @@ func (w *walker) authorisedServer(roomID string) bool {
// Failing that, if the room has a restricted join rule and belongs to the space parent listed, it will return true.
func (w *walker) authorisedUser(roomID, parentRoomID string) (authed bool, isJoinedOrInvited bool) {
hisVisTuple := gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomHistoryVisibility,
+ EventType: spec.MRoomHistoryVisibility,
StateKey: "",
}
joinRuleTuple := gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomJoinRules,
+ EventType: spec.MRoomJoinRules,
StateKey: "",
}
roomMemberTuple := gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomMember,
+ EventType: spec.MRoomMember,
StateKey: w.caller.UserID,
}
var queryRes roomserver.QueryCurrentStateResponse
@@ -581,7 +582,7 @@ func (w *walker) authorisedUser(roomID, parentRoomID string) (authed bool, isJoi
memberEv := queryRes.StateEvents[roomMemberTuple]
if memberEv != nil {
membership, _ := memberEv.Membership()
- if membership == gomatrixserverlib.Join || membership == gomatrixserverlib.Invite {
+ if membership == spec.Join || membership == spec.Invite {
return true, true
}
}
@@ -598,9 +599,9 @@ func (w *walker) authorisedUser(roomID, parentRoomID string) (authed bool, isJoi
rule, ruleErr := joinRuleEv.JoinRule()
if ruleErr != nil {
util.GetLogger(w.ctx).WithError(ruleErr).WithField("parent_room_id", parentRoomID).Warn("failed to get join rule")
- } else if rule == gomatrixserverlib.Public || rule == gomatrixserverlib.Knock {
+ } else if rule == spec.Public || rule == spec.Knock {
allowed = true
- } else if rule == gomatrixserverlib.Restricted {
+ } else if rule == spec.Restricted {
allowedRoomIDs := w.restrictedJoinRuleAllowedRooms(joinRuleEv, "m.room_membership")
// check parent is in the allowed set
for _, a := range allowedRoomIDs {
@@ -625,7 +626,7 @@ func (w *walker) authorisedUser(roomID, parentRoomID string) (authed bool, isJoi
memberEv = queryRes2.StateEvents[roomMemberTuple]
if memberEv != nil {
membership, _ := memberEv.Membership()
- if membership == gomatrixserverlib.Join {
+ if membership == spec.Join {
return true, false
}
}
@@ -637,7 +638,7 @@ func (w *walker) authorisedUser(roomID, parentRoomID string) (authed bool, isJoi
func (w *walker) restrictedJoinRuleAllowedRooms(joinRuleEv *gomatrixserverlib.HeaderedEvent, allowType string) (allows []string) {
rule, _ := joinRuleEv.JoinRule()
- if rule != gomatrixserverlib.Restricted {
+ if rule != spec.Restricted {
return nil
}
var jrContent gomatrixserverlib.JoinRuleContent
@@ -656,7 +657,7 @@ func (w *walker) restrictedJoinRuleAllowedRooms(joinRuleEv *gomatrixserverlib.He
// references returns all child references pointing to or from this room.
func (w *walker) childReferences(roomID string) ([]fclient.MSC2946StrippedEvent, error) {
createTuple := gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomCreate,
+ EventType: spec.MRoomCreate,
StateKey: "",
}
var res roomserver.QueryCurrentStateResponse
diff --git a/syncapi/consumers/clientapi.go b/syncapi/consumers/clientapi.go
index 43dc0f51..3ed455e9 100644
--- a/syncapi/consumers/clientapi.go
+++ b/syncapi/consumers/clientapi.go
@@ -21,7 +21,7 @@ import (
"time"
"github.com/getsentry/sentry-go"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/sirupsen/logrus"
log "github.com/sirupsen/logrus"
@@ -49,7 +49,7 @@ type OutputClientDataConsumer struct {
db storage.Database
stream streams.StreamProvider
notifier *notifier.Notifier
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
fts fulltext.Indexer
cfg *config.SyncAPI
}
@@ -121,9 +121,9 @@ func (s *OutputClientDataConsumer) Start() error {
switch ev.Type() {
case "m.room.message":
e.Content = gjson.GetBytes(ev.Content(), "body").String()
- case gomatrixserverlib.MRoomName:
+ case spec.MRoomName:
e.Content = gjson.GetBytes(ev.Content(), "name").String()
- case gomatrixserverlib.MRoomTopic:
+ case spec.MRoomTopic:
e.Content = gjson.GetBytes(ev.Content(), "topic").String()
default:
continue
diff --git a/syncapi/consumers/presence.go b/syncapi/consumers/presence.go
index 6e3150c2..c7c0866b 100644
--- a/syncapi/consumers/presence.go
+++ b/syncapi/consumers/presence.go
@@ -26,7 +26,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/streams"
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/sirupsen/logrus"
)
@@ -108,7 +108,7 @@ func (s *PresenceConsumer) Start() error {
for i := range deviceRes.Devices {
if int64(presence.LastActiveTS) < deviceRes.Devices[i].LastSeenTS {
- presence.LastActiveTS = gomatrixserverlib.Timestamp(deviceRes.Devices[i].LastSeenTS)
+ presence.LastActiveTS = spec.Timestamp(deviceRes.Devices[i].LastSeenTS)
}
}
@@ -161,11 +161,11 @@ func (s *PresenceConsumer) onMessage(ctx context.Context, msgs []*nats.Msg) bool
// already checked, so no need to check error
p, _ := types.PresenceFromString(presence)
- s.EmitPresence(ctx, userID, p, statusMsg, gomatrixserverlib.Timestamp(ts), fromSync)
+ s.EmitPresence(ctx, userID, p, statusMsg, spec.Timestamp(ts), fromSync)
return true
}
-func (s *PresenceConsumer) EmitPresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, ts gomatrixserverlib.Timestamp, fromSync bool) {
+func (s *PresenceConsumer) EmitPresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, ts spec.Timestamp, fromSync bool) {
pos, err := s.db.UpdatePresence(ctx, userID, presence, statusMsg, ts, fromSync)
if err != nil {
logrus.WithError(err).WithField("user", userID).WithField("presence", presence).Warn("failed to updated presence for user")
diff --git a/syncapi/consumers/receipts.go b/syncapi/consumers/receipts.go
index e39d43f9..69571f90 100644
--- a/syncapi/consumers/receipts.go
+++ b/syncapi/consumers/receipts.go
@@ -19,7 +19,6 @@ import (
"strconv"
"github.com/getsentry/sentry-go"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
@@ -30,6 +29,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/streams"
"github.com/matrix-org/dendrite/syncapi/types"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// OutputReceiptEventConsumer consumes events that originated in the EDU server.
@@ -89,7 +89,7 @@ func (s *OutputReceiptEventConsumer) onMessage(ctx context.Context, msgs []*nats
return true
}
- output.Timestamp = gomatrixserverlib.Timestamp(timestamp)
+ output.Timestamp = spec.Timestamp(timestamp)
streamPos, err := s.db.StoreReceipt(
s.ctx,
diff --git a/syncapi/consumers/roomserver.go b/syncapi/consumers/roomserver.go
index 21f6104d..c842c0c3 100644
--- a/syncapi/consumers/roomserver.go
+++ b/syncapi/consumers/roomserver.go
@@ -22,6 +22,7 @@ import (
"github.com/getsentry/sentry-go"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/sirupsen/logrus"
log "github.com/sirupsen/logrus"
@@ -108,7 +109,7 @@ func (s *OutputRoomEventConsumer) onMessage(ctx context.Context, msgs []*nats.Ms
// Ignore redaction events. We will add them to the database when they are
// validated (when we receive OutputTypeRedactedEvent)
event := output.NewRoomEvent.Event
- if event.Type() == gomatrixserverlib.MRoomRedaction && event.StateKey() == nil {
+ if event.Type() == spec.MRoomRedaction && event.StateKey() == nil {
// in the special case where the event redacts itself, just pass the message through because
// we will never see the other part of the pair
if event.Redacts() != event.EventID() {
@@ -362,7 +363,7 @@ func (s *OutputRoomEventConsumer) onOldRoomEvent(
}
func (s *OutputRoomEventConsumer) notifyJoinedPeeks(ctx context.Context, ev *gomatrixserverlib.HeaderedEvent, sp types.StreamPosition) (types.StreamPosition, error) {
- if ev.Type() != gomatrixserverlib.MRoomMember {
+ if ev.Type() != spec.MRoomMember {
return sp, nil
}
membership, err := ev.Membership()
@@ -370,7 +371,7 @@ func (s *OutputRoomEventConsumer) notifyJoinedPeeks(ctx context.Context, ev *gom
return sp, fmt.Errorf("ev.Membership: %w", err)
}
// TODO: check that it's a join and not a profile change (means unmarshalling prev_content)
- if membership == gomatrixserverlib.Join {
+ if membership == spec.Join {
// check it's a local join
if _, _, err := s.cfg.Matrix.SplitLocalID('@', *ev.StateKey()); err != nil {
return sp, nil
@@ -433,7 +434,7 @@ func (s *OutputRoomEventConsumer) onRetireInviteEvent(
// Only notify clients about retired invite events, if the user didn't accept the invite.
// The PDU stream will also receive an event about accepting the invitation, so there should
// be a "smooth" transition from invite -> join, and not invite -> leave -> join
- if msg.Membership == gomatrixserverlib.Join {
+ if msg.Membership == spec.Join {
return
}
@@ -544,11 +545,11 @@ func (s *OutputRoomEventConsumer) writeFTS(ev *gomatrixserverlib.HeaderedEvent,
switch ev.Type() {
case "m.room.message":
e.Content = gjson.GetBytes(ev.Content(), "body").String()
- case gomatrixserverlib.MRoomName:
+ case spec.MRoomName:
e.Content = gjson.GetBytes(ev.Content(), "name").String()
- case gomatrixserverlib.MRoomTopic:
+ case spec.MRoomTopic:
e.Content = gjson.GetBytes(ev.Content(), "topic").String()
- case gomatrixserverlib.MRoomRedaction:
+ case spec.MRoomRedaction:
log.Tracef("Redacting event: %s", ev.Redacts())
if err := s.fts.Delete(ev.Redacts()); err != nil {
return fmt.Errorf("failed to delete entry from fulltext index: %w", err)
diff --git a/syncapi/consumers/sendtodevice.go b/syncapi/consumers/sendtodevice.go
index 32208c58..7f387dc0 100644
--- a/syncapi/consumers/sendtodevice.go
+++ b/syncapi/consumers/sendtodevice.go
@@ -20,6 +20,7 @@ import (
"github.com/getsentry/sentry-go"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
@@ -43,7 +44,7 @@ type OutputSendToDeviceEventConsumer struct {
topic string
db storage.Database
userAPI api.SyncKeyAPI
- isLocalServerName func(gomatrixserverlib.ServerName) bool
+ isLocalServerName func(spec.ServerName) bool
stream streams.StreamProvider
notifier *notifier.Notifier
}
diff --git a/syncapi/internal/history_visibility.go b/syncapi/internal/history_visibility.go
index ee695f0f..10d7383b 100644
--- a/syncapi/internal/history_visibility.go
+++ b/syncapi/internal/history_visibility.go
@@ -20,6 +20,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/prometheus/client_golang/prometheus"
"github.com/sirupsen/logrus"
"github.com/tidwall/gjson"
@@ -50,7 +51,7 @@ var calculateHistoryVisibilityDuration = prometheus.NewHistogramVec(
)
var historyVisibilityPriority = map[gomatrixserverlib.HistoryVisibility]uint8{
- gomatrixserverlib.WorldReadable: 0,
+ spec.WorldReadable: 0,
gomatrixserverlib.HistoryVisibilityShared: 1,
gomatrixserverlib.HistoryVisibilityInvited: 2,
gomatrixserverlib.HistoryVisibilityJoined: 3,
@@ -72,23 +73,23 @@ func (ev eventVisibility) allowed() (allowed bool) {
return true
case gomatrixserverlib.HistoryVisibilityJoined:
// If the user’s membership was join, allow.
- if ev.membershipAtEvent == gomatrixserverlib.Join {
+ if ev.membershipAtEvent == spec.Join {
return true
}
return false
case gomatrixserverlib.HistoryVisibilityShared:
// If the user’s membership was join, allow.
// If history_visibility was set to shared, and the user joined the room at any point after the event was sent, allow.
- if ev.membershipAtEvent == gomatrixserverlib.Join || ev.membershipCurrent == gomatrixserverlib.Join {
+ if ev.membershipAtEvent == spec.Join || ev.membershipCurrent == spec.Join {
return true
}
return false
case gomatrixserverlib.HistoryVisibilityInvited:
// If the user’s membership was join, allow.
- if ev.membershipAtEvent == gomatrixserverlib.Join {
+ if ev.membershipAtEvent == spec.Join {
return true
}
- if ev.membershipAtEvent == gomatrixserverlib.Invite {
+ if ev.membershipAtEvent == spec.Invite {
return true
}
return false
@@ -132,7 +133,7 @@ func ApplyHistoryVisibilityFilter(
}
}
// NOTSPEC: Always allow user to see their own membership events (spec contains more "rules")
- if ev.Type() == gomatrixserverlib.MRoomMember && ev.StateKeyEquals(userID) {
+ if ev.Type() == spec.MRoomMember && ev.StateKeyEquals(userID) {
eventsFiltered = append(eventsFiltered, ev)
continue
}
@@ -195,7 +196,7 @@ func visibilityForEvents(
for _, event := range events {
eventID := event.EventID()
vis := eventVisibility{
- membershipAtEvent: gomatrixserverlib.Leave, // default to leave, to not expose events by accident
+ membershipAtEvent: spec.Leave, // default to leave, to not expose events by accident
visibility: event.Visibility,
}
ev, ok := membershipResp.Membership[eventID]
diff --git a/syncapi/internal/keychange.go b/syncapi/internal/keychange.go
index 17d63708..ad5935cd 100644
--- a/syncapi/internal/keychange.go
+++ b/syncapi/internal/keychange.go
@@ -20,6 +20,7 @@ import (
keytypes "github.com/matrix-org/dendrite/userapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
"github.com/tidwall/gjson"
@@ -159,7 +160,7 @@ func TrackChangedUsers(
RoomIDs: newlyLeftRooms,
StateTuples: []gomatrixserverlib.StateKeyTuple{
{
- EventType: gomatrixserverlib.MRoomMember,
+ EventType: spec.MRoomMember,
StateKey: "*",
},
},
@@ -170,7 +171,7 @@ func TrackChangedUsers(
}
for _, state := range stateRes.Rooms {
for tuple, membership := range state {
- if membership != gomatrixserverlib.Join {
+ if membership != spec.Join {
continue
}
queryRes.UserIDsToCount[tuple.StateKey]--
@@ -201,7 +202,7 @@ func TrackChangedUsers(
RoomIDs: newlyJoinedRooms,
StateTuples: []gomatrixserverlib.StateKeyTuple{
{
- EventType: gomatrixserverlib.MRoomMember,
+ EventType: spec.MRoomMember,
StateKey: "*",
},
},
@@ -212,7 +213,7 @@ func TrackChangedUsers(
}
for _, state := range stateRes.Rooms {
for tuple, membership := range state {
- if membership != gomatrixserverlib.Join {
+ if membership != spec.Join {
continue
}
// new user who we weren't previously sharing rooms with
@@ -283,7 +284,7 @@ func membershipEventPresent(events []synctypes.ClientEvent, userID string) bool
for _, ev := range events {
// it's enough to know that we have our member event here, don't need to check membership content
// as it's implied by being in the respective section of the sync response.
- if ev.Type == gomatrixserverlib.MRoomMember && ev.StateKey != nil && *ev.StateKey == userID {
+ if ev.Type == spec.MRoomMember && ev.StateKey != nil && *ev.StateKey == userID {
// ignore e.g. join -> join changes
if gjson.GetBytes(ev.Unsigned, "prev_content.membership").Str == gjson.GetBytes(ev.Content, "membership").Str {
continue
@@ -302,7 +303,7 @@ func membershipEventPresent(events []synctypes.ClientEvent, userID string) bool
func membershipEvents(res *types.Response) (joinUserIDs, leaveUserIDs []string) {
for _, room := range res.Rooms.Join {
for _, ev := range room.Timeline.Events {
- if ev.Type == gomatrixserverlib.MRoomMember && ev.StateKey != nil {
+ if ev.Type == spec.MRoomMember && ev.StateKey != nil {
if strings.Contains(string(ev.Content), `"join"`) {
joinUserIDs = append(joinUserIDs, *ev.StateKey)
} else if strings.Contains(string(ev.Content), `"invite"`) {
diff --git a/syncapi/internal/keychange_test.go b/syncapi/internal/keychange_test.go
index f775276f..11954904 100644
--- a/syncapi/internal/keychange_test.go
+++ b/syncapi/internal/keychange_test.go
@@ -7,6 +7,7 @@ import (
"testing"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -76,12 +77,12 @@ func (s *mockRoomserverAPI) QueryRoomsForUser(ctx context.Context, req *api.Quer
// QueryBulkStateContent does a bulk query for state event content in the given rooms.
func (s *mockRoomserverAPI) QueryBulkStateContent(ctx context.Context, req *api.QueryBulkStateContentRequest, res *api.QueryBulkStateContentResponse) error {
res.Rooms = make(map[string]map[gomatrixserverlib.StateKeyTuple]string)
- if req.AllowWildcards && len(req.StateTuples) == 1 && req.StateTuples[0].EventType == gomatrixserverlib.MRoomMember && req.StateTuples[0].StateKey == "*" {
+ if req.AllowWildcards && len(req.StateTuples) == 1 && req.StateTuples[0].EventType == spec.MRoomMember && req.StateTuples[0].StateKey == "*" {
for _, roomID := range req.RoomIDs {
res.Rooms[roomID] = make(map[gomatrixserverlib.StateKeyTuple]string)
for _, userID := range s.roomIDToJoinedMembers[roomID] {
res.Rooms[roomID][gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomMember,
+ EventType: spec.MRoomMember,
StateKey: userID,
}] = "join"
}
diff --git a/syncapi/notifier/notifier.go b/syncapi/notifier/notifier.go
index 27f7c37b..81b0e7f9 100644
--- a/syncapi/notifier/notifier.go
+++ b/syncapi/notifier/notifier.go
@@ -23,6 +23,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
log "github.com/sirupsen/logrus"
)
@@ -112,16 +113,16 @@ func (n *Notifier) OnNewEvent(
} else {
// Keep the joined user map up-to-date
switch membership {
- case gomatrixserverlib.Invite:
+ case spec.Invite:
usersToNotify = append(usersToNotify, targetUserID)
- case gomatrixserverlib.Join:
+ case spec.Join:
// Manually append the new user's ID so they get notified
// along all members in the room
usersToNotify = append(usersToNotify, targetUserID)
n._addJoinedUser(ev.RoomID(), targetUserID)
- case gomatrixserverlib.Leave:
+ case spec.Leave:
fallthrough
- case gomatrixserverlib.Ban:
+ case spec.Ban:
n._removeJoinedUser(ev.RoomID(), targetUserID)
}
}
diff --git a/syncapi/producers/federationapi_presence.go b/syncapi/producers/federationapi_presence.go
index dc03457e..eab1b0b2 100644
--- a/syncapi/producers/federationapi_presence.go
+++ b/syncapi/producers/federationapi_presence.go
@@ -20,7 +20,7 @@ import (
"github.com/matrix-org/dendrite/setup/jetstream"
"github.com/matrix-org/dendrite/syncapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
)
@@ -37,7 +37,7 @@ func (f *FederationAPIPresenceProducer) SendPresence(
msg.Header.Set(jetstream.UserID, userID)
msg.Header.Set("presence", presence.String())
msg.Header.Set("from_sync", "true") // only update last_active_ts and presence
- msg.Header.Set("last_active_ts", strconv.Itoa(int(gomatrixserverlib.AsTimestamp(time.Now()))))
+ msg.Header.Set("last_active_ts", strconv.Itoa(int(spec.AsTimestamp(time.Now()))))
if statusMsg != nil {
msg.Header.Set("status_msg", *statusMsg)
diff --git a/syncapi/routing/context.go b/syncapi/routing/context.go
index dd42c7ac..afd61eae 100644
--- a/syncapi/routing/context.go
+++ b/syncapi/routing/context.go
@@ -33,6 +33,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/types"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
)
@@ -283,7 +284,7 @@ func applyLazyLoadMembers(
// Query missing membership events
filter := synctypes.DefaultStateFilter()
filter.Senders = &wantUsers
- filter.Types = &[]string{gomatrixserverlib.MRoomMember}
+ filter.Types = &[]string{spec.MRoomMember}
memberships, err := snapshot.GetStateEventsForRoom(ctx, roomID, &filter)
if err != nil {
return nil, err
diff --git a/syncapi/routing/messages.go b/syncapi/routing/messages.go
index 3c416627..6e508a92 100644
--- a/syncapi/routing/messages.go
+++ b/syncapi/routing/messages.go
@@ -23,6 +23,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
@@ -200,7 +201,7 @@ func OnIncomingMessagesRequest(
}
// If the user already left the room, grep events from before that
- if membershipResp.Membership == gomatrixserverlib.Leave {
+ if membershipResp.Membership == spec.Leave {
var token types.TopologyToken
token, err = snapshot.EventPositionInTopology(req.Context(), membershipResp.EventID)
if err != nil {
@@ -369,7 +370,7 @@ func (r *messagesReq) retrieveEvents() (
func (r *messagesReq) getStartEnd(events []*gomatrixserverlib.HeaderedEvent) (start, end types.TopologyToken, err error) {
if r.backwardOrdering {
start = *r.from
- if events[len(events)-1].Type() == gomatrixserverlib.MRoomCreate {
+ if events[len(events)-1].Type() == spec.MRoomCreate {
// NOTSPEC: We've hit the beginning of the room so there's really nowhere
// else to go. This seems to fix Element iOS from looping on /messages endlessly.
end = types.TopologyToken{}
diff --git a/syncapi/routing/routing.go b/syncapi/routing/routing.go
index b1283247..9607aa32 100644
--- a/syncapi/routing/routing.go
+++ b/syncapi/routing/routing.go
@@ -18,7 +18,7 @@ import (
"net/http"
"github.com/gorilla/mux"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
@@ -96,7 +96,7 @@ func Setup(
}, httputil.WithAllowGuests())).Methods(http.MethodGet, http.MethodOptions)
v3mux.Handle("/rooms/{roomId}/context/{eventId}",
- httputil.MakeAuthAPI(gomatrixserverlib.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI("context", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
if err != nil {
return util.ErrorResponse(err)
@@ -112,7 +112,7 @@ func Setup(
).Methods(http.MethodGet, http.MethodOptions)
v1unstablemux.Handle("/rooms/{roomId}/relations/{eventId}",
- httputil.MakeAuthAPI(gomatrixserverlib.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI("relations", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
if err != nil {
return util.ErrorResponse(err)
@@ -126,7 +126,7 @@ func Setup(
).Methods(http.MethodGet, http.MethodOptions)
v1unstablemux.Handle("/rooms/{roomId}/relations/{eventId}/{relType}",
- httputil.MakeAuthAPI(gomatrixserverlib.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI("relation_type", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
if err != nil {
return util.ErrorResponse(err)
@@ -140,7 +140,7 @@ func Setup(
).Methods(http.MethodGet, http.MethodOptions)
v1unstablemux.Handle("/rooms/{roomId}/relations/{eventId}/{relType}/{eventType}",
- httputil.MakeAuthAPI(gomatrixserverlib.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI("relation_type_event", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
if err != nil {
return util.ErrorResponse(err)
@@ -201,7 +201,7 @@ func Setup(
return util.ErrorResponse(err)
}
at := req.URL.Query().Get("at")
- membership := gomatrixserverlib.Join
+ membership := spec.Join
return GetMemberships(req, device, vars["roomID"], syncDB, rsAPI, true, &membership, nil, at)
}),
).Methods(http.MethodGet, http.MethodOptions)
diff --git a/syncapi/routing/search.go b/syncapi/routing/search.go
index 15cb2f9b..224c6807 100644
--- a/syncapi/routing/search.go
+++ b/syncapi/routing/search.go
@@ -23,6 +23,7 @@ import (
"github.com/blevesearch/bleve/v2/search"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
"github.com/tidwall/gjson"
@@ -184,7 +185,7 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
for _, ev := range append(eventsBefore, eventsAfter...) {
profile, ok := knownUsersProfiles[event.Sender()]
if !ok {
- stateEvent, err := snapshot.GetStateEvent(ctx, ev.RoomID(), gomatrixserverlib.MRoomMember, ev.Sender())
+ stateEvent, err := snapshot.GetStateEvent(ctx, ev.RoomID(), spec.MRoomMember, ev.Sender())
if err != nil {
logrus.WithError(err).WithField("user_id", event.Sender()).Warn("failed to query userprofile")
continue
diff --git a/syncapi/routing/search_test.go b/syncapi/routing/search_test.go
index 716f3bb8..c8b9c604 100644
--- a/syncapi/routing/search_test.go
+++ b/syncapi/routing/search_test.go
@@ -16,6 +16,7 @@ import (
"github.com/matrix-org/dendrite/test/testrig"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
@@ -216,7 +217,7 @@ func TestSearch(t *testing.T) {
for _, x := range room.Events() {
var stateEvents []*gomatrixserverlib.HeaderedEvent
var stateEventIDs []string
- if x.Type() == gomatrixserverlib.MRoomMember {
+ if x.Type() == spec.MRoomMember {
stateEvents = append(stateEvents, x)
stateEventIDs = append(stateEventIDs, x.EventID())
}
diff --git a/syncapi/storage/interface.go b/syncapi/storage/interface.go
index 38c04e85..f5c1223a 100644
--- a/syncapi/storage/interface.go
+++ b/syncapi/storage/interface.go
@@ -18,6 +18,7 @@ import (
"context"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal/eventutil"
"github.com/matrix-org/dendrite/internal/sqlutil"
@@ -174,7 +175,7 @@ type Database interface {
// RedactEvent wipes an event in the database and sets the unsigned.redacted_because key to the redaction event
RedactEvent(ctx context.Context, redactedEventID string, redactedBecause *gomatrixserverlib.HeaderedEvent) error
// StoreReceipt stores new receipt events
- StoreReceipt(ctx context.Context, roomId, receiptType, userId, eventId string, timestamp gomatrixserverlib.Timestamp) (pos types.StreamPosition, err error)
+ StoreReceipt(ctx context.Context, roomId, receiptType, userId, eventId string, timestamp spec.Timestamp) (pos types.StreamPosition, err error)
UpdateIgnoresForUser(ctx context.Context, userID string, ignores *types.IgnoredUsers) error
ReIndex(ctx context.Context, limit, afterID int64) (map[int64]gomatrixserverlib.HeaderedEvent, error)
UpdateRelations(ctx context.Context, event *gomatrixserverlib.HeaderedEvent) error
@@ -188,7 +189,7 @@ type Database interface {
type Presence interface {
GetPresences(ctx context.Context, userIDs []string) ([]*types.PresenceInternal, error)
- UpdatePresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, lastActiveTS gomatrixserverlib.Timestamp, fromSync bool) (types.StreamPosition, error)
+ UpdatePresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, lastActiveTS spec.Timestamp, fromSync bool) (types.StreamPosition, error)
}
type SharedUsers interface {
diff --git a/syncapi/storage/postgres/current_room_state_table.go b/syncapi/storage/postgres/current_room_state_table.go
index b0547758..c2a870c0 100644
--- a/syncapi/storage/postgres/current_room_state_table.go
+++ b/syncapi/storage/postgres/current_room_state_table.go
@@ -29,6 +29,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const currentRoomStateSchema = `
@@ -278,9 +279,9 @@ func (s *currentRoomStateStatements) SelectCurrentState(
senders, notSenders := getSendersStateFilterFilter(stateFilter)
// We're going to query members later, so remove them from this request
if stateFilter.LazyLoadMembers && !stateFilter.IncludeRedundantMembers {
- notTypes := &[]string{gomatrixserverlib.MRoomMember}
+ notTypes := &[]string{spec.MRoomMember}
if stateFilter.NotTypes != nil {
- *stateFilter.NotTypes = append(*stateFilter.NotTypes, gomatrixserverlib.MRoomMember)
+ *stateFilter.NotTypes = append(*stateFilter.NotTypes, spec.MRoomMember)
} else {
stateFilter.NotTypes = notTypes
}
diff --git a/syncapi/storage/postgres/presence_table.go b/syncapi/storage/postgres/presence_table.go
index 3dba7756..f37b5331 100644
--- a/syncapi/storage/postgres/presence_table.go
+++ b/syncapi/storage/postgres/presence_table.go
@@ -20,7 +20,7 @@ import (
"time"
"github.com/lib/pq"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
@@ -109,7 +109,7 @@ func (p *presenceStatements) UpsertPresence(
userID string,
statusMsg *string,
presence types.Presence,
- lastActiveTS gomatrixserverlib.Timestamp,
+ lastActiveTS spec.Timestamp,
fromSync bool,
) (pos types.StreamPosition, err error) {
if fromSync {
@@ -161,7 +161,7 @@ func (p *presenceStatements) GetPresenceAfter(
) (presences map[string]*types.PresenceInternal, err error) {
presences = make(map[string]*types.PresenceInternal)
stmt := sqlutil.TxStmt(txn, p.selectPresenceAfterStmt)
- afterTS := gomatrixserverlib.AsTimestamp(time.Now().Add(time.Minute * -5))
+ afterTS := spec.AsTimestamp(time.Now().Add(time.Minute * -5))
rows, err := stmt.QueryContext(ctx, after, afterTS, filter.Limit)
if err != nil {
return nil, err
diff --git a/syncapi/storage/postgres/receipt_table.go b/syncapi/storage/postgres/receipt_table.go
index 0fcbebfc..9ab8eece 100644
--- a/syncapi/storage/postgres/receipt_table.go
+++ b/syncapi/storage/postgres/receipt_table.go
@@ -26,7 +26,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/storage/postgres/deltas"
"github.com/matrix-org/dendrite/syncapi/storage/tables"
"github.com/matrix-org/dendrite/syncapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const receiptsSchema = `
@@ -98,7 +98,7 @@ func NewPostgresReceiptsTable(db *sql.DB) (tables.Receipts, error) {
}.Prepare(db)
}
-func (r *receiptStatements) UpsertReceipt(ctx context.Context, txn *sql.Tx, roomId, receiptType, userId, eventId string, timestamp gomatrixserverlib.Timestamp) (pos types.StreamPosition, err error) {
+func (r *receiptStatements) UpsertReceipt(ctx context.Context, txn *sql.Tx, roomId, receiptType, userId, eventId string, timestamp spec.Timestamp) (pos types.StreamPosition, err error) {
stmt := sqlutil.TxStmt(txn, r.upsertReceipt)
err = stmt.QueryRowContext(ctx, roomId, receiptType, userId, eventId, timestamp).Scan(&pos)
return
diff --git a/syncapi/storage/shared/storage_consumer.go b/syncapi/storage/shared/storage_consumer.go
index 1894a094..47490fb0 100644
--- a/syncapi/storage/shared/storage_consumer.go
+++ b/syncapi/storage/shared/storage_consumer.go
@@ -23,6 +23,7 @@ import (
"github.com/tidwall/gjson"
userapi "github.com/matrix-org/dendrite/userapi/api"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/gomatrixserverlib"
"github.com/sirupsen/logrus"
@@ -504,7 +505,7 @@ func getMembershipFromEvent(ev *gomatrixserverlib.Event, userID string) (string,
}
// StoreReceipt stores user receipts
-func (d *Database) StoreReceipt(ctx context.Context, roomId, receiptType, userId, eventId string, timestamp gomatrixserverlib.Timestamp) (pos types.StreamPosition, err error) {
+func (d *Database) StoreReceipt(ctx context.Context, roomId, receiptType, userId, eventId string, timestamp spec.Timestamp) (pos types.StreamPosition, err error) {
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
pos, err = d.Receipts.UpsertReceipt(ctx, txn, roomId, receiptType, userId, eventId, timestamp)
return err
@@ -541,7 +542,7 @@ func (d *Database) UpdateIgnoresForUser(ctx context.Context, userID string, igno
})
}
-func (d *Database) UpdatePresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, lastActiveTS gomatrixserverlib.Timestamp, fromSync bool) (types.StreamPosition, error) {
+func (d *Database) UpdatePresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, lastActiveTS spec.Timestamp, fromSync bool) (types.StreamPosition, error) {
var pos types.StreamPosition
var err error
_ = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -561,15 +562,15 @@ func (d *Database) SelectMembershipForUser(ctx context.Context, roomID, userID s
func (d *Database) ReIndex(ctx context.Context, limit, afterID int64) (map[int64]gomatrixserverlib.HeaderedEvent, error) {
return d.OutputEvents.ReIndex(ctx, nil, limit, afterID, []string{
- gomatrixserverlib.MRoomName,
- gomatrixserverlib.MRoomTopic,
+ spec.MRoomName,
+ spec.MRoomTopic,
"m.room.message",
})
}
func (d *Database) UpdateRelations(ctx context.Context, event *gomatrixserverlib.HeaderedEvent) error {
// No need to unmarshal if the event is a redaction
- if event.Type() == gomatrixserverlib.MRoomRedaction {
+ if event.Type() == spec.MRoomRedaction {
return nil
}
var content gomatrixserverlib.RelationContent
diff --git a/syncapi/storage/shared/storage_sync.go b/syncapi/storage/shared/storage_sync.go
index a614544b..f11cbb57 100644
--- a/syncapi/storage/shared/storage_sync.go
+++ b/syncapi/storage/shared/storage_sync.go
@@ -7,6 +7,7 @@ import (
"math"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/tidwall/gjson"
"github.com/matrix-org/dendrite/internal/eventutil"
@@ -98,11 +99,11 @@ func (d *DatabaseTransaction) MembershipCount(ctx context.Context, roomID, membe
func (d *DatabaseTransaction) GetRoomSummary(ctx context.Context, roomID, userID string) (*types.Summary, error) {
summary := &types.Summary{Heroes: []string{}}
- joinCount, err := d.CurrentRoomState.SelectMembershipCount(ctx, d.txn, roomID, gomatrixserverlib.Join)
+ joinCount, err := d.CurrentRoomState.SelectMembershipCount(ctx, d.txn, roomID, spec.Join)
if err != nil {
return summary, err
}
- inviteCount, err := d.CurrentRoomState.SelectMembershipCount(ctx, d.txn, roomID, gomatrixserverlib.Invite)
+ inviteCount, err := d.CurrentRoomState.SelectMembershipCount(ctx, d.txn, roomID, spec.Invite)
if err != nil {
return summary, err
}
@@ -111,7 +112,7 @@ func (d *DatabaseTransaction) GetRoomSummary(ctx context.Context, roomID, userID
// Get the room name and canonical alias, if any
filter := synctypes.DefaultStateFilter()
- filterTypes := []string{gomatrixserverlib.MRoomName, gomatrixserverlib.MRoomCanonicalAlias}
+ filterTypes := []string{spec.MRoomName, spec.MRoomCanonicalAlias}
filterRooms := []string{roomID}
filter.Types = &filterTypes
@@ -123,11 +124,11 @@ func (d *DatabaseTransaction) GetRoomSummary(ctx context.Context, roomID, userID
for _, ev := range evs {
switch ev.Type() {
- case gomatrixserverlib.MRoomName:
+ case spec.MRoomName:
if gjson.GetBytes(ev.Content(), "name").Str != "" {
return summary, nil
}
- case gomatrixserverlib.MRoomCanonicalAlias:
+ case spec.MRoomCanonicalAlias:
if gjson.GetBytes(ev.Content(), "alias").Str != "" {
return summary, nil
}
@@ -135,14 +136,14 @@ func (d *DatabaseTransaction) GetRoomSummary(ctx context.Context, roomID, userID
}
// If there's no room name or canonical alias, get the room heroes, excluding the user
- heroes, err := d.CurrentRoomState.SelectRoomHeroes(ctx, d.txn, roomID, userID, []string{gomatrixserverlib.Join, gomatrixserverlib.Invite})
+ heroes, err := d.CurrentRoomState.SelectRoomHeroes(ctx, d.txn, roomID, userID, []string{spec.Join, spec.Invite})
if err != nil {
return summary, err
}
// "When no joined or invited members are available, this should consist of the banned and left users"
if len(heroes) == 0 {
- heroes, err = d.CurrentRoomState.SelectRoomHeroes(ctx, d.txn, roomID, userID, []string{gomatrixserverlib.Leave, gomatrixserverlib.Ban})
+ heroes, err = d.CurrentRoomState.SelectRoomHeroes(ctx, d.txn, roomID, userID, []string{spec.Leave, spec.Ban})
if err != nil {
return summary, err
}
@@ -349,7 +350,7 @@ func (d *DatabaseTransaction) GetStateDeltas(
joinedRoomIDs := make([]string, 0, len(memberships))
for roomID, membership := range memberships {
allRoomIDs = append(allRoomIDs, roomID)
- if membership == gomatrixserverlib.Join {
+ if membership == spec.Join {
joinedRoomIDs = append(joinedRoomIDs, roomID)
}
}
@@ -415,7 +416,7 @@ func (d *DatabaseTransaction) GetStateDeltas(
}
if !peek.Deleted {
deltas = append(deltas, types.StateDelta{
- Membership: gomatrixserverlib.Peek,
+ Membership: spec.Peek,
StateEvents: d.StreamEventsToEvents(device, state[peek.RoomID]),
RoomID: peek.RoomID,
})
@@ -433,7 +434,7 @@ func (d *DatabaseTransaction) GetStateDeltas(
continue
}
- if membership == gomatrixserverlib.Join {
+ if membership == spec.Join {
// If our membership is now join but the previous membership wasn't
// then this is a "join transition", so we'll insert this room.
if prevMembership != membership {
@@ -472,7 +473,7 @@ func (d *DatabaseTransaction) GetStateDeltas(
// join transitions above.
for _, joinedRoomID := range joinedRoomIDs {
deltas = append(deltas, types.StateDelta{
- Membership: gomatrixserverlib.Join,
+ Membership: spec.Join,
StateEvents: d.StreamEventsToEvents(device, stateFiltered[joinedRoomID]),
RoomID: joinedRoomID,
NewlyJoined: newlyJoinedRooms[joinedRoomID],
@@ -505,7 +506,7 @@ func (d *DatabaseTransaction) GetStateDeltasForFullStateSync(
joinedRoomIDs := make([]string, 0, len(memberships))
for roomID, membership := range memberships {
allRoomIDs = append(allRoomIDs, roomID)
- if membership == gomatrixserverlib.Join {
+ if membership == spec.Join {
joinedRoomIDs = append(joinedRoomIDs, roomID)
}
}
@@ -529,7 +530,7 @@ func (d *DatabaseTransaction) GetStateDeltasForFullStateSync(
return nil, nil, stateErr
}
deltas[peek.RoomID] = types.StateDelta{
- Membership: gomatrixserverlib.Peek,
+ Membership: spec.Peek,
StateEvents: d.StreamEventsToEvents(device, s),
RoomID: peek.RoomID,
}
@@ -555,7 +556,7 @@ func (d *DatabaseTransaction) GetStateDeltasForFullStateSync(
for roomID, stateStreamEvents := range state {
for _, ev := range stateStreamEvents {
if membership, _ := getMembershipFromEvent(ev.Event, userID); membership != "" {
- if membership != gomatrixserverlib.Join { // We've already added full state for all joined rooms above.
+ if membership != spec.Join { // We've already added full state for all joined rooms above.
deltas[roomID] = types.StateDelta{
Membership: membership,
MembershipPos: ev.StreamPosition,
@@ -579,7 +580,7 @@ func (d *DatabaseTransaction) GetStateDeltasForFullStateSync(
return nil, nil, stateErr
}
deltas[joinedRoomID] = types.StateDelta{
- Membership: gomatrixserverlib.Join,
+ Membership: spec.Join,
StateEvents: d.StreamEventsToEvents(device, s),
RoomID: joinedRoomID,
}
@@ -636,7 +637,7 @@ func (d *DatabaseTransaction) GetRoomReceipts(ctx context.Context, roomIDs []str
func (d *DatabaseTransaction) GetUserUnreadNotificationCountsForRooms(ctx context.Context, userID string, rooms map[string]string) (map[string]*eventutil.NotificationData, error) {
roomIDs := make([]string, 0, len(rooms))
for roomID, membership := range rooms {
- if membership != gomatrixserverlib.Join {
+ if membership != spec.Join {
continue
}
roomIDs = append(roomIDs, roomID)
diff --git a/syncapi/storage/sqlite3/current_room_state_table.go b/syncapi/storage/sqlite3/current_room_state_table.go
index c681933d..01dcff69 100644
--- a/syncapi/storage/sqlite3/current_room_state_table.go
+++ b/syncapi/storage/sqlite3/current_room_state_table.go
@@ -30,6 +30,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const currentRoomStateSchema = `
@@ -270,9 +271,9 @@ func (s *currentRoomStateStatements) SelectCurrentState(
) ([]*gomatrixserverlib.HeaderedEvent, error) {
// We're going to query members later, so remove them from this request
if stateFilter.LazyLoadMembers && !stateFilter.IncludeRedundantMembers {
- notTypes := &[]string{gomatrixserverlib.MRoomMember}
+ notTypes := &[]string{spec.MRoomMember}
if stateFilter.NotTypes != nil {
- *stateFilter.NotTypes = append(*stateFilter.NotTypes, gomatrixserverlib.MRoomMember)
+ *stateFilter.NotTypes = append(*stateFilter.NotTypes, spec.MRoomMember)
} else {
stateFilter.NotTypes = notTypes
}
diff --git a/syncapi/storage/sqlite3/presence_table.go b/syncapi/storage/sqlite3/presence_table.go
index 5f76b370..573fbad6 100644
--- a/syncapi/storage/sqlite3/presence_table.go
+++ b/syncapi/storage/sqlite3/presence_table.go
@@ -20,7 +20,7 @@ import (
"strings"
"time"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
@@ -113,7 +113,7 @@ func (p *presenceStatements) UpsertPresence(
userID string,
statusMsg *string,
presence types.Presence,
- lastActiveTS gomatrixserverlib.Timestamp,
+ lastActiveTS spec.Timestamp,
fromSync bool,
) (pos types.StreamPosition, err error) {
pos, err = p.streamIDStatements.nextPresenceID(ctx, txn)
@@ -185,7 +185,7 @@ func (p *presenceStatements) GetPresenceAfter(
) (presences map[string]*types.PresenceInternal, err error) {
presences = make(map[string]*types.PresenceInternal)
stmt := sqlutil.TxStmt(txn, p.selectPresenceAfterStmt)
- afterTS := gomatrixserverlib.AsTimestamp(time.Now().Add(time.Minute * -5))
+ afterTS := spec.AsTimestamp(time.Now().Add(time.Minute * -5))
rows, err := stmt.QueryContext(ctx, after, afterTS, filter.Limit)
if err != nil {
return nil, err
diff --git a/syncapi/storage/sqlite3/receipt_table.go b/syncapi/storage/sqlite3/receipt_table.go
index ca3d80fb..b973903b 100644
--- a/syncapi/storage/sqlite3/receipt_table.go
+++ b/syncapi/storage/sqlite3/receipt_table.go
@@ -25,7 +25,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/storage/sqlite3/deltas"
"github.com/matrix-org/dendrite/syncapi/storage/tables"
"github.com/matrix-org/dendrite/syncapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const receiptsSchema = `
@@ -97,7 +97,7 @@ func NewSqliteReceiptsTable(db *sql.DB, streamID *StreamIDStatements) (tables.Re
}
// UpsertReceipt creates new user receipts
-func (r *receiptStatements) UpsertReceipt(ctx context.Context, txn *sql.Tx, roomId, receiptType, userId, eventId string, timestamp gomatrixserverlib.Timestamp) (pos types.StreamPosition, err error) {
+func (r *receiptStatements) UpsertReceipt(ctx context.Context, txn *sql.Tx, roomId, receiptType, userId, eventId string, timestamp spec.Timestamp) (pos types.StreamPosition, err error) {
pos, err = r.streamIDStatements.nextReceiptID(ctx, txn)
if err != nil {
return
diff --git a/syncapi/storage/storage_test.go b/syncapi/storage/storage_test.go
index fa3f54c0..2cc1378b 100644
--- a/syncapi/storage/storage_test.go
+++ b/syncapi/storage/storage_test.go
@@ -16,6 +16,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
)
@@ -777,7 +778,7 @@ func TestRoomSummary(t *testing.T) {
name: "invited user",
wantSummary: &types.Summary{JoinedMemberCount: pointer(1), InvitedMemberCount: pointer(1), Heroes: []string{bob.ID}},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(bob.ID))
},
@@ -786,10 +787,10 @@ func TestRoomSummary(t *testing.T) {
name: "invited user, but declined",
wantSummary: &types.Summary{JoinedMemberCount: pointer(1), InvitedMemberCount: pointer(0), Heroes: []string{bob.ID}},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "leave",
}, test.WithStateKey(bob.ID))
},
@@ -798,10 +799,10 @@ func TestRoomSummary(t *testing.T) {
name: "joined user after invitation",
wantSummary: &types.Summary{JoinedMemberCount: pointer(2), InvitedMemberCount: pointer(0), Heroes: []string{bob.ID}},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
},
@@ -810,10 +811,10 @@ func TestRoomSummary(t *testing.T) {
name: "multiple joined user",
wantSummary: &types.Summary{JoinedMemberCount: pointer(3), InvitedMemberCount: pointer(0), Heroes: []string{charlie.ID, bob.ID}},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, charlie, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, charlie, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(charlie.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
},
@@ -822,10 +823,10 @@ func TestRoomSummary(t *testing.T) {
name: "multiple joined/invited user",
wantSummary: &types.Summary{JoinedMemberCount: pointer(2), InvitedMemberCount: pointer(1), Heroes: []string{charlie.ID, bob.ID}},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(charlie.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
},
@@ -834,13 +835,13 @@ func TestRoomSummary(t *testing.T) {
name: "multiple joined/invited/left user",
wantSummary: &types.Summary{JoinedMemberCount: pointer(1), InvitedMemberCount: pointer(1), Heroes: []string{charlie.ID}},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(charlie.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "leave",
}, test.WithStateKey(bob.ID))
},
@@ -849,10 +850,10 @@ func TestRoomSummary(t *testing.T) {
name: "leaving user after joining",
wantSummary: &types.Summary{JoinedMemberCount: pointer(1), InvitedMemberCount: pointer(0), Heroes: []string{bob.ID}},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "leave",
}, test.WithStateKey(bob.ID))
},
@@ -862,7 +863,7 @@ func TestRoomSummary(t *testing.T) {
wantSummary: &types.Summary{JoinedMemberCount: pointer(len(moreUserIDs) + 1), InvitedMemberCount: pointer(0), Heroes: moreUserIDs[:5]},
additionalEvents: func(t *testing.T, room *test.Room) {
for _, x := range moreUsers {
- room.CreateAndInsert(t, x, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, x, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(x.ID))
}
@@ -872,10 +873,10 @@ func TestRoomSummary(t *testing.T) {
name: "canonical alias set",
wantSummary: &types.Summary{JoinedMemberCount: pointer(2), InvitedMemberCount: pointer(0), Heroes: []string{}},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomCanonicalAlias, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomCanonicalAlias, map[string]interface{}{
"alias": "myalias",
}, test.WithStateKey(""))
},
@@ -884,10 +885,10 @@ func TestRoomSummary(t *testing.T) {
name: "room name set",
wantSummary: &types.Summary{JoinedMemberCount: pointer(2), InvitedMemberCount: pointer(0), Heroes: []string{}},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomName, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomName, map[string]interface{}{
"name": "my room name",
}, test.WithStateKey(""))
},
diff --git a/syncapi/storage/tables/current_room_state_test.go b/syncapi/storage/tables/current_room_state_test.go
index 5fe06c3c..7d4ec812 100644
--- a/syncapi/storage/tables/current_room_state_test.go
+++ b/syncapi/storage/tables/current_room_state_test.go
@@ -14,7 +14,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/dendrite/test"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
func newCurrentRoomStateTable(t *testing.T, dbType test.DBType) (tables.CurrentRoomState, *sql.DB, func()) {
@@ -115,7 +115,7 @@ func testCurrentState(t *testing.T, ctx context.Context, txn *sql.Tx, tab tables
t.Fatalf("expected %d state events, got %d", expectCount, gotCount)
}
// same as above, but with existing NotTypes defined
- notTypes := []string{gomatrixserverlib.MRoomMember}
+ notTypes := []string{spec.MRoomMember}
filter.NotTypes = &notTypes
evs, err = tab.SelectCurrentState(ctx, txn, room.ID, &filter, nil)
if err != nil {
diff --git a/syncapi/storage/tables/interface.go b/syncapi/storage/tables/interface.go
index 94c9c402..6384fb91 100644
--- a/syncapi/storage/tables/interface.go
+++ b/syncapi/storage/tables/interface.go
@@ -19,6 +19,7 @@ import (
"database/sql"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal/eventutil"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -183,7 +184,7 @@ type Filter interface {
}
type Receipts interface {
- UpsertReceipt(ctx context.Context, txn *sql.Tx, roomId, receiptType, userId, eventId string, timestamp gomatrixserverlib.Timestamp) (pos types.StreamPosition, err error)
+ UpsertReceipt(ctx context.Context, txn *sql.Tx, roomId, receiptType, userId, eventId string, timestamp spec.Timestamp) (pos types.StreamPosition, err error)
SelectRoomReceiptsAfter(ctx context.Context, txn *sql.Tx, roomIDs []string, streamPos types.StreamPosition) (types.StreamPosition, []types.OutputReceiptEvent, error)
SelectMaxReceiptID(ctx context.Context, txn *sql.Tx) (id int64, err error)
PurgeReceipts(ctx context.Context, txn *sql.Tx, roomID string) error
@@ -214,7 +215,7 @@ type Ignores interface {
}
type Presence interface {
- UpsertPresence(ctx context.Context, txn *sql.Tx, userID string, statusMsg *string, presence types.Presence, lastActiveTS gomatrixserverlib.Timestamp, fromSync bool) (pos types.StreamPosition, err error)
+ UpsertPresence(ctx context.Context, txn *sql.Tx, userID string, statusMsg *string, presence types.Presence, lastActiveTS spec.Timestamp, fromSync bool) (pos types.StreamPosition, err error)
GetPresenceForUsers(ctx context.Context, txn *sql.Tx, userIDs []string) (presence []*types.PresenceInternal, err error)
GetMaxPresenceID(ctx context.Context, txn *sql.Tx) (pos types.StreamPosition, err error)
GetPresenceAfter(ctx context.Context, txn *sql.Tx, after types.StreamPosition, filter synctypes.EventFilter) (presences map[string]*types.PresenceInternal, err error)
diff --git a/syncapi/storage/tables/memberships_test.go b/syncapi/storage/tables/memberships_test.go
index df593ae7..2e8375c3 100644
--- a/syncapi/storage/tables/memberships_test.go
+++ b/syncapi/storage/tables/memberships_test.go
@@ -7,6 +7,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
@@ -65,7 +66,7 @@ func TestMembershipsTable(t *testing.T) {
u := test.NewUser(t)
users = append(users, u.ID)
- ev := room.CreateAndInsert(t, u, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ ev := room.CreateAndInsert(t, u, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(u.ID))
userEvents = append(userEvents, ev)
@@ -92,7 +93,7 @@ func TestMembershipsTable(t *testing.T) {
func testMembershipCount(t *testing.T, ctx context.Context, table tables.Memberships, room *test.Room) {
t.Run("membership counts are correct", func(t *testing.T) {
// After 10 events, we should have 6 users (5 create related [incl. one member event], 5 member events = 6 users)
- count, err := table.SelectMembershipCount(ctx, nil, room.ID, gomatrixserverlib.Join, 10)
+ count, err := table.SelectMembershipCount(ctx, nil, room.ID, spec.Join, 10)
if err != nil {
t.Fatalf("failed to get membership count: %s", err)
}
@@ -102,7 +103,7 @@ func testMembershipCount(t *testing.T, ctx context.Context, table tables.Members
}
// After 100 events, we should have all 11 users
- count, err = table.SelectMembershipCount(ctx, nil, room.ID, gomatrixserverlib.Join, 100)
+ count, err = table.SelectMembershipCount(ctx, nil, room.ID, spec.Join, 100)
if err != nil {
t.Fatalf("failed to get membership count: %s", err)
}
@@ -126,12 +127,12 @@ func testUpsert(t *testing.T, ctx context.Context, table tables.Memberships, mem
if pos != expectedPos {
t.Fatalf("expected pos to be %d, got %d", expectedPos, pos)
}
- if membership != gomatrixserverlib.Join {
+ if membership != spec.Join {
t.Fatalf("expected membership to be join, got %s", membership)
}
// Create a new event which gets upserted and should not cause issues
- ev := room.CreateAndInsert(t, user, gomatrixserverlib.MRoomMember, map[string]interface{}{
- "membership": gomatrixserverlib.Join,
+ ev := room.CreateAndInsert(t, user, spec.MRoomMember, map[string]interface{}{
+ "membership": spec.Join,
}, test.WithStateKey(user.ID))
// Insert the same event again, but with different positions, which should get updated
if err = table.UpsertMembership(ctx, nil, ev, 2, 2); err != nil {
@@ -147,7 +148,7 @@ func testUpsert(t *testing.T, ctx context.Context, table tables.Memberships, mem
if pos != expectedPos {
t.Fatalf("expected pos to be %d, got %d", expectedPos, pos)
}
- if membership != gomatrixserverlib.Join {
+ if membership != spec.Join {
t.Fatalf("expected membership to be join, got %s", membership)
}
@@ -155,7 +156,7 @@ func testUpsert(t *testing.T, ctx context.Context, table tables.Memberships, mem
if membership, _, err = table.SelectMembershipForUser(ctx, nil, room.ID, user.ID, 1); err != nil {
t.Fatalf("failed to select membership: %s", err)
}
- if membership != gomatrixserverlib.Leave {
+ if membership != spec.Leave {
t.Fatalf("expected membership to be leave, got %s", membership)
}
})
diff --git a/syncapi/storage/tables/output_room_events_test.go b/syncapi/storage/tables/output_room_events_test.go
index 69587800..9b755dc8 100644
--- a/syncapi/storage/tables/output_room_events_test.go
+++ b/syncapi/storage/tables/output_room_events_test.go
@@ -15,6 +15,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/test"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
func newOutputRoomEventsTable(t *testing.T, dbType test.DBType) (tables.Events, *sql.DB, func()) {
@@ -110,11 +111,11 @@ func TestReindex(t *testing.T) {
alice := test.NewUser(t)
room := test.NewRoom(t, alice)
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomName, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomName, map[string]interface{}{
"name": "my new room name",
}, test.WithStateKey(""))
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomTopic, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomTopic, map[string]interface{}{
"topic": "my new room topic",
}, test.WithStateKey(""))
@@ -141,8 +142,8 @@ func TestReindex(t *testing.T) {
}
events, err := tab.ReIndex(ctx, nil, 10, 0, []string{
- gomatrixserverlib.MRoomName,
- gomatrixserverlib.MRoomTopic,
+ spec.MRoomName,
+ spec.MRoomTopic,
"m.room.message"})
if err != nil {
t.Fatal(err)
diff --git a/syncapi/storage/tables/presence_table_test.go b/syncapi/storage/tables/presence_table_test.go
index cb7a4dee..d8161836 100644
--- a/syncapi/storage/tables/presence_table_test.go
+++ b/syncapi/storage/tables/presence_table_test.go
@@ -7,8 +7,6 @@ import (
"testing"
"time"
- "github.com/matrix-org/gomatrixserverlib"
-
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/syncapi/storage/postgres"
@@ -17,6 +15,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/dendrite/test"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
func mustPresenceTable(t *testing.T, dbType test.DBType) (tables.Presence, func()) {
@@ -52,7 +51,7 @@ func TestPresence(t *testing.T) {
ctx := context.Background()
statusMsg := "Hello World!"
- timestamp := gomatrixserverlib.AsTimestamp(time.Now())
+ timestamp := spec.AsTimestamp(time.Now())
var txn *sql.Tx
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
diff --git a/syncapi/streams/stream_accountdata.go b/syncapi/streams/stream_accountdata.go
index 22953b8c..51f2a3d3 100644
--- a/syncapi/streams/stream_accountdata.go
+++ b/syncapi/streams/stream_accountdata.go
@@ -3,12 +3,11 @@ package streams
import (
"context"
- "github.com/matrix-org/gomatrixserverlib"
-
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
userapi "github.com/matrix-org/dendrite/userapi/api"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type AccountDataStreamProvider struct {
@@ -85,7 +84,7 @@ func (p *AccountDataStreamProvider) IncrementalSync(
req.Response.AccountData.Events,
synctypes.ClientEvent{
Type: dataType,
- Content: gomatrixserverlib.RawJSON(globalData),
+ Content: spec.RawJSON(globalData),
},
)
}
@@ -99,7 +98,7 @@ func (p *AccountDataStreamProvider) IncrementalSync(
joinData.AccountData.Events,
synctypes.ClientEvent{
Type: dataType,
- Content: gomatrixserverlib.RawJSON(roomData),
+ Content: spec.RawJSON(roomData),
},
)
req.Response.Rooms.Join[roomID] = joinData
diff --git a/syncapi/streams/stream_invite.go b/syncapi/streams/stream_invite.go
index a4414f31..becd863a 100644
--- a/syncapi/streams/stream_invite.go
+++ b/syncapi/streams/stream_invite.go
@@ -8,7 +8,7 @@ import (
"strconv"
"time"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/synctypes"
@@ -79,7 +79,7 @@ func (p *InviteStreamProvider) IncrementalSync(
membership, _, err := snapshot.SelectMembershipForUser(ctx, roomID, req.Device.UserID, math.MaxInt64)
// Skip if the user is an existing member of the room.
// Otherwise, the NewLeaveResponse will eject the user from the room unintentionally
- if membership == gomatrixserverlib.Join ||
+ if membership == spec.Join ||
err != nil {
continue
}
@@ -89,12 +89,12 @@ func (p *InviteStreamProvider) IncrementalSync(
lr.Timeline.Events = append(lr.Timeline.Events, synctypes.ClientEvent{
// fake event ID which muxes in the to position
EventID: "$" + base64.RawURLEncoding.EncodeToString(h[:]),
- OriginServerTS: gomatrixserverlib.AsTimestamp(time.Now()),
+ OriginServerTS: spec.AsTimestamp(time.Now()),
RoomID: roomID,
Sender: req.Device.UserID,
StateKey: &req.Device.UserID,
Type: "m.room.member",
- Content: gomatrixserverlib.RawJSON(`{"membership":"leave"}`),
+ Content: spec.RawJSON(`{"membership":"leave"}`),
})
req.Response.Rooms.Leave[roomID] = lr
}
diff --git a/syncapi/streams/stream_pdu.go b/syncapi/streams/stream_pdu.go
index e29e29f7..41c58481 100644
--- a/syncapi/streams/stream_pdu.go
+++ b/syncapi/streams/stream_pdu.go
@@ -13,6 +13,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
userapi "github.com/matrix-org/dendrite/userapi/api"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/syncapi/notifier"
"github.com/matrix-org/gomatrixserverlib"
@@ -70,7 +71,7 @@ func (p *PDUStreamProvider) CompleteSync(
}
// Extract room state and recent events for all rooms the user is joined to.
- joinedRoomIDs, err := snapshot.RoomIDsWithMembership(ctx, req.Device.UserID, gomatrixserverlib.Join)
+ joinedRoomIDs, err := snapshot.RoomIDsWithMembership(ctx, req.Device.UserID, spec.Join)
if err != nil {
req.Log.WithError(err).Error("p.DB.RoomIDsWithMembership failed")
return from
@@ -110,7 +111,7 @@ func (p *PDUStreamProvider) CompleteSync(
continue
}
req.Response.Rooms.Join[roomID] = jr
- req.Rooms[roomID] = gomatrixserverlib.Join
+ req.Rooms[roomID] = spec.Join
}
// Add peeked rooms.
@@ -185,7 +186,7 @@ func (p *PDUStreamProvider) IncrementalSync(
}
for _, roomID := range syncJoinedRooms {
- req.Rooms[roomID] = gomatrixserverlib.Join
+ req.Rooms[roomID] = spec.Join
}
if len(stateDeltas) == 0 {
@@ -312,8 +313,8 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
hasMembershipChange := false
for _, recentEvent := range recentStreamEvents {
- if recentEvent.Type() == gomatrixserverlib.MRoomMember && recentEvent.StateKey() != nil {
- if membership, _ := recentEvent.Membership(); membership == gomatrixserverlib.Join {
+ if recentEvent.Type() == spec.MRoomMember && recentEvent.StateKey() != nil {
+ if membership, _ := recentEvent.Membership(); membership == spec.Join {
req.MembershipChanges[*recentEvent.StateKey()] = struct{}{}
}
hasMembershipChange = true
@@ -357,7 +358,7 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
}
switch delta.Membership {
- case gomatrixserverlib.Join:
+ case spec.Join:
jr := types.NewJoinResponse()
if hasMembershipChange {
jr.Summary, err = snapshot.GetRoomSummary(ctx, delta.RoomID, device.UserID)
@@ -373,7 +374,7 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
jr.State.Events = synctypes.HeaderedToClientEvents(delta.StateEvents, synctypes.FormatSync)
req.Response.Rooms.Join[delta.RoomID] = jr
- case gomatrixserverlib.Peek:
+ case spec.Peek:
jr := types.NewJoinResponse()
jr.Timeline.PrevBatch = &prevBatch
// TODO: Apply history visibility on peeked rooms
@@ -382,10 +383,10 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
jr.State.Events = synctypes.HeaderedToClientEvents(delta.StateEvents, synctypes.FormatSync)
req.Response.Rooms.Peek[delta.RoomID] = jr
- case gomatrixserverlib.Leave:
+ case spec.Leave:
fallthrough // transitions to leave are the same as ban
- case gomatrixserverlib.Ban:
+ case spec.Ban:
lr := types.NewLeaveResponse()
lr.Timeline.PrevBatch = &prevBatch
lr.Timeline.Events = synctypes.HeaderedToClientEvents(events, synctypes.FormatSync)
@@ -527,7 +528,7 @@ func (p *PDUStreamProvider) getJoinResponseForCompleteSync(
event := events[0]
// If this is the beginning of the room, we can't go back further. We're going to return
// the TopologyToken from the last event instead. (Synapse returns the /sync next_Batch)
- if event.Type() == gomatrixserverlib.MRoomCreate && event.StateKeyEquals("") {
+ if event.Type() == spec.MRoomCreate && event.StateKeyEquals("") {
event = events[len(events)-1]
}
backwardTopologyPos, backwardStreamPos, err = snapshot.PositionInTopology(ctx, event.EventID())
@@ -575,7 +576,7 @@ func (p *PDUStreamProvider) lazyLoadMembers(
newStateEvents := make([]*gomatrixserverlib.HeaderedEvent, 0, len(stateEvents))
// Remove existing membership events we don't care about, e.g. users not in the timeline.events
for _, event := range stateEvents {
- if event.Type() == gomatrixserverlib.MRoomMember && event.StateKey() != nil {
+ if event.Type() == spec.MRoomMember && event.StateKey() != nil {
// If this is a gapped incremental sync, we still want this membership
isGappedIncremental := limited && incremental
// We want this users membership event, keep it in the list
@@ -598,7 +599,7 @@ func (p *PDUStreamProvider) lazyLoadMembers(
// Query missing membership events
filter := synctypes.DefaultStateFilter()
filter.Senders = &wantUsers
- filter.Types = &[]string{gomatrixserverlib.MRoomMember}
+ filter.Types = &[]string{spec.MRoomMember}
memberships, err := snapshot.GetStateEventsForRoom(ctx, roomID, &filter)
if err != nil {
return stateEvents, err
diff --git a/syncapi/streams/stream_presence.go b/syncapi/streams/stream_presence.go
index 81f33207..32424066 100644
--- a/syncapi/streams/stream_presence.go
+++ b/syncapi/streams/stream_presence.go
@@ -20,13 +20,13 @@ import (
"fmt"
"sync"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/tidwall/gjson"
"github.com/matrix-org/dendrite/syncapi/notifier"
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type PresenceStreamProvider struct {
@@ -134,7 +134,7 @@ func (p *PresenceStreamProvider) IncrementalSync(
req.Response.Presence.Events = append(req.Response.Presence.Events, synctypes.ClientEvent{
Content: content,
Sender: presence.UserID,
- Type: gomatrixserverlib.MPresence,
+ Type: spec.MPresence,
})
if presence.StreamPos > lastPos {
lastPos = presence.StreamPos
@@ -207,7 +207,7 @@ func membershipEventPresent(events []synctypes.ClientEvent, userID string) bool
for _, ev := range events {
// it's enough to know that we have our member event here, don't need to check membership content
// as it's implied by being in the respective section of the sync response.
- if ev.Type == gomatrixserverlib.MRoomMember && ev.StateKey != nil && *ev.StateKey == userID {
+ if ev.Type == spec.MRoomMember && ev.StateKey != nil && *ev.StateKey == userID {
// ignore e.g. join -> join changes
if gjson.GetBytes(ev.Unsigned, "prev_content.membership").Str == gjson.GetBytes(ev.Content, "membership").Str {
continue
diff --git a/syncapi/streams/stream_receipt.go b/syncapi/streams/stream_receipt.go
index 88db0054..ed52dc5c 100644
--- a/syncapi/streams/stream_receipt.go
+++ b/syncapi/streams/stream_receipt.go
@@ -4,7 +4,7 @@ import (
"context"
"encoding/json"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/synctypes"
@@ -46,7 +46,7 @@ func (p *ReceiptStreamProvider) IncrementalSync(
) types.StreamPosition {
var joinedRooms []string
for roomID, membership := range req.Rooms {
- if membership == gomatrixserverlib.Join {
+ if membership == spec.Join {
joinedRooms = append(joinedRooms, roomID)
}
}
@@ -88,7 +88,7 @@ func (p *ReceiptStreamProvider) IncrementalSync(
}
ev := synctypes.ClientEvent{
- Type: gomatrixserverlib.MReceipt,
+ Type: spec.MReceipt,
}
content := make(map[string]ReceiptMRead)
for _, receipt := range receipts {
@@ -119,5 +119,5 @@ type ReceiptMRead struct {
}
type ReceiptTS struct {
- TS gomatrixserverlib.Timestamp `json:"ts"`
+ TS spec.Timestamp `json:"ts"`
}
diff --git a/syncapi/streams/stream_typing.go b/syncapi/streams/stream_typing.go
index b0e7d9e7..15500a47 100644
--- a/syncapi/streams/stream_typing.go
+++ b/syncapi/streams/stream_typing.go
@@ -4,12 +4,11 @@ import (
"context"
"encoding/json"
- "github.com/matrix-org/gomatrixserverlib"
-
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type TypingStreamProvider struct {
@@ -33,7 +32,7 @@ func (p *TypingStreamProvider) IncrementalSync(
) types.StreamPosition {
var err error
for roomID, membership := range req.Rooms {
- if membership != gomatrixserverlib.Join {
+ if membership != spec.Join {
continue
}
@@ -53,7 +52,7 @@ func (p *TypingStreamProvider) IncrementalSync(
}
}
ev := synctypes.ClientEvent{
- Type: gomatrixserverlib.MTyping,
+ Type: spec.MTyping,
}
ev.Content, err = json.Marshal(map[string]interface{}{
"user_ids": typingUsers,
diff --git a/syncapi/sync/requestpool.go b/syncapi/sync/requestpool.go
index 68f91387..6baaff3c 100644
--- a/syncapi/sync/requestpool.go
+++ b/syncapi/sync/requestpool.go
@@ -25,7 +25,7 @@ import (
"sync"
"time"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/prometheus/client_golang/prometheus"
"github.com/sirupsen/logrus"
@@ -61,7 +61,7 @@ type PresencePublisher interface {
}
type PresenceConsumer interface {
- EmitPresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, ts gomatrixserverlib.Timestamp, fromSync bool)
+ EmitPresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, ts spec.Timestamp, fromSync bool)
}
// NewRequestPool makes a new RequestPool
@@ -138,7 +138,7 @@ func (rp *RequestPool) updatePresence(db storage.Presence, presence string, user
newPresence := types.PresenceInternal{
Presence: presenceID,
UserID: userID,
- LastActiveTS: gomatrixserverlib.AsTimestamp(time.Now()),
+ LastActiveTS: spec.AsTimestamp(time.Now()),
}
// ensure we also send the current status_msg to federated servers and not nil
@@ -170,7 +170,7 @@ func (rp *RequestPool) updatePresence(db storage.Presence, presence string, user
// the /sync response else we may not return presence: online immediately.
rp.consumer.EmitPresence(
context.Background(), userID, presenceID, newPresence.ClientFields.StatusMsg,
- gomatrixserverlib.AsTimestamp(time.Now()), true,
+ spec.AsTimestamp(time.Now()), true,
)
}
diff --git a/syncapi/sync/requestpool_test.go b/syncapi/sync/requestpool_test.go
index 7bce0a0c..93be46d0 100644
--- a/syncapi/sync/requestpool_test.go
+++ b/syncapi/sync/requestpool_test.go
@@ -9,7 +9,7 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type dummyPublisher struct {
@@ -26,7 +26,7 @@ func (d *dummyPublisher) SendPresence(userID string, presence types.Presence, st
type dummyDB struct{}
-func (d dummyDB) UpdatePresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, lastActiveTS gomatrixserverlib.Timestamp, fromSync bool) (types.StreamPosition, error) {
+func (d dummyDB) UpdatePresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, lastActiveTS spec.Timestamp, fromSync bool) (types.StreamPosition, error) {
return 0, nil
}
@@ -44,7 +44,7 @@ func (d dummyDB) MaxStreamPositionForPresence(ctx context.Context) (types.Stream
type dummyConsumer struct{}
-func (d dummyConsumer) EmitPresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, ts gomatrixserverlib.Timestamp, fromSync bool) {
+func (d dummyConsumer) EmitPresence(ctx context.Context, userID string, presence types.Presence, statusMsg *string, ts spec.Timestamp, fromSync bool) {
}
diff --git a/syncapi/syncapi_test.go b/syncapi/syncapi_test.go
index 6496a607..c120f882 100644
--- a/syncapi/syncapi_test.go
+++ b/syncapi/syncapi_test.go
@@ -15,6 +15,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/tidwall/gjson"
@@ -612,10 +613,10 @@ func TestGetMembership(t *testing.T) {
}))
},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "leave",
}, test.WithStateKey(alice.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
},
@@ -631,10 +632,10 @@ func TestGetMembership(t *testing.T) {
}))
},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "leave",
}, test.WithStateKey(alice.ID))
},
@@ -650,7 +651,7 @@ func TestGetMembership(t *testing.T) {
}))
},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, alice, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, alice, spec.MRoomMember, map[string]interface{}{
"membership": "leave",
}, test.WithStateKey(alice.ID))
},
@@ -666,7 +667,7 @@ func TestGetMembership(t *testing.T) {
}))
},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
},
@@ -706,10 +707,10 @@ func TestGetMembership(t *testing.T) {
}))
},
additionalEvents: func(t *testing.T, room *test.Room) {
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "leave",
}, test.WithStateKey(bob.ID))
},
@@ -1141,7 +1142,7 @@ func TestUpdateRelations(t *testing.T) {
},
{
name: "redactions are ignored",
- eventType: gomatrixserverlib.MRoomRedaction,
+ eventType: spec.MRoomRedaction,
eventContent: map[string]interface{}{
"m.relates_to": map[string]interface{}{
"event_id": "$randomEventID",
diff --git a/syncapi/synctypes/clientevent.go b/syncapi/synctypes/clientevent.go
index 0d1e85bc..0bf04cdb 100644
--- a/syncapi/synctypes/clientevent.go
+++ b/syncapi/synctypes/clientevent.go
@@ -15,7 +15,10 @@
package synctypes
-import "github.com/matrix-org/gomatrixserverlib"
+import (
+ "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
+)
type ClientEventFormat int
@@ -29,15 +32,15 @@ const (
// ClientEvent is an event which is fit for consumption by clients, in accordance with the specification.
type ClientEvent struct {
- Content gomatrixserverlib.RawJSON `json:"content"`
- EventID string `json:"event_id,omitempty"` // EventID is omitted on receipt events
- OriginServerTS gomatrixserverlib.Timestamp `json:"origin_server_ts,omitempty"` // OriginServerTS is omitted on receipt events
- RoomID string `json:"room_id,omitempty"` // RoomID is omitted on /sync responses
- Sender string `json:"sender,omitempty"` // Sender is omitted on receipt events
- StateKey *string `json:"state_key,omitempty"`
- Type string `json:"type"`
- Unsigned gomatrixserverlib.RawJSON `json:"unsigned,omitempty"`
- Redacts string `json:"redacts,omitempty"`
+ Content spec.RawJSON `json:"content"`
+ EventID string `json:"event_id,omitempty"` // EventID is omitted on receipt events
+ OriginServerTS spec.Timestamp `json:"origin_server_ts,omitempty"` // OriginServerTS is omitted on receipt events
+ RoomID string `json:"room_id,omitempty"` // RoomID is omitted on /sync responses
+ Sender string `json:"sender,omitempty"` // Sender is omitted on receipt events
+ StateKey *string `json:"state_key,omitempty"`
+ Type string `json:"type"`
+ Unsigned spec.RawJSON `json:"unsigned,omitempty"`
+ Redacts string `json:"redacts,omitempty"`
}
// ToClientEvents converts server events to client events.
@@ -67,11 +70,11 @@ func HeaderedToClientEvents(serverEvs []*gomatrixserverlib.HeaderedEvent, format
// ToClientEvent converts a single server event to a client event.
func ToClientEvent(se *gomatrixserverlib.Event, format ClientEventFormat) ClientEvent {
ce := ClientEvent{
- Content: gomatrixserverlib.RawJSON(se.Content()),
+ Content: spec.RawJSON(se.Content()),
Sender: se.Sender(),
Type: se.Type(),
StateKey: se.StateKey(),
- Unsigned: gomatrixserverlib.RawJSON(se.Unsigned()),
+ Unsigned: spec.RawJSON(se.Unsigned()),
OriginServerTS: se.OriginServerTS(),
EventID: se.EventID(),
Redacts: se.Redacts(),
diff --git a/syncapi/types/presence.go b/syncapi/types/presence.go
index 30e025b9..a9c5e3a4 100644
--- a/syncapi/types/presence.go
+++ b/syncapi/types/presence.go
@@ -18,7 +18,7 @@ import (
"strings"
"time"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type Presence uint8
@@ -60,10 +60,10 @@ func PresenceFromString(input string) (Presence, bool) {
type PresenceInternal struct {
ClientFields PresenceClientResponse
- StreamPos StreamPosition `json:"-"`
- UserID string `json:"-"`
- LastActiveTS gomatrixserverlib.Timestamp `json:"-"`
- Presence Presence `json:"-"`
+ StreamPos StreamPosition `json:"-"`
+ UserID string `json:"-"`
+ LastActiveTS spec.Timestamp `json:"-"`
+ Presence Presence `json:"-"`
}
// Equals compares p1 with p2.
diff --git a/syncapi/types/provider.go b/syncapi/types/provider.go
index f77f8342..a0fcec0f 100644
--- a/syncapi/types/provider.go
+++ b/syncapi/types/provider.go
@@ -4,11 +4,11 @@ import (
"context"
"time"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/sirupsen/logrus"
"github.com/matrix-org/dendrite/syncapi/synctypes"
userapi "github.com/matrix-org/dendrite/userapi/api"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type SyncRequest struct {
@@ -35,11 +35,11 @@ func (r *SyncRequest) IsRoomPresent(roomID string) bool {
return false
}
switch membership {
- case gomatrixserverlib.Join:
+ case spec.Join:
return true
- case gomatrixserverlib.Invite:
+ case spec.Invite:
return true
- case gomatrixserverlib.Peek:
+ case spec.Peek:
return true
default:
return false
diff --git a/syncapi/types/types.go b/syncapi/types/types.go
index 0c522fc3..ed17eb56 100644
--- a/syncapi/types/types.go
+++ b/syncapi/types/types.go
@@ -22,6 +22,7 @@ import (
"strings"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/tidwall/gjson"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -606,11 +607,11 @@ type Peek struct {
// OutputReceiptEvent is an entry in the receipt output kafka log
type OutputReceiptEvent struct {
- UserID string `json:"user_id"`
- RoomID string `json:"room_id"`
- EventID string `json:"event_id"`
- Type string `json:"type"`
- Timestamp gomatrixserverlib.Timestamp `json:"timestamp"`
+ UserID string `json:"user_id"`
+ RoomID string `json:"room_id"`
+ EventID string `json:"event_id"`
+ Type string `json:"type"`
+ Timestamp spec.Timestamp `json:"timestamp"`
}
// OutputSendToDeviceEvent is an entry in the send-to-device output kafka log.
diff --git a/test/event.go b/test/event.go
index 0c7bf435..77c44700 100644
--- a/test/event.go
+++ b/test/event.go
@@ -21,11 +21,12 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type eventMods struct {
originServerTS time.Time
- origin gomatrixserverlib.ServerName
+ origin spec.ServerName
stateKey *string
unsigned interface{}
keyID gomatrixserverlib.KeyID
@@ -71,7 +72,7 @@ func WithPrivateKey(pkey ed25519.PrivateKey) eventModifier {
}
}
-func WithOrigin(origin gomatrixserverlib.ServerName) eventModifier {
+func WithOrigin(origin spec.ServerName) eventModifier {
return func(e *eventMods) {
e.origin = origin
}
diff --git a/test/memory_federation_db.go b/test/memory_federation_db.go
index de0dc54e..c29162fe 100644
--- a/test/memory_federation_db.go
+++ b/test/memory_federation_db.go
@@ -24,6 +24,7 @@ import (
"github.com/matrix-org/dendrite/federationapi/storage/shared/receipt"
"github.com/matrix-org/dendrite/federationapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
var nidMutex sync.Mutex
@@ -31,28 +32,28 @@ var nid = int64(0)
type InMemoryFederationDatabase struct {
dbMutex sync.Mutex
- pendingPDUServers map[gomatrixserverlib.ServerName]struct{}
- pendingEDUServers map[gomatrixserverlib.ServerName]struct{}
- blacklistedServers map[gomatrixserverlib.ServerName]struct{}
- assumedOffline map[gomatrixserverlib.ServerName]struct{}
+ pendingPDUServers map[spec.ServerName]struct{}
+ pendingEDUServers map[spec.ServerName]struct{}
+ blacklistedServers map[spec.ServerName]struct{}
+ assumedOffline map[spec.ServerName]struct{}
pendingPDUs map[*receipt.Receipt]*gomatrixserverlib.HeaderedEvent
pendingEDUs map[*receipt.Receipt]*gomatrixserverlib.EDU
- associatedPDUs map[gomatrixserverlib.ServerName]map[*receipt.Receipt]struct{}
- associatedEDUs map[gomatrixserverlib.ServerName]map[*receipt.Receipt]struct{}
- relayServers map[gomatrixserverlib.ServerName][]gomatrixserverlib.ServerName
+ associatedPDUs map[spec.ServerName]map[*receipt.Receipt]struct{}
+ associatedEDUs map[spec.ServerName]map[*receipt.Receipt]struct{}
+ relayServers map[spec.ServerName][]spec.ServerName
}
func NewInMemoryFederationDatabase() *InMemoryFederationDatabase {
return &InMemoryFederationDatabase{
- pendingPDUServers: make(map[gomatrixserverlib.ServerName]struct{}),
- pendingEDUServers: make(map[gomatrixserverlib.ServerName]struct{}),
- blacklistedServers: make(map[gomatrixserverlib.ServerName]struct{}),
- assumedOffline: make(map[gomatrixserverlib.ServerName]struct{}),
+ pendingPDUServers: make(map[spec.ServerName]struct{}),
+ pendingEDUServers: make(map[spec.ServerName]struct{}),
+ blacklistedServers: make(map[spec.ServerName]struct{}),
+ assumedOffline: make(map[spec.ServerName]struct{}),
pendingPDUs: make(map[*receipt.Receipt]*gomatrixserverlib.HeaderedEvent),
pendingEDUs: make(map[*receipt.Receipt]*gomatrixserverlib.EDU),
- associatedPDUs: make(map[gomatrixserverlib.ServerName]map[*receipt.Receipt]struct{}),
- associatedEDUs: make(map[gomatrixserverlib.ServerName]map[*receipt.Receipt]struct{}),
- relayServers: make(map[gomatrixserverlib.ServerName][]gomatrixserverlib.ServerName),
+ associatedPDUs: make(map[spec.ServerName]map[*receipt.Receipt]struct{}),
+ associatedEDUs: make(map[spec.ServerName]map[*receipt.Receipt]struct{}),
+ relayServers: make(map[spec.ServerName][]spec.ServerName),
}
}
@@ -88,7 +89,7 @@ func (d *InMemoryFederationDatabase) StoreJSON(
func (d *InMemoryFederationDatabase) GetPendingPDUs(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
limit int,
) (pdus map[*receipt.Receipt]*gomatrixserverlib.HeaderedEvent, err error) {
d.dbMutex.Lock()
@@ -112,7 +113,7 @@ func (d *InMemoryFederationDatabase) GetPendingPDUs(
func (d *InMemoryFederationDatabase) GetPendingEDUs(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
limit int,
) (edus map[*receipt.Receipt]*gomatrixserverlib.EDU, err error) {
d.dbMutex.Lock()
@@ -136,7 +137,7 @@ func (d *InMemoryFederationDatabase) GetPendingEDUs(
func (d *InMemoryFederationDatabase) AssociatePDUWithDestinations(
ctx context.Context,
- destinations map[gomatrixserverlib.ServerName]struct{},
+ destinations map[spec.ServerName]struct{},
dbReceipt *receipt.Receipt,
) error {
d.dbMutex.Lock()
@@ -158,7 +159,7 @@ func (d *InMemoryFederationDatabase) AssociatePDUWithDestinations(
func (d *InMemoryFederationDatabase) AssociateEDUWithDestinations(
ctx context.Context,
- destinations map[gomatrixserverlib.ServerName]struct{},
+ destinations map[spec.ServerName]struct{},
dbReceipt *receipt.Receipt,
eduType string,
expireEDUTypes map[string]time.Duration,
@@ -182,7 +183,7 @@ func (d *InMemoryFederationDatabase) AssociateEDUWithDestinations(
func (d *InMemoryFederationDatabase) CleanPDUs(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
receipts []*receipt.Receipt,
) error {
d.dbMutex.Lock()
@@ -199,7 +200,7 @@ func (d *InMemoryFederationDatabase) CleanPDUs(
func (d *InMemoryFederationDatabase) CleanEDUs(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
receipts []*receipt.Receipt,
) error {
d.dbMutex.Lock()
@@ -216,7 +217,7 @@ func (d *InMemoryFederationDatabase) CleanEDUs(
func (d *InMemoryFederationDatabase) GetPendingPDUCount(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (int64, error) {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
@@ -230,7 +231,7 @@ func (d *InMemoryFederationDatabase) GetPendingPDUCount(
func (d *InMemoryFederationDatabase) GetPendingEDUCount(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (int64, error) {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
@@ -244,11 +245,11 @@ func (d *InMemoryFederationDatabase) GetPendingEDUCount(
func (d *InMemoryFederationDatabase) GetPendingPDUServerNames(
ctx context.Context,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
- servers := []gomatrixserverlib.ServerName{}
+ servers := []spec.ServerName{}
for server := range d.pendingPDUServers {
servers = append(servers, server)
}
@@ -257,11 +258,11 @@ func (d *InMemoryFederationDatabase) GetPendingPDUServerNames(
func (d *InMemoryFederationDatabase) GetPendingEDUServerNames(
ctx context.Context,
-) ([]gomatrixserverlib.ServerName, error) {
+) ([]spec.ServerName, error) {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
- servers := []gomatrixserverlib.ServerName{}
+ servers := []spec.ServerName{}
for server := range d.pendingEDUServers {
servers = append(servers, server)
}
@@ -269,7 +270,7 @@ func (d *InMemoryFederationDatabase) GetPendingEDUServerNames(
}
func (d *InMemoryFederationDatabase) AddServerToBlacklist(
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
@@ -279,7 +280,7 @@ func (d *InMemoryFederationDatabase) AddServerToBlacklist(
}
func (d *InMemoryFederationDatabase) RemoveServerFromBlacklist(
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
@@ -292,12 +293,12 @@ func (d *InMemoryFederationDatabase) RemoveAllServersFromBlacklist() error {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
- d.blacklistedServers = make(map[gomatrixserverlib.ServerName]struct{})
+ d.blacklistedServers = make(map[spec.ServerName]struct{})
return nil
}
func (d *InMemoryFederationDatabase) IsServerBlacklisted(
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (bool, error) {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
@@ -312,7 +313,7 @@ func (d *InMemoryFederationDatabase) IsServerBlacklisted(
func (d *InMemoryFederationDatabase) SetServerAssumedOffline(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
@@ -323,7 +324,7 @@ func (d *InMemoryFederationDatabase) SetServerAssumedOffline(
func (d *InMemoryFederationDatabase) RemoveServerAssumedOffline(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) error {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
@@ -338,13 +339,13 @@ func (d *InMemoryFederationDatabase) RemoveAllServersAssumedOffine(
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
- d.assumedOffline = make(map[gomatrixserverlib.ServerName]struct{})
+ d.assumedOffline = make(map[spec.ServerName]struct{})
return nil
}
func (d *InMemoryFederationDatabase) IsServerAssumedOffline(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (bool, error) {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
@@ -359,12 +360,12 @@ func (d *InMemoryFederationDatabase) IsServerAssumedOffline(
func (d *InMemoryFederationDatabase) P2PGetRelayServersForServer(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
-) ([]gomatrixserverlib.ServerName, error) {
+ serverName spec.ServerName,
+) ([]spec.ServerName, error) {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
- knownRelayServers := []gomatrixserverlib.ServerName{}
+ knownRelayServers := []spec.ServerName{}
if relayServers, ok := d.relayServers[serverName]; ok {
knownRelayServers = relayServers
}
@@ -374,8 +375,8 @@ func (d *InMemoryFederationDatabase) P2PGetRelayServersForServer(
func (d *InMemoryFederationDatabase) P2PAddRelayServersForServer(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
- relayServers []gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
+ relayServers []spec.ServerName,
) error {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
@@ -401,8 +402,8 @@ func (d *InMemoryFederationDatabase) P2PAddRelayServersForServer(
func (d *InMemoryFederationDatabase) P2PRemoveRelayServersForServer(
ctx context.Context,
- serverName gomatrixserverlib.ServerName,
- relayServers []gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
+ relayServers []spec.ServerName,
) error {
d.dbMutex.Lock()
defer d.dbMutex.Unlock()
@@ -426,7 +427,7 @@ func (d *InMemoryFederationDatabase) P2PRemoveRelayServersForServer(
return nil
}
-func (d *InMemoryFederationDatabase) FetchKeys(ctx context.Context, requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) {
+func (d *InMemoryFederationDatabase) FetchKeys(ctx context.Context, requests map[gomatrixserverlib.PublicKeyLookupRequest]spec.Timestamp) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) {
return nil, nil
}
@@ -446,11 +447,11 @@ func (d *InMemoryFederationDatabase) GetJoinedHosts(ctx context.Context, roomID
return nil, nil
}
-func (d *InMemoryFederationDatabase) GetAllJoinedHosts(ctx context.Context) ([]gomatrixserverlib.ServerName, error) {
+func (d *InMemoryFederationDatabase) GetAllJoinedHosts(ctx context.Context) ([]spec.ServerName, error) {
return nil, nil
}
-func (d *InMemoryFederationDatabase) GetJoinedHostsForRooms(ctx context.Context, roomIDs []string, excludeSelf, excludeBlacklisted bool) ([]gomatrixserverlib.ServerName, error) {
+func (d *InMemoryFederationDatabase) GetJoinedHostsForRooms(ctx context.Context, roomIDs []string, excludeSelf, excludeBlacklisted bool) ([]spec.ServerName, error) {
return nil, nil
}
@@ -458,19 +459,19 @@ func (d *InMemoryFederationDatabase) RemoveAllServersAssumedOffline(ctx context.
return nil
}
-func (d *InMemoryFederationDatabase) P2PRemoveAllRelayServersForServer(ctx context.Context, serverName gomatrixserverlib.ServerName) error {
+func (d *InMemoryFederationDatabase) P2PRemoveAllRelayServersForServer(ctx context.Context, serverName spec.ServerName) error {
return nil
}
-func (d *InMemoryFederationDatabase) AddOutboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) error {
+func (d *InMemoryFederationDatabase) AddOutboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) error {
return nil
}
-func (d *InMemoryFederationDatabase) RenewOutboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) error {
+func (d *InMemoryFederationDatabase) RenewOutboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) error {
return nil
}
-func (d *InMemoryFederationDatabase) GetOutboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string) (*types.OutboundPeek, error) {
+func (d *InMemoryFederationDatabase) GetOutboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string) (*types.OutboundPeek, error) {
return nil, nil
}
@@ -478,15 +479,15 @@ func (d *InMemoryFederationDatabase) GetOutboundPeeks(ctx context.Context, roomI
return nil, nil
}
-func (d *InMemoryFederationDatabase) AddInboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) error {
+func (d *InMemoryFederationDatabase) AddInboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) error {
return nil
}
-func (d *InMemoryFederationDatabase) RenewInboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) error {
+func (d *InMemoryFederationDatabase) RenewInboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string, renewalInterval int64) error {
return nil
}
-func (d *InMemoryFederationDatabase) GetInboundPeek(ctx context.Context, serverName gomatrixserverlib.ServerName, roomID, peekID string) (*types.InboundPeek, error) {
+func (d *InMemoryFederationDatabase) GetInboundPeek(ctx context.Context, serverName spec.ServerName, roomID, peekID string) (*types.InboundPeek, error) {
return nil, nil
}
@@ -494,11 +495,11 @@ func (d *InMemoryFederationDatabase) GetInboundPeeks(ctx context.Context, roomID
return nil, nil
}
-func (d *InMemoryFederationDatabase) UpdateNotaryKeys(ctx context.Context, serverName gomatrixserverlib.ServerName, serverKeys gomatrixserverlib.ServerKeys) error {
+func (d *InMemoryFederationDatabase) UpdateNotaryKeys(ctx context.Context, serverName spec.ServerName, serverKeys gomatrixserverlib.ServerKeys) error {
return nil
}
-func (d *InMemoryFederationDatabase) GetNotaryKeys(ctx context.Context, serverName gomatrixserverlib.ServerName, optKeyIDs []gomatrixserverlib.KeyID) ([]gomatrixserverlib.ServerKeys, error) {
+func (d *InMemoryFederationDatabase) GetNotaryKeys(ctx context.Context, serverName spec.ServerName, optKeyIDs []gomatrixserverlib.KeyID) ([]gomatrixserverlib.ServerKeys, error) {
return nil, nil
}
diff --git a/test/memory_relay_db.go b/test/memory_relay_db.go
index db93919d..eecc23fe 100644
--- a/test/memory_relay_db.go
+++ b/test/memory_relay_db.go
@@ -21,13 +21,14 @@ import (
"sync"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type InMemoryRelayDatabase struct {
nid int64
nidMutex sync.Mutex
transactions map[int64]json.RawMessage
- associations map[gomatrixserverlib.ServerName][]int64
+ associations map[spec.ServerName][]int64
}
func NewInMemoryRelayDatabase() *InMemoryRelayDatabase {
@@ -35,7 +36,7 @@ func NewInMemoryRelayDatabase() *InMemoryRelayDatabase {
nid: 1,
nidMutex: sync.Mutex{},
transactions: make(map[int64]json.RawMessage),
- associations: make(map[gomatrixserverlib.ServerName][]int64),
+ associations: make(map[spec.ServerName][]int64),
}
}
@@ -43,7 +44,7 @@ func (d *InMemoryRelayDatabase) InsertQueueEntry(
ctx context.Context,
txn *sql.Tx,
transactionID gomatrixserverlib.TransactionID,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
nid int64,
) error {
if _, ok := d.associations[serverName]; !ok {
@@ -56,7 +57,7 @@ func (d *InMemoryRelayDatabase) InsertQueueEntry(
func (d *InMemoryRelayDatabase) DeleteQueueEntries(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
jsonNIDs []int64,
) error {
for _, nid := range jsonNIDs {
@@ -72,7 +73,7 @@ func (d *InMemoryRelayDatabase) DeleteQueueEntries(
func (d *InMemoryRelayDatabase) SelectQueueEntries(
ctx context.Context,
- txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ txn *sql.Tx, serverName spec.ServerName,
limit int,
) ([]int64, error) {
results := []int64{}
@@ -92,7 +93,7 @@ func (d *InMemoryRelayDatabase) SelectQueueEntries(
func (d *InMemoryRelayDatabase) SelectQueueEntryCount(
ctx context.Context,
txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (int64, error) {
return int64(len(d.associations[serverName])), nil
}
diff --git a/test/room.go b/test/room.go
index 685876cb..0d80a594 100644
--- a/test/room.go
+++ b/test/room.go
@@ -22,6 +22,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal/eventutil"
)
@@ -111,18 +112,18 @@ func (r *Room) insertCreateEvents(t *testing.T) {
hisVis.HistoryVisibility = r.visibility
}
- r.CreateAndInsert(t, r.creator, gomatrixserverlib.MRoomCreate, map[string]interface{}{
+ r.CreateAndInsert(t, r.creator, spec.MRoomCreate, map[string]interface{}{
"creator": r.creator.ID,
"room_version": r.Version,
}, WithStateKey(""))
- r.CreateAndInsert(t, r.creator, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ r.CreateAndInsert(t, r.creator, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, WithStateKey(r.creator.ID))
- r.CreateAndInsert(t, r.creator, gomatrixserverlib.MRoomPowerLevels, plContent, WithStateKey(""))
- r.CreateAndInsert(t, r.creator, gomatrixserverlib.MRoomJoinRules, joinRule, WithStateKey(""))
- r.CreateAndInsert(t, r.creator, gomatrixserverlib.MRoomHistoryVisibility, hisVis, WithStateKey(""))
+ r.CreateAndInsert(t, r.creator, spec.MRoomPowerLevels, plContent, WithStateKey(""))
+ r.CreateAndInsert(t, r.creator, spec.MRoomJoinRules, joinRule, WithStateKey(""))
+ r.CreateAndInsert(t, r.creator, spec.MRoomHistoryVisibility, hisVis, WithStateKey(""))
if r.guestCanJoin {
- r.CreateAndInsert(t, r.creator, gomatrixserverlib.MRoomGuestAccess, map[string]string{
+ r.CreateAndInsert(t, r.creator, spec.MRoomGuestAccess, map[string]string{
"guest_access": "can_join",
}, WithStateKey(""))
}
@@ -152,7 +153,7 @@ func (r *Room) CreateEvent(t *testing.T, creator *User, eventType string, conten
mod.origin = creator.srvName
}
- var unsigned gomatrixserverlib.RawJSON
+ var unsigned spec.RawJSON
var err error
if mod.unsigned != nil {
unsigned, err = json.Marshal(mod.unsigned)
diff --git a/test/user.go b/test/user.go
index 63206fa1..9509b95a 100644
--- a/test/user.go
+++ b/test/user.go
@@ -23,12 +23,13 @@ import (
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
var (
userIDCounter = int64(0)
- serverName = gomatrixserverlib.ServerName("test")
+ serverName = spec.ServerName("test")
keyID = gomatrixserverlib.KeyID("ed25519:test")
privateKey = ed25519.NewKeyFromSeed([]byte{
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
@@ -53,12 +54,12 @@ type User struct {
// key ID and private key of the server who has this user, if known.
keyID gomatrixserverlib.KeyID
privKey ed25519.PrivateKey
- srvName gomatrixserverlib.ServerName
+ srvName spec.ServerName
}
type UserOpt func(*User)
-func WithSigningServer(srvName gomatrixserverlib.ServerName, keyID gomatrixserverlib.KeyID, privKey ed25519.PrivateKey) UserOpt {
+func WithSigningServer(srvName spec.ServerName, keyID gomatrixserverlib.KeyID, privKey ed25519.PrivateKey) UserOpt {
return func(u *User) {
u.keyID = keyID
u.privKey = privKey
diff --git a/userapi/api/api.go b/userapi/api/api.go
index 7c47efd2..3fe6a383 100644
--- a/userapi/api/api.go
+++ b/userapi/api/api.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/dendrite/userapi/types"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/dendrite/internal/pushrules"
@@ -115,8 +116,8 @@ type ClientUserAPI interface {
type ProfileAPI interface {
QueryProfile(ctx context.Context, userID string) (*authtypes.Profile, error)
- SetAvatarURL(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, avatarURL string) (*authtypes.Profile, bool, error)
- SetDisplayName(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, displayName string) (*authtypes.Profile, bool, error)
+ SetAvatarURL(ctx context.Context, localpart string, serverName spec.ServerName, avatarURL string) (*authtypes.Profile, bool, error)
+ SetDisplayName(ctx context.Context, localpart string, serverName spec.ServerName, displayName string) (*authtypes.Profile, bool, error)
}
// custom api functions required by pinecone / p2p demos
@@ -312,9 +313,9 @@ type QuerySearchProfilesResponse struct {
// PerformAccountCreationRequest is the request for PerformAccountCreation
type PerformAccountCreationRequest struct {
- AccountType AccountType // Required: whether this is a guest or user account
- Localpart string // Required: The localpart for this account. Ignored if account type is guest.
- ServerName gomatrixserverlib.ServerName // optional: if not specified, default server name used instead
+ AccountType AccountType // Required: whether this is a guest or user account
+ Localpart string // Required: The localpart for this account. Ignored if account type is guest.
+ ServerName spec.ServerName // optional: if not specified, default server name used instead
AppServiceID string // optional: the application service ID (not user ID) creating this account, if any.
Password string // optional: if missing then this account will be a passwordless account
@@ -329,10 +330,10 @@ type PerformAccountCreationResponse struct {
// PerformAccountCreationRequest is the request for PerformAccountCreation
type PerformPasswordUpdateRequest struct {
- Localpart string // Required: The localpart for this account.
- ServerName gomatrixserverlib.ServerName // Required: The domain for this account.
- Password string // Required: The new password to set.
- LogoutDevices bool // Optional: Whether to log out all user devices.
+ Localpart string // Required: The localpart for this account.
+ ServerName spec.ServerName // Required: The domain for this account.
+ Password string // Required: The new password to set.
+ LogoutDevices bool // Optional: Whether to log out all user devices.
}
// PerformAccountCreationResponse is the response for PerformAccountCreation
@@ -356,8 +357,8 @@ type PerformLastSeenUpdateResponse struct {
// PerformDeviceCreationRequest is the request for PerformDeviceCreation
type PerformDeviceCreationRequest struct {
Localpart string
- ServerName gomatrixserverlib.ServerName // optional: if blank, default server name used
- AccessToken string // optional: if blank one will be made on your behalf
+ ServerName spec.ServerName // optional: if blank, default server name used
+ AccessToken string // optional: if blank one will be made on your behalf
// optional: if nil an ID is generated for you. If set, replaces any existing device session,
// which will generate a new access token and invalidate the old one.
DeviceID *string
@@ -382,7 +383,7 @@ type PerformDeviceCreationResponse struct {
// PerformAccountDeactivationRequest is the request for PerformAccountDeactivation
type PerformAccountDeactivationRequest struct {
Localpart string
- ServerName gomatrixserverlib.ServerName // optional: if blank, default server name used
+ ServerName spec.ServerName // optional: if blank, default server name used
}
// PerformAccountDeactivationResponse is the response for PerformAccountDeactivation
@@ -432,7 +433,7 @@ type Device struct {
AccountType AccountType
}
-func (d *Device) UserDomain() gomatrixserverlib.ServerName {
+func (d *Device) UserDomain() spec.ServerName {
_, domain, err := gomatrixserverlib.SplitID('@', d.UserID)
if err != nil {
// This really is catastrophic because it means that someone
@@ -448,7 +449,7 @@ func (d *Device) UserDomain() gomatrixserverlib.ServerName {
type Account struct {
UserID string
Localpart string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
AppServiceID string
AccountType AccountType
// TODO: Associations (e.g. with application services)
@@ -514,7 +515,7 @@ const (
type QueryPushersRequest struct {
Localpart string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
}
type QueryPushersResponse struct {
@@ -524,13 +525,13 @@ type QueryPushersResponse struct {
type PerformPusherSetRequest struct {
Pusher // Anonymous field because that's how clientapi unmarshals it.
Localpart string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
Append bool `json:"append"`
}
type PerformPusherDeletionRequest struct {
Localpart string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
SessionID int64
}
@@ -556,11 +557,11 @@ const (
)
type QueryNotificationsRequest struct {
- Localpart string `json:"localpart"` // Required.
- ServerName gomatrixserverlib.ServerName `json:"server_name"` // Required.
- From string `json:"from,omitempty"`
- Limit int `json:"limit,omitempty"`
- Only string `json:"only,omitempty"`
+ Localpart string `json:"localpart"` // Required.
+ ServerName spec.ServerName `json:"server_name"` // Required.
+ From string `json:"from,omitempty"`
+ Limit int `json:"limit,omitempty"`
+ Only string `json:"only,omitempty"`
}
type QueryNotificationsResponse struct {
@@ -569,16 +570,16 @@ type QueryNotificationsResponse struct {
}
type Notification struct {
- Actions []*pushrules.Action `json:"actions"` // Required.
- Event synctypes.ClientEvent `json:"event"` // Required.
- ProfileTag string `json:"profile_tag"` // Required by Sytest, but actually optional.
- Read bool `json:"read"` // Required.
- RoomID string `json:"room_id"` // Required.
- TS gomatrixserverlib.Timestamp `json:"ts"` // Required.
+ Actions []*pushrules.Action `json:"actions"` // Required.
+ Event synctypes.ClientEvent `json:"event"` // Required.
+ ProfileTag string `json:"profile_tag"` // Required by Sytest, but actually optional.
+ Read bool `json:"read"` // Required.
+ RoomID string `json:"room_id"` // Required.
+ TS spec.Timestamp `json:"ts"` // Required.
}
type QueryNumericLocalpartRequest struct {
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
}
type QueryNumericLocalpartResponse struct {
@@ -587,7 +588,7 @@ type QueryNumericLocalpartResponse struct {
type QueryAccountAvailabilityRequest struct {
Localpart string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
}
type QueryAccountAvailabilityResponse struct {
@@ -596,7 +597,7 @@ type QueryAccountAvailabilityResponse struct {
type QueryAccountByPasswordRequest struct {
Localpart string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
PlaintextPassword string
}
@@ -611,12 +612,12 @@ type QueryLocalpartForThreePIDRequest struct {
type QueryLocalpartForThreePIDResponse struct {
Localpart string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
}
type QueryThreePIDsForLocalpartRequest struct {
Localpart string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
}
type QueryThreePIDsForLocalpartResponse struct {
@@ -628,13 +629,13 @@ type PerformForgetThreePIDRequest QueryLocalpartForThreePIDRequest
type PerformSaveThreePIDAssociationRequest struct {
ThreePID string
Localpart string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
Medium string
}
type QueryAccountByLocalpartRequest struct {
Localpart string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
}
type QueryAccountByLocalpartResponse struct {
@@ -944,6 +945,6 @@ type QuerySignaturesResponse struct {
type PerformMarkAsStaleRequest struct {
UserID string
- Domain gomatrixserverlib.ServerName
+ Domain spec.ServerName
DeviceID string
}
diff --git a/userapi/consumers/clientapi.go b/userapi/consumers/clientapi.go
index 51bd2753..ba72ff35 100644
--- a/userapi/consumers/clientapi.go
+++ b/userapi/consumers/clientapi.go
@@ -18,6 +18,7 @@ import (
"context"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
@@ -38,7 +39,7 @@ type OutputReceiptEventConsumer struct {
durable string
topic string
db storage.UserDatabase
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
syncProducer *producers.SyncAPI
pgClient pushgateway.Client
}
@@ -104,7 +105,7 @@ func (s *OutputReceiptEventConsumer) onMessage(ctx context.Context, msgs []*nats
return false
}
- updated, err := s.db.SetNotificationsRead(ctx, localpart, domain, roomID, uint64(gomatrixserverlib.AsTimestamp(metadata.Timestamp)), true)
+ updated, err := s.db.SetNotificationsRead(ctx, localpart, domain, roomID, uint64(spec.AsTimestamp(metadata.Timestamp)), true)
if err != nil {
log.WithError(err).Error("userapi EDU consumer")
return false
diff --git a/userapi/consumers/devicelistupdate.go b/userapi/consumers/devicelistupdate.go
index a65889fc..3389bb80 100644
--- a/userapi/consumers/devicelistupdate.go
+++ b/userapi/consumers/devicelistupdate.go
@@ -20,6 +20,7 @@ import (
"github.com/matrix-org/dendrite/userapi/internal"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/sirupsen/logrus"
@@ -35,7 +36,7 @@ type DeviceListUpdateConsumer struct {
durable string
topic string
updater *internal.DeviceListUpdater
- isLocalServerName func(gomatrixserverlib.ServerName) bool
+ isLocalServerName func(spec.ServerName) bool
}
// NewDeviceListUpdateConsumer creates a new DeviceListConsumer. Call Start() to begin consuming from key servers.
@@ -72,7 +73,7 @@ func (t *DeviceListUpdateConsumer) onMessage(ctx context.Context, msgs []*nats.M
logrus.WithError(err).Errorf("Failed to read from device list update input topic")
return true
}
- origin := gomatrixserverlib.ServerName(msg.Header.Get("origin"))
+ origin := spec.ServerName(msg.Header.Get("origin"))
if _, serverName, err := gomatrixserverlib.SplitID('@', m.UserID); err != nil {
return true
} else if t.isLocalServerName(serverName) {
diff --git a/userapi/consumers/roomserver.go b/userapi/consumers/roomserver.go
index 6704658d..834964ce 100644
--- a/userapi/consumers/roomserver.go
+++ b/userapi/consumers/roomserver.go
@@ -13,6 +13,7 @@ import (
"github.com/tidwall/gjson"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
@@ -43,11 +44,11 @@ type OutputRoomEventConsumer struct {
topic string
pgClient pushgateway.Client
syncProducer *producers.SyncAPI
- msgCounts map[gomatrixserverlib.ServerName]userAPITypes.MessageStats
- roomCounts map[gomatrixserverlib.ServerName]map[string]bool // map from serverName to map from rommID to "isEncrypted"
+ msgCounts map[spec.ServerName]userAPITypes.MessageStats
+ roomCounts map[spec.ServerName]map[string]bool // map from serverName to map from rommID to "isEncrypted"
lastUpdate time.Time
countsLock sync.Mutex
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
}
func NewOutputRoomEventConsumer(
@@ -69,8 +70,8 @@ func NewOutputRoomEventConsumer(
pgClient: pgClient,
rsAPI: rsAPI,
syncProducer: syncProducer,
- msgCounts: map[gomatrixserverlib.ServerName]userAPITypes.MessageStats{},
- roomCounts: map[gomatrixserverlib.ServerName]map[string]bool{},
+ msgCounts: map[spec.ServerName]userAPITypes.MessageStats{},
+ roomCounts: map[spec.ServerName]map[string]bool{},
lastUpdate: time.Now(),
countsLock: sync.Mutex{},
serverName: cfg.Matrix.ServerName,
@@ -119,7 +120,7 @@ func (s *OutputRoomEventConsumer) onMessage(ctx context.Context, msgs []*nats.Ms
return true
}
- if err := s.processMessage(ctx, event, uint64(gomatrixserverlib.AsTimestamp(metadata.Timestamp))); err != nil {
+ if err := s.processMessage(ctx, event, uint64(spec.AsTimestamp(metadata.Timestamp))); err != nil {
log.WithFields(log.Fields{
"event_id": event.EventID(),
}).WithError(err).Errorf("userapi consumer: process room event failure")
@@ -210,7 +211,7 @@ func (s *OutputRoomEventConsumer) handleRoomUpgrade(ctx context.Context, oldRoom
return nil
}
-func (s *OutputRoomEventConsumer) copyPushrules(ctx context.Context, oldRoomID, newRoomID string, localpart string, serverName gomatrixserverlib.ServerName) error {
+func (s *OutputRoomEventConsumer) copyPushrules(ctx context.Context, oldRoomID, newRoomID string, localpart string, serverName spec.ServerName) error {
pushRules, err := s.db.QueryPushRules(ctx, localpart, serverName)
if err != nil {
return fmt.Errorf("failed to query pushrules for user: %w", err)
@@ -238,7 +239,7 @@ func (s *OutputRoomEventConsumer) copyPushrules(ctx context.Context, oldRoomID,
}
// updateMDirect copies the "is_direct" flag from oldRoomID to newROomID
-func (s *OutputRoomEventConsumer) updateMDirect(ctx context.Context, oldRoomID, newRoomID, localpart string, serverName gomatrixserverlib.ServerName, roomSize int) error {
+func (s *OutputRoomEventConsumer) updateMDirect(ctx context.Context, oldRoomID, newRoomID, localpart string, serverName spec.ServerName, roomSize int) error {
// this is most likely not a DM, so skip updating m.direct state
if roomSize > 2 {
return nil
@@ -280,7 +281,7 @@ func (s *OutputRoomEventConsumer) updateMDirect(ctx context.Context, oldRoomID,
return nil
}
-func (s *OutputRoomEventConsumer) copyTags(ctx context.Context, oldRoomID, newRoomID, localpart string, serverName gomatrixserverlib.ServerName) error {
+func (s *OutputRoomEventConsumer) copyTags(ctx context.Context, oldRoomID, newRoomID, localpart string, serverName spec.ServerName) error {
tag, err := s.db.GetAccountDataByType(ctx, localpart, serverName, oldRoomID, "m.tag")
if err != nil && !errors.Is(err, sql.ErrNoRows) {
return err
@@ -298,14 +299,14 @@ func (s *OutputRoomEventConsumer) processMessage(ctx context.Context, event *gom
}
switch {
- case event.Type() == gomatrixserverlib.MRoomMember:
+ case event.Type() == spec.MRoomMember:
cevent := synctypes.HeaderedToClientEvent(event, synctypes.FormatAll)
var member *localMembership
member, err = newLocalMembership(&cevent)
if err != nil {
return fmt.Errorf("newLocalMembership: %w", err)
}
- if member.Membership == gomatrixserverlib.Invite && member.Domain == s.cfg.Matrix.ServerName {
+ if member.Membership == spec.Invite && member.Domain == s.cfg.Matrix.ServerName {
// localRoomMembers only adds joined members. An invite
// should also be pushed to the target user.
members = append(members, member)
@@ -356,7 +357,7 @@ type localMembership struct {
gomatrixserverlib.MemberContent
UserID string
Localpart string
- Domain gomatrixserverlib.ServerName
+ Domain spec.ServerName
}
func newLocalMembership(event *synctypes.ClientEvent) (*localMembership, error) {
@@ -418,7 +419,7 @@ func (s *OutputRoomEventConsumer) localRoomMembers(ctx context.Context, roomID s
log.WithError(err).Errorf("Parsing MemberContent")
continue
}
- if member.Membership != gomatrixserverlib.Join {
+ if member.Membership != spec.Join {
continue
}
if member.Domain != s.cfg.Matrix.ServerName {
@@ -436,7 +437,7 @@ func (s *OutputRoomEventConsumer) localRoomMembers(ctx context.Context, roomID s
// m.room.canonical_alias is consulted. Returns an empty string if the
// room has no name.
func (s *OutputRoomEventConsumer) roomName(ctx context.Context, event *gomatrixserverlib.HeaderedEvent) (string, error) {
- if event.Type() == gomatrixserverlib.MRoomName {
+ if event.Type() == spec.MRoomName {
name, err := unmarshalRoomName(event)
if err != nil {
return "", err
@@ -461,7 +462,7 @@ func (s *OutputRoomEventConsumer) roomName(ctx context.Context, event *gomatrixs
return unmarshalRoomName(eventS)
}
- if event.Type() == gomatrixserverlib.MRoomCanonicalAlias {
+ if event.Type() == spec.MRoomCanonicalAlias {
alias, err := unmarshalCanonicalAlias(event)
if err != nil {
return "", err
@@ -480,8 +481,8 @@ func (s *OutputRoomEventConsumer) roomName(ctx context.Context, event *gomatrixs
}
var (
- canonicalAliasTuple = gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomCanonicalAlias}
- roomNameTuple = gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomName}
+ canonicalAliasTuple = gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomCanonicalAlias}
+ roomNameTuple = gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomName}
)
func unmarshalRoomName(event *gomatrixserverlib.HeaderedEvent) (string, error) {
@@ -539,7 +540,7 @@ func (s *OutputRoomEventConsumer) notifyLocal(ctx context.Context, event *gomatr
// to "work", but they only use a single device.
ProfileTag: profileTag,
RoomID: event.RoomID(),
- TS: gomatrixserverlib.AsTimestamp(time.Now()),
+ TS: spec.AsTimestamp(time.Now()),
}
if err = s.db.InsertNotification(ctx, mem.Localpart, mem.Domain, event.EventID(), streamPos, tweaks, n); err != nil {
return fmt.Errorf("s.db.InsertNotification: %w", err)
@@ -684,7 +685,7 @@ func (rse *ruleSetEvalContext) HasPowerLevel(userID, levelKey string) (bool, err
req := &rsapi.QueryLatestEventsAndStateRequest{
RoomID: rse.roomID,
StateToFetch: []gomatrixserverlib.StateKeyTuple{
- {EventType: gomatrixserverlib.MRoomPowerLevels},
+ {EventType: spec.MRoomPowerLevels},
},
}
var res rsapi.QueryLatestEventsAndStateResponse
@@ -692,7 +693,7 @@ func (rse *ruleSetEvalContext) HasPowerLevel(userID, levelKey string) (bool, err
return false, err
}
for _, ev := range res.StateEvents {
- if ev.Type() != gomatrixserverlib.MRoomPowerLevels {
+ if ev.Type() != spec.MRoomPowerLevels {
continue
}
@@ -707,7 +708,7 @@ func (rse *ruleSetEvalContext) HasPowerLevel(userID, levelKey string) (bool, err
// localPushDevices pushes to the configured devices of a local
// user. The map keys are [url][format].
-func (s *OutputRoomEventConsumer) localPushDevices(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, tweaks map[string]interface{}) (map[string]map[string][]*pushgateway.Device, string, error) {
+func (s *OutputRoomEventConsumer) localPushDevices(ctx context.Context, localpart string, serverName spec.ServerName, tweaks map[string]interface{}) (map[string]map[string][]*pushgateway.Device, string, error) {
pusherDevices, err := util.GetPushDevices(ctx, localpart, serverName, tweaks, s.db)
if err != nil {
return nil, "", fmt.Errorf("util.GetPushDevices: %w", err)
@@ -805,7 +806,7 @@ func (s *OutputRoomEventConsumer) notifyHTTP(ctx context.Context, event *gomatri
}
// deleteRejectedPushers deletes the pushers associated with the given devices.
-func (s *OutputRoomEventConsumer) deleteRejectedPushers(ctx context.Context, devices []*pushgateway.Device, localpart string, serverName gomatrixserverlib.ServerName) {
+func (s *OutputRoomEventConsumer) deleteRejectedPushers(ctx context.Context, devices []*pushgateway.Device, localpart string, serverName spec.ServerName) {
log.WithFields(log.Fields{
"localpart": localpart,
"app_id0": devices[0].AppID,
diff --git a/userapi/consumers/roomserver_test.go b/userapi/consumers/roomserver_test.go
index 4827ad47..e233bc66 100644
--- a/userapi/consumers/roomserver_test.go
+++ b/userapi/consumers/roomserver_test.go
@@ -9,6 +9,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
"github.com/matrix-org/dendrite/internal/pushrules"
@@ -139,9 +140,9 @@ func TestMessageStats(t *testing.T) {
tests := []struct {
name string
args args
- ourServer gomatrixserverlib.ServerName
+ ourServer spec.ServerName
lastUpdate time.Time
- initRoomCounts map[gomatrixserverlib.ServerName]map[string]bool
+ initRoomCounts map[spec.ServerName]map[string]bool
wantStats userAPITypes.MessageStats
}{
{
@@ -197,7 +198,7 @@ func TestMessageStats(t *testing.T) {
name: "day change creates a new room map",
ourServer: "localhost",
lastUpdate: time.Now().Add(-time.Hour * 24),
- initRoomCounts: map[gomatrixserverlib.ServerName]map[string]bool{
+ initRoomCounts: map[spec.ServerName]map[string]bool{
"localhost": {"encryptedRoom": true},
},
args: args{
@@ -219,11 +220,11 @@ func TestMessageStats(t *testing.T) {
tt.lastUpdate = time.Now()
}
if tt.initRoomCounts == nil {
- tt.initRoomCounts = map[gomatrixserverlib.ServerName]map[string]bool{}
+ tt.initRoomCounts = map[spec.ServerName]map[string]bool{}
}
s := &OutputRoomEventConsumer{
db: db,
- msgCounts: map[gomatrixserverlib.ServerName]userAPITypes.MessageStats{},
+ msgCounts: map[spec.ServerName]userAPITypes.MessageStats{},
roomCounts: tt.initRoomCounts,
countsLock: sync.Mutex{},
lastUpdate: tt.lastUpdate,
diff --git a/userapi/consumers/signingkeyupdate.go b/userapi/consumers/signingkeyupdate.go
index 006ccb72..457a6183 100644
--- a/userapi/consumers/signingkeyupdate.go
+++ b/userapi/consumers/signingkeyupdate.go
@@ -20,6 +20,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/sirupsen/logrus"
@@ -37,7 +38,7 @@ type SigningKeyUpdateConsumer struct {
topic string
userAPI api.UploadDeviceKeysAPI
cfg *config.UserAPI
- isLocalServerName func(gomatrixserverlib.ServerName) bool
+ isLocalServerName func(spec.ServerName) bool
}
// NewSigningKeyUpdateConsumer creates a new SigningKeyUpdateConsumer. Call Start() to begin consuming from key servers.
@@ -75,7 +76,7 @@ func (t *SigningKeyUpdateConsumer) onMessage(ctx context.Context, msgs []*nats.M
logrus.WithError(err).Errorf("Failed to read from signing key update input topic")
return true
}
- origin := gomatrixserverlib.ServerName(msg.Header.Get("origin"))
+ origin := spec.ServerName(msg.Header.Get("origin"))
if _, serverName, err := gomatrixserverlib.SplitID('@', updatePayload.UserID); err != nil {
logrus.WithError(err).Error("failed to split user id")
return true
diff --git a/userapi/internal/cross_signing.go b/userapi/internal/cross_signing.go
index 23b6207e..ea7b84f6 100644
--- a/userapi/internal/cross_signing.go
+++ b/userapi/internal/cross_signing.go
@@ -26,6 +26,7 @@ import (
"github.com/matrix-org/dendrite/userapi/types"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
"golang.org/x/crypto/curve25519"
)
@@ -485,12 +486,12 @@ func (a *UserInternalAPI) crossSigningKeysFromDatabase(
continue
}
- appendSignature := func(originUserID string, originKeyID gomatrixserverlib.KeyID, signature gomatrixserverlib.Base64Bytes) {
+ appendSignature := func(originUserID string, originKeyID gomatrixserverlib.KeyID, signature spec.Base64Bytes) {
if key.Signatures == nil {
key.Signatures = types.CrossSigningSigMap{}
}
if _, ok := key.Signatures[originUserID]; !ok {
- key.Signatures[originUserID] = make(map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes)
+ key.Signatures[originUserID] = make(map[gomatrixserverlib.KeyID]spec.Base64Bytes)
}
key.Signatures[originUserID][originKeyID] = signature
}
@@ -577,7 +578,7 @@ func (a *UserInternalAPI) QuerySignatures(ctx context.Context, req *api.QuerySig
res.Signatures[targetUserID][targetKeyID] = types.CrossSigningSigMap{}
}
if _, ok := res.Signatures[targetUserID][targetKeyID][sourceUserID]; !ok {
- res.Signatures[targetUserID][targetKeyID][sourceUserID] = map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ res.Signatures[targetUserID][targetKeyID][sourceUserID] = map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
res.Signatures[targetUserID][targetKeyID][sourceUserID][sourceKeyID] = sourceSig
}
diff --git a/userapi/internal/device_list_update.go b/userapi/internal/device_list_update.go
index a274e1ae..d60e522e 100644
--- a/userapi/internal/device_list_update.go
+++ b/userapi/internal/device_list_update.go
@@ -26,6 +26,7 @@ import (
rsapi "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/gomatrix"
"github.com/matrix-org/gomatrixserverlib"
@@ -98,8 +99,8 @@ type DeviceListUpdater struct {
api DeviceListUpdaterAPI
producer KeyChangeProducer
fedClient fedsenderapi.KeyserverFederationAPI
- workerChans []chan gomatrixserverlib.ServerName
- thisServer gomatrixserverlib.ServerName
+ workerChans []chan spec.ServerName
+ thisServer spec.ServerName
// When device lists are stale for a user, they get inserted into this map with a channel which `Update` will
// block on or timeout via a select.
@@ -113,7 +114,7 @@ type DeviceListUpdater struct {
type DeviceListUpdaterDatabase interface {
// StaleDeviceLists returns a list of user IDs ending with the domains provided who have stale device lists.
// If no domains are given, all user IDs with stale device lists are returned.
- StaleDeviceLists(ctx context.Context, domains []gomatrixserverlib.ServerName) ([]string, error)
+ StaleDeviceLists(ctx context.Context, domains []spec.ServerName) ([]string, error)
// MarkDeviceListStale sets the stale bit for this user to isStale.
MarkDeviceListStale(ctx context.Context, userID string, isStale bool) error
@@ -146,7 +147,7 @@ func NewDeviceListUpdater(
process *process.ProcessContext, db DeviceListUpdaterDatabase,
api DeviceListUpdaterAPI, producer KeyChangeProducer,
fedClient fedsenderapi.KeyserverFederationAPI, numWorkers int,
- rsAPI rsapi.KeyserverRoomserverAPI, thisServer gomatrixserverlib.ServerName,
+ rsAPI rsapi.KeyserverRoomserverAPI, thisServer spec.ServerName,
) *DeviceListUpdater {
return &DeviceListUpdater{
process: process,
@@ -157,7 +158,7 @@ func NewDeviceListUpdater(
producer: producer,
fedClient: fedClient,
thisServer: thisServer,
- workerChans: make([]chan gomatrixserverlib.ServerName, numWorkers),
+ workerChans: make([]chan spec.ServerName, numWorkers),
userIDToChan: make(map[string]chan bool),
userIDToChanMu: &sync.Mutex{},
rsAPI: rsAPI,
@@ -170,12 +171,12 @@ func (u *DeviceListUpdater) Start() error {
// Allocate a small buffer per channel.
// If the buffer limit is reached, backpressure will cause the processing of EDUs
// to stop (in this transaction) until key requests can be made.
- ch := make(chan gomatrixserverlib.ServerName, 10)
+ ch := make(chan spec.ServerName, 10)
u.workerChans[i] = ch
go u.worker(ch)
}
- staleLists, err := u.db.StaleDeviceLists(u.process.Context(), []gomatrixserverlib.ServerName{})
+ staleLists, err := u.db.StaleDeviceLists(u.process.Context(), []spec.ServerName{})
if err != nil {
return err
}
@@ -195,7 +196,7 @@ func (u *DeviceListUpdater) Start() error {
// CleanUp removes stale device entries for users we don't share a room with anymore
func (u *DeviceListUpdater) CleanUp() error {
- staleUsers, err := u.db.StaleDeviceLists(u.process.Context(), []gomatrixserverlib.ServerName{})
+ staleUsers, err := u.db.StaleDeviceLists(u.process.Context(), []spec.ServerName{})
if err != nil {
return err
}
@@ -223,7 +224,7 @@ func (u *DeviceListUpdater) mutex(userID string) *sync.Mutex {
// ManualUpdate invalidates the device list for the given user and fetches the latest and tracks it.
// Blocks until the device list is synced or the timeout is reached.
-func (u *DeviceListUpdater) ManualUpdate(ctx context.Context, serverName gomatrixserverlib.ServerName, userID string) error {
+func (u *DeviceListUpdater) ManualUpdate(ctx context.Context, serverName spec.ServerName, userID string) error {
mu := u.mutex(userID)
mu.Lock()
err := u.db.MarkDeviceListStale(ctx, userID, true)
@@ -369,12 +370,12 @@ func (u *DeviceListUpdater) clearChannel(userID string) {
}
}
-func (u *DeviceListUpdater) worker(ch chan gomatrixserverlib.ServerName) {
- retries := make(map[gomatrixserverlib.ServerName]time.Time)
+func (u *DeviceListUpdater) worker(ch chan spec.ServerName) {
+ retries := make(map[spec.ServerName]time.Time)
retriesMu := &sync.Mutex{}
// restarter goroutine which will inject failed servers into ch when it is time
go func() {
- var serversToRetry []gomatrixserverlib.ServerName
+ var serversToRetry []spec.ServerName
for {
serversToRetry = serversToRetry[:0] // reuse memory
time.Sleep(time.Second)
@@ -413,7 +414,7 @@ func (u *DeviceListUpdater) worker(ch chan gomatrixserverlib.ServerName) {
}
}
-func (u *DeviceListUpdater) processServer(serverName gomatrixserverlib.ServerName) (time.Duration, bool) {
+func (u *DeviceListUpdater) processServer(serverName spec.ServerName) (time.Duration, bool) {
ctx := u.process.Context()
logger := util.GetLogger(ctx).WithField("server_name", serverName)
deviceListUpdateCount.WithLabelValues(string(serverName)).Inc()
@@ -421,7 +422,7 @@ func (u *DeviceListUpdater) processServer(serverName gomatrixserverlib.ServerNam
waitTime := defaultWaitTime // How long should we wait to try again?
successCount := 0 // How many user requests failed?
- userIDs, err := u.db.StaleDeviceLists(ctx, []gomatrixserverlib.ServerName{serverName})
+ userIDs, err := u.db.StaleDeviceLists(ctx, []spec.ServerName{serverName})
if err != nil {
logger.WithError(err).Error("Failed to load stale device lists")
return waitTime, true
@@ -457,7 +458,7 @@ func (u *DeviceListUpdater) processServer(serverName gomatrixserverlib.ServerNam
return waitTime, !allUsersSucceeded
}
-func (u *DeviceListUpdater) processServerUser(ctx context.Context, serverName gomatrixserverlib.ServerName, userID string) (time.Duration, error) {
+func (u *DeviceListUpdater) processServerUser(ctx context.Context, serverName spec.ServerName, userID string) (time.Duration, error) {
ctx, cancel := context.WithTimeout(ctx, requestTimeout)
defer cancel()
logger := util.GetLogger(ctx).WithFields(logrus.Fields{
diff --git a/userapi/internal/device_list_update_test.go b/userapi/internal/device_list_update_test.go
index 47b31c68..3a269801 100644
--- a/userapi/internal/device_list_update_test.go
+++ b/userapi/internal/device_list_update_test.go
@@ -30,6 +30,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
roomserver "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/setup/config"
@@ -65,7 +66,7 @@ func (d *mockDeviceListUpdaterDatabase) DeleteStaleDeviceLists(ctx context.Conte
// StaleDeviceLists returns a list of user IDs ending with the domains provided who have stale device lists.
// If no domains are given, all user IDs with stale device lists are returned.
-func (d *mockDeviceListUpdaterDatabase) StaleDeviceLists(ctx context.Context, domains []gomatrixserverlib.ServerName) ([]string, error) {
+func (d *mockDeviceListUpdaterDatabase) StaleDeviceLists(ctx context.Context, domains []spec.ServerName) ([]string, error) {
d.mu.Lock()
defer d.mu.Unlock()
var result []string
@@ -141,7 +142,7 @@ func newFedClient(tripper func(*http.Request) (*http.Response, error)) *fclient.
fedClient := fclient.NewFederationClient(
[]*fclient.SigningIdentity{
{
- ServerName: gomatrixserverlib.ServerName("example.test"),
+ ServerName: spec.ServerName("example.test"),
KeyID: gomatrixserverlib.KeyID("ed25519:test"),
PrivateKey: pkey,
},
@@ -294,7 +295,7 @@ func TestDebounce(t *testing.T) {
ap := &mockDeviceListUpdaterAPI{}
producer := &mockKeyChangeProducer{}
fedCh := make(chan *http.Response, 1)
- srv := gomatrixserverlib.ServerName("example.com")
+ srv := spec.ServerName("example.com")
userID := "@alice:example.com"
keyJSON := `{"user_id":"` + userID + `","device_id":"JLAFKJWSCS","algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"keys":{"curve25519:JLAFKJWSCS":"3C5BFWi2Y8MaVvjM8M22DBmh24PmgR0nPvJOIArzgyI","ed25519:JLAFKJWSCS":"lEuiRJBit0IG6nUf5pUzWTUEsRVVe/HJkoKuEww9ULI"},"signatures":{"` + userID + `":{"ed25519:JLAFKJWSCS":"dSO80A01XiigH3uBiDVx/EjzaoycHcjq9lfQX0uWsqxl2giMIiSPR8a4d291W1ihKJL/a+myXS367WT6NAIcBA"}}}`
incomingFedReq := make(chan struct{})
@@ -414,7 +415,7 @@ func TestDeviceListUpdater_CleanUp(t *testing.T) {
}
// check that we still have Alice in our stale list
- staleUsers, err := db.StaleDeviceLists(ctx, []gomatrixserverlib.ServerName{"test"})
+ staleUsers, err := db.StaleDeviceLists(ctx, []spec.ServerName{"test"})
if err != nil {
t.Error(err)
}
diff --git a/userapi/internal/key_api.go b/userapi/internal/key_api.go
index 04302872..0b188b09 100644
--- a/userapi/internal/key_api.go
+++ b/userapi/internal/key_api.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
"github.com/tidwall/gjson"
@@ -80,7 +81,7 @@ func (a *UserInternalAPI) PerformClaimKeys(ctx context.Context, req *api.Perform
domainToDeviceKeys[string(serverName)] = nested
}
for domain, local := range domainToDeviceKeys {
- if !a.Config.Matrix.IsLocalServerName(gomatrixserverlib.ServerName(domain)) {
+ if !a.Config.Matrix.IsLocalServerName(spec.ServerName(domain)) {
continue
}
// claim local keys
@@ -129,7 +130,7 @@ func (a *UserInternalAPI) claimRemoteKeys(
defer cancel()
defer wg.Done()
- claimKeyRes, err := a.FedClient.ClaimKeys(fedCtx, a.Config.Matrix.ServerName, gomatrixserverlib.ServerName(domain), keysToClaim)
+ claimKeyRes, err := a.FedClient.ClaimKeys(fedCtx, a.Config.Matrix.ServerName, spec.ServerName(domain), keysToClaim)
mu.Lock()
defer mu.Unlock()
@@ -321,7 +322,7 @@ func (a *UserInternalAPI) QueryKeys(ctx context.Context, req *api.QueryKeysReque
for targetUserID, masterKey := range res.MasterKeys {
if masterKey.Signatures == nil {
- masterKey.Signatures = map[string]map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ masterKey.Signatures = map[string]map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
for targetKeyID := range masterKey.Keys {
sigMap, err := a.KeyDatabase.CrossSigningSigsForTarget(ctx, req.UserID, targetUserID, targetKeyID)
@@ -340,7 +341,7 @@ func (a *UserInternalAPI) QueryKeys(ctx context.Context, req *api.QueryKeysReque
for sourceUserID, forSourceUser := range sigMap {
for sourceKeyID, sourceSig := range forSourceUser {
if _, ok := masterKey.Signatures[sourceUserID]; !ok {
- masterKey.Signatures[sourceUserID] = map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ masterKey.Signatures[sourceUserID] = map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
masterKey.Signatures[sourceUserID][sourceKeyID] = sourceSig
}
@@ -368,12 +369,12 @@ func (a *UserInternalAPI) QueryKeys(ctx context.Context, req *api.QueryKeysReque
continue
}
if deviceKey.Signatures == nil {
- deviceKey.Signatures = map[string]map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ deviceKey.Signatures = map[string]map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
for sourceUserID, forSourceUser := range sigMap {
for sourceKeyID, sourceSig := range forSourceUser {
if _, ok := deviceKey.Signatures[sourceUserID]; !ok {
- deviceKey.Signatures[sourceUserID] = map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ deviceKey.Signatures[sourceUserID] = map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
deviceKey.Signatures[sourceUserID][sourceKeyID] = sourceSig
}
@@ -424,13 +425,13 @@ func (a *UserInternalAPI) queryRemoteKeys(
domains := map[string]struct{}{}
for domain := range domainToDeviceKeys {
- if a.Config.Matrix.IsLocalServerName(gomatrixserverlib.ServerName(domain)) {
+ if a.Config.Matrix.IsLocalServerName(spec.ServerName(domain)) {
continue
}
domains[domain] = struct{}{}
}
for domain := range domainToCrossSigningKeys {
- if a.Config.Matrix.IsLocalServerName(gomatrixserverlib.ServerName(domain)) {
+ if a.Config.Matrix.IsLocalServerName(spec.ServerName(domain)) {
continue
}
domains[domain] = struct{}{}
@@ -514,7 +515,7 @@ func (a *UserInternalAPI) queryRemoteKeysOnServer(
}
}
for userID := range userIDsForAllDevices {
- err := a.Updater.ManualUpdate(context.Background(), gomatrixserverlib.ServerName(serverName), userID)
+ err := a.Updater.ManualUpdate(context.Background(), spec.ServerName(serverName), userID)
if err != nil {
logrus.WithFields(logrus.Fields{
logrus.ErrorKey: err,
@@ -542,7 +543,7 @@ func (a *UserInternalAPI) queryRemoteKeysOnServer(
if len(devKeys) == 0 {
return
}
- queryKeysResp, err := a.FedClient.QueryKeys(fedCtx, a.Config.Matrix.ServerName, gomatrixserverlib.ServerName(serverName), devKeys)
+ queryKeysResp, err := a.FedClient.QueryKeys(fedCtx, a.Config.Matrix.ServerName, spec.ServerName(serverName), devKeys)
if err == nil {
resultCh <- &queryKeysResp
return
@@ -671,7 +672,7 @@ func (a *UserInternalAPI) uploadLocalDeviceKeys(ctx context.Context, req *api.Pe
} else {
// assert that the user ID / device ID are not lying for each key
for _, key := range req.DeviceKeys {
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
_, serverName, err = gomatrixserverlib.SplitID('@', key.UserID)
if err != nil {
continue // ignore invalid users
diff --git a/userapi/internal/user_api.go b/userapi/internal/user_api.go
index 139ca758..1b6a4ebf 100644
--- a/userapi/internal/user_api.go
+++ b/userapi/internal/user_api.go
@@ -28,6 +28,7 @@ import (
fedsenderapi "github.com/matrix-org/dendrite/federationapi/api"
"github.com/matrix-org/dendrite/internal/pushrules"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
"golang.org/x/crypto/bcrypt"
@@ -113,7 +114,7 @@ func (a *UserInternalAPI) setFullyRead(ctx context.Context, req *api.InputAccoun
return nil
}
- deleted, err := a.DB.DeleteNotificationsUpTo(ctx, localpart, domain, req.RoomID, uint64(gomatrixserverlib.AsTimestamp(time.Now())))
+ deleted, err := a.DB.DeleteNotificationsUpTo(ctx, localpart, domain, req.RoomID, uint64(spec.AsTimestamp(time.Now())))
if err != nil {
logrus.WithError(err).Errorf("UserInternalAPI.setFullyRead: DeleteNotificationsUpTo failed")
return err
@@ -897,7 +898,7 @@ func (a *UserInternalAPI) QueryPushRules(ctx context.Context, userID string) (*p
return a.DB.QueryPushRules(ctx, localpart, domain)
}
-func (a *UserInternalAPI) SetAvatarURL(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, avatarURL string) (*authtypes.Profile, bool, error) {
+func (a *UserInternalAPI) SetAvatarURL(ctx context.Context, localpart string, serverName spec.ServerName, avatarURL string) (*authtypes.Profile, bool, error) {
return a.DB.SetAvatarURL(ctx, localpart, serverName, avatarURL)
}
@@ -932,7 +933,7 @@ func (a *UserInternalAPI) QueryAccountByPassword(ctx context.Context, req *api.Q
}
}
-func (a *UserInternalAPI) SetDisplayName(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, displayName string) (*authtypes.Profile, bool, error) {
+func (a *UserInternalAPI) SetDisplayName(ctx context.Context, localpart string, serverName spec.ServerName, displayName string) (*authtypes.Profile, bool, error) {
return a.DB.SetDisplayName(ctx, localpart, serverName, displayName)
}
diff --git a/userapi/storage/interface.go b/userapi/storage/interface.go
index 4ffb126a..4f5e99a8 100644
--- a/userapi/storage/interface.go
+++ b/userapi/storage/interface.go
@@ -21,6 +21,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/dendrite/internal/pushrules"
@@ -30,40 +31,40 @@ import (
)
type Profile interface {
- GetProfileByLocalpart(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (*authtypes.Profile, error)
+ GetProfileByLocalpart(ctx context.Context, localpart string, serverName spec.ServerName) (*authtypes.Profile, error)
SearchProfiles(ctx context.Context, searchString string, limit int) ([]authtypes.Profile, error)
- SetAvatarURL(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, avatarURL string) (*authtypes.Profile, bool, error)
- SetDisplayName(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, displayName string) (*authtypes.Profile, bool, error)
+ SetAvatarURL(ctx context.Context, localpart string, serverName spec.ServerName, avatarURL string) (*authtypes.Profile, bool, error)
+ SetDisplayName(ctx context.Context, localpart string, serverName spec.ServerName, displayName string) (*authtypes.Profile, bool, error)
}
type Account interface {
// CreateAccount makes a new account with the given login name and password, and creates an empty profile
// for this account. If no password is supplied, the account will be a passwordless account. If the
// account already exists, it will return nil, ErrUserExists.
- CreateAccount(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, plaintextPassword string, appserviceID string, accountType api.AccountType) (*api.Account, error)
- GetAccountByPassword(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, plaintextPassword string) (*api.Account, error)
- GetNewNumericLocalpart(ctx context.Context, serverName gomatrixserverlib.ServerName) (int64, error)
- CheckAccountAvailability(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (bool, error)
- GetAccountByLocalpart(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (*api.Account, error)
- DeactivateAccount(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (err error)
- SetPassword(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, plaintextPassword string) error
+ CreateAccount(ctx context.Context, localpart string, serverName spec.ServerName, plaintextPassword string, appserviceID string, accountType api.AccountType) (*api.Account, error)
+ GetAccountByPassword(ctx context.Context, localpart string, serverName spec.ServerName, plaintextPassword string) (*api.Account, error)
+ GetNewNumericLocalpart(ctx context.Context, serverName spec.ServerName) (int64, error)
+ CheckAccountAvailability(ctx context.Context, localpart string, serverName spec.ServerName) (bool, error)
+ GetAccountByLocalpart(ctx context.Context, localpart string, serverName spec.ServerName) (*api.Account, error)
+ DeactivateAccount(ctx context.Context, localpart string, serverName spec.ServerName) (err error)
+ SetPassword(ctx context.Context, localpart string, serverName spec.ServerName, plaintextPassword string) error
}
type AccountData interface {
- SaveAccountData(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, roomID, dataType string, content json.RawMessage) error
- GetAccountData(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (global map[string]json.RawMessage, rooms map[string]map[string]json.RawMessage, err error)
+ SaveAccountData(ctx context.Context, localpart string, serverName spec.ServerName, roomID, dataType string, content json.RawMessage) error
+ GetAccountData(ctx context.Context, localpart string, serverName spec.ServerName) (global map[string]json.RawMessage, rooms map[string]map[string]json.RawMessage, err error)
// GetAccountDataByType returns account data matching a given
// localpart, room ID and type.
// If no account data could be found, returns nil
// Returns an error if there was an issue with the retrieval
- GetAccountDataByType(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, roomID, dataType string) (data json.RawMessage, err error)
- QueryPushRules(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (*pushrules.AccountRuleSets, error)
+ GetAccountDataByType(ctx context.Context, localpart string, serverName spec.ServerName, roomID, dataType string) (data json.RawMessage, err error)
+ QueryPushRules(ctx context.Context, localpart string, serverName spec.ServerName) (*pushrules.AccountRuleSets, error)
}
type Device interface {
GetDeviceByAccessToken(ctx context.Context, token string) (*api.Device, error)
- GetDeviceByID(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, deviceID string) (*api.Device, error)
- GetDevicesByLocalpart(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) ([]api.Device, error)
+ GetDeviceByID(ctx context.Context, localpart string, serverName spec.ServerName, deviceID string) (*api.Device, error)
+ GetDevicesByLocalpart(ctx context.Context, localpart string, serverName spec.ServerName) ([]api.Device, error)
GetDevicesByID(ctx context.Context, deviceIDs []string) ([]api.Device, error)
// CreateDevice makes a new device associated with the given user ID localpart.
// If there is already a device with the same device ID for this user, that access token will be revoked
@@ -71,12 +72,12 @@ type Device interface {
// an error will be returned.
// If no device ID is given one is generated.
// Returns the device on success.
- CreateDevice(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, deviceID *string, accessToken string, displayName *string, ipAddr, userAgent string) (dev *api.Device, returnErr error)
- UpdateDevice(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, deviceID string, displayName *string) error
- UpdateDeviceLastSeen(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, deviceID, ipAddr, userAgent string) error
- RemoveDevices(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, devices []string) error
+ CreateDevice(ctx context.Context, localpart string, serverName spec.ServerName, deviceID *string, accessToken string, displayName *string, ipAddr, userAgent string) (dev *api.Device, returnErr error)
+ UpdateDevice(ctx context.Context, localpart string, serverName spec.ServerName, deviceID string, displayName *string) error
+ UpdateDeviceLastSeen(ctx context.Context, localpart string, serverName spec.ServerName, deviceID, ipAddr, userAgent string) error
+ RemoveDevices(ctx context.Context, localpart string, serverName spec.ServerName, devices []string) error
// RemoveAllDevices deleted all devices for this user. Returns the devices deleted.
- RemoveAllDevices(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, exceptDeviceID string) (devices []api.Device, err error)
+ RemoveAllDevices(ctx context.Context, localpart string, serverName spec.ServerName, exceptDeviceID string) (devices []api.Device, err error)
}
type KeyBackup interface {
@@ -108,26 +109,26 @@ type OpenID interface {
}
type Pusher interface {
- UpsertPusher(ctx context.Context, p api.Pusher, localpart string, serverName gomatrixserverlib.ServerName) error
- GetPushers(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) ([]api.Pusher, error)
- RemovePusher(ctx context.Context, appid, pushkey, localpart string, serverName gomatrixserverlib.ServerName) error
+ UpsertPusher(ctx context.Context, p api.Pusher, localpart string, serverName spec.ServerName) error
+ GetPushers(ctx context.Context, localpart string, serverName spec.ServerName) ([]api.Pusher, error)
+ RemovePusher(ctx context.Context, appid, pushkey, localpart string, serverName spec.ServerName) error
RemovePushers(ctx context.Context, appid, pushkey string) error
}
type ThreePID interface {
- SaveThreePIDAssociation(ctx context.Context, threepid, localpart string, serverName gomatrixserverlib.ServerName, medium string) (err error)
+ SaveThreePIDAssociation(ctx context.Context, threepid, localpart string, serverName spec.ServerName, medium string) (err error)
RemoveThreePIDAssociation(ctx context.Context, threepid string, medium string) (err error)
- GetLocalpartForThreePID(ctx context.Context, threepid string, medium string) (localpart string, serverName gomatrixserverlib.ServerName, err error)
- GetThreePIDsForLocalpart(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (threepids []authtypes.ThreePID, err error)
+ GetLocalpartForThreePID(ctx context.Context, threepid string, medium string) (localpart string, serverName spec.ServerName, err error)
+ GetThreePIDsForLocalpart(ctx context.Context, localpart string, serverName spec.ServerName) (threepids []authtypes.ThreePID, err error)
}
type Notification interface {
- InsertNotification(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, eventID string, pos uint64, tweaks map[string]interface{}, n *api.Notification) error
- DeleteNotificationsUpTo(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, roomID string, pos uint64) (affected bool, err error)
- SetNotificationsRead(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, roomID string, pos uint64, read bool) (affected bool, err error)
- GetNotifications(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, fromID int64, limit int, filter tables.NotificationFilter) ([]*api.Notification, int64, error)
- GetNotificationCount(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, filter tables.NotificationFilter) (int64, error)
- GetRoomNotificationCounts(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, roomID string) (total int64, highlight int64, _ error)
+ InsertNotification(ctx context.Context, localpart string, serverName spec.ServerName, eventID string, pos uint64, tweaks map[string]interface{}, n *api.Notification) error
+ DeleteNotificationsUpTo(ctx context.Context, localpart string, serverName spec.ServerName, roomID string, pos uint64) (affected bool, err error)
+ SetNotificationsRead(ctx context.Context, localpart string, serverName spec.ServerName, roomID string, pos uint64, read bool) (affected bool, err error)
+ GetNotifications(ctx context.Context, localpart string, serverName spec.ServerName, fromID int64, limit int, filter tables.NotificationFilter) ([]*api.Notification, int64, error)
+ GetNotificationCount(ctx context.Context, localpart string, serverName spec.ServerName, filter tables.NotificationFilter) (int64, error)
+ GetRoomNotificationCounts(ctx context.Context, localpart string, serverName spec.ServerName, roomID string) (total int64, highlight int64, _ error)
DeleteOldNotifications(ctx context.Context) error
}
@@ -199,7 +200,7 @@ type KeyDatabase interface {
// StaleDeviceLists returns a list of user IDs ending with the domains provided who have stale device lists.
// If no domains are given, all user IDs with stale device lists are returned.
- StaleDeviceLists(ctx context.Context, domains []gomatrixserverlib.ServerName) ([]string, error)
+ StaleDeviceLists(ctx context.Context, domains []spec.ServerName) ([]string, error)
// MarkDeviceListStale sets the stale bit for this user to isStale.
MarkDeviceListStale(ctx context.Context, userID string, isStale bool) error
@@ -209,7 +210,7 @@ type KeyDatabase interface {
CrossSigningSigsForTarget(ctx context.Context, originUserID, targetUserID string, targetKeyID gomatrixserverlib.KeyID) (types.CrossSigningSigMap, error)
StoreCrossSigningKeysForUser(ctx context.Context, userID string, keyMap types.CrossSigningKeyMap) error
- StoreCrossSigningSigsForTarget(ctx context.Context, originUserID string, originKeyID gomatrixserverlib.KeyID, targetUserID string, targetKeyID gomatrixserverlib.KeyID, signature gomatrixserverlib.Base64Bytes) error
+ StoreCrossSigningSigsForTarget(ctx context.Context, originUserID string, originKeyID gomatrixserverlib.KeyID, targetUserID string, targetKeyID gomatrixserverlib.KeyID, signature spec.Base64Bytes) error
DeleteStaleDeviceLists(
ctx context.Context,
@@ -219,8 +220,8 @@ type KeyDatabase interface {
type Statistics interface {
UserStatistics(ctx context.Context) (*types.UserStatistics, *types.DatabaseEngine, error)
- DailyRoomsMessages(ctx context.Context, serverName gomatrixserverlib.ServerName) (stats types.MessageStats, activeRooms, activeE2EERooms int64, err error)
- UpsertDailyRoomsMessages(ctx context.Context, serverName gomatrixserverlib.ServerName, stats types.MessageStats, activeRooms, activeE2EERooms int64) error
+ DailyRoomsMessages(ctx context.Context, serverName spec.ServerName) (stats types.MessageStats, activeRooms, activeE2EERooms int64, err error)
+ UpsertDailyRoomsMessages(ctx context.Context, serverName spec.ServerName, stats types.MessageStats, activeRooms, activeE2EERooms int64) error
}
// Err3PIDInUse is the error returned when trying to save an association involving
diff --git a/userapi/storage/postgres/account_data_table.go b/userapi/storage/postgres/account_data_table.go
index 05716037..6ffda340 100644
--- a/userapi/storage/postgres/account_data_table.go
+++ b/userapi/storage/postgres/account_data_table.go
@@ -22,7 +22,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const accountDataSchema = `
@@ -74,7 +74,7 @@ func NewPostgresAccountDataTable(db *sql.DB) (tables.AccountDataTable, error) {
func (s *accountDataStatements) InsertAccountData(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
roomID, dataType string, content json.RawMessage,
) (err error) {
stmt := sqlutil.TxStmt(txn, s.insertAccountDataStmt)
@@ -90,7 +90,7 @@ func (s *accountDataStatements) InsertAccountData(
func (s *accountDataStatements) SelectAccountData(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (
/* global */ map[string]json.RawMessage,
/* rooms */ map[string]map[string]json.RawMessage,
@@ -129,7 +129,7 @@ func (s *accountDataStatements) SelectAccountData(
func (s *accountDataStatements) SelectAccountDataByType(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
roomID, dataType string,
) (data json.RawMessage, err error) {
var bytes []byte
diff --git a/userapi/storage/postgres/accounts_table.go b/userapi/storage/postgres/accounts_table.go
index 31a99652..5b38c5f4 100644
--- a/userapi/storage/postgres/accounts_table.go
+++ b/userapi/storage/postgres/accounts_table.go
@@ -20,13 +20,12 @@ import (
"fmt"
"time"
- "github.com/matrix-org/gomatrixserverlib"
-
"github.com/matrix-org/dendrite/clientapi/userutil"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage/postgres/deltas"
"github.com/matrix-org/dendrite/userapi/storage/tables"
+ "github.com/matrix-org/gomatrixserverlib/spec"
log "github.com/sirupsen/logrus"
)
@@ -79,10 +78,10 @@ type accountsStatements struct {
selectAccountByLocalpartStmt *sql.Stmt
selectPasswordHashStmt *sql.Stmt
selectNewNumericLocalpartStmt *sql.Stmt
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
}
-func NewPostgresAccountsTable(db *sql.DB, serverName gomatrixserverlib.ServerName) (tables.AccountsTable, error) {
+func NewPostgresAccountsTable(db *sql.DB, serverName spec.ServerName) (tables.AccountsTable, error) {
s := &accountsStatements{
serverName: serverName,
}
@@ -122,7 +121,7 @@ func NewPostgresAccountsTable(db *sql.DB, serverName gomatrixserverlib.ServerNam
// on success.
func (s *accountsStatements) InsertAccount(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
hash, appserviceID string, accountType api.AccountType,
) (*api.Account, error) {
createdTimeMS := time.Now().UnixNano() / 1000000
@@ -148,7 +147,7 @@ func (s *accountsStatements) InsertAccount(
}
func (s *accountsStatements) UpdatePassword(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
passwordHash string,
) (err error) {
_, err = s.updatePasswordStmt.ExecContext(ctx, passwordHash, localpart, serverName)
@@ -156,21 +155,21 @@ func (s *accountsStatements) UpdatePassword(
}
func (s *accountsStatements) DeactivateAccount(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
) (err error) {
_, err = s.deactivateAccountStmt.ExecContext(ctx, localpart, serverName)
return
}
func (s *accountsStatements) SelectPasswordHash(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
) (hash string, err error) {
err = s.selectPasswordHashStmt.QueryRowContext(ctx, localpart, serverName).Scan(&hash)
return
}
func (s *accountsStatements) SelectAccountByLocalpart(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
) (*api.Account, error) {
var appserviceIDPtr sql.NullString
var acc api.Account
@@ -192,7 +191,7 @@ func (s *accountsStatements) SelectAccountByLocalpart(
}
func (s *accountsStatements) SelectNewNumericLocalpart(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) (id int64, err error) {
stmt := s.selectNewNumericLocalpartStmt
if txn != nil {
diff --git a/userapi/storage/postgres/cross_signing_keys_table.go b/userapi/storage/postgres/cross_signing_keys_table.go
index b6fe6d72..138b629d 100644
--- a/userapi/storage/postgres/cross_signing_keys_table.go
+++ b/userapi/storage/postgres/cross_signing_keys_table.go
@@ -23,8 +23,8 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/storage/tables"
"github.com/matrix-org/dendrite/userapi/types"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
var crossSigningKeysSchema = `
@@ -76,7 +76,7 @@ func (s *crossSigningKeysStatements) SelectCrossSigningKeysForUser(
r = types.CrossSigningKeyMap{}
for rows.Next() {
var keyTypeInt int16
- var keyData gomatrixserverlib.Base64Bytes
+ var keyData spec.Base64Bytes
if err := rows.Scan(&keyTypeInt, &keyData); err != nil {
return nil, err
}
@@ -90,7 +90,7 @@ func (s *crossSigningKeysStatements) SelectCrossSigningKeysForUser(
}
func (s *crossSigningKeysStatements) UpsertCrossSigningKeysForUser(
- ctx context.Context, txn *sql.Tx, userID string, keyType fclient.CrossSigningKeyPurpose, keyData gomatrixserverlib.Base64Bytes,
+ ctx context.Context, txn *sql.Tx, userID string, keyType fclient.CrossSigningKeyPurpose, keyData spec.Base64Bytes,
) error {
keyTypeInt, ok := types.KeyTypePurposeToInt[keyType]
if !ok {
diff --git a/userapi/storage/postgres/cross_signing_sigs_table.go b/userapi/storage/postgres/cross_signing_sigs_table.go
index b0117145..61a38118 100644
--- a/userapi/storage/postgres/cross_signing_sigs_table.go
+++ b/userapi/storage/postgres/cross_signing_sigs_table.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/dendrite/userapi/storage/tables"
"github.com/matrix-org/dendrite/userapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
var crossSigningSigsSchema = `
@@ -96,12 +97,12 @@ func (s *crossSigningSigsStatements) SelectCrossSigningSigsForTarget(
for rows.Next() {
var userID string
var keyID gomatrixserverlib.KeyID
- var signature gomatrixserverlib.Base64Bytes
+ var signature spec.Base64Bytes
if err := rows.Scan(&userID, &keyID, &signature); err != nil {
return nil, err
}
if _, ok := r[userID]; !ok {
- r[userID] = map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ r[userID] = map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
r[userID][keyID] = signature
}
@@ -112,7 +113,7 @@ func (s *crossSigningSigsStatements) UpsertCrossSigningSigsForTarget(
ctx context.Context, txn *sql.Tx,
originUserID string, originKeyID gomatrixserverlib.KeyID,
targetUserID string, targetKeyID gomatrixserverlib.KeyID,
- signature gomatrixserverlib.Base64Bytes,
+ signature spec.Base64Bytes,
) error {
if _, err := sqlutil.TxStmt(txn, s.upsertCrossSigningSigsForTargetStmt).ExecContext(ctx, originUserID, originKeyID, targetUserID, targetKeyID, signature); err != nil {
return fmt.Errorf("s.upsertCrossSigningSigsForTargetStmt: %w", err)
diff --git a/userapi/storage/postgres/deltas/2022110411000000_server_names.go b/userapi/storage/postgres/deltas/2022110411000000_server_names.go
index 279e1e5f..e9d39d06 100644
--- a/userapi/storage/postgres/deltas/2022110411000000_server_names.go
+++ b/userapi/storage/postgres/deltas/2022110411000000_server_names.go
@@ -6,7 +6,7 @@ import (
"fmt"
"github.com/lib/pq"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
var serverNamesTables = []string{
@@ -42,7 +42,7 @@ var serverNamesDropIndex = []string{
// PostgreSQL doesn't expect the table name to be specified as a substituted
// argument in that way so it results in a syntax error in the query.
-func UpServerNames(ctx context.Context, tx *sql.Tx, serverName gomatrixserverlib.ServerName) error {
+func UpServerNames(ctx context.Context, tx *sql.Tx, serverName spec.ServerName) error {
for _, table := range serverNamesTables {
q := fmt.Sprintf(
"ALTER TABLE IF EXISTS %s ADD COLUMN IF NOT EXISTS server_name TEXT NOT NULL DEFAULT '';",
diff --git a/userapi/storage/postgres/deltas/2022110411000001_server_names.go b/userapi/storage/postgres/deltas/2022110411000001_server_names.go
index 04a47fa7..f83859df 100644
--- a/userapi/storage/postgres/deltas/2022110411000001_server_names.go
+++ b/userapi/storage/postgres/deltas/2022110411000001_server_names.go
@@ -6,7 +6,7 @@ import (
"fmt"
"github.com/lib/pq"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// I know what you're thinking: you're wondering "why doesn't this use $1
@@ -14,7 +14,7 @@ import (
// PostgreSQL doesn't expect the table name to be specified as a substituted
// argument in that way so it results in a syntax error in the query.
-func UpServerNamesPopulate(ctx context.Context, tx *sql.Tx, serverName gomatrixserverlib.ServerName) error {
+func UpServerNamesPopulate(ctx context.Context, tx *sql.Tx, serverName spec.ServerName) error {
for _, table := range serverNamesTables {
q := fmt.Sprintf(
"UPDATE %s SET server_name = %s WHERE server_name = '';",
diff --git a/userapi/storage/postgres/devices_table.go b/userapi/storage/postgres/devices_table.go
index 88f8839c..0335f826 100644
--- a/userapi/storage/postgres/devices_table.go
+++ b/userapi/storage/postgres/devices_table.go
@@ -27,7 +27,7 @@ import (
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage/postgres/deltas"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const devicesSchema = `
@@ -112,10 +112,10 @@ type devicesStatements struct {
deleteDeviceStmt *sql.Stmt
deleteDevicesByLocalpartStmt *sql.Stmt
deleteDevicesStmt *sql.Stmt
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
}
-func NewPostgresDevicesTable(db *sql.DB, serverName gomatrixserverlib.ServerName) (tables.DevicesTable, error) {
+func NewPostgresDevicesTable(db *sql.DB, serverName spec.ServerName) (tables.DevicesTable, error) {
s := &devicesStatements{
serverName: serverName,
}
@@ -151,7 +151,7 @@ func NewPostgresDevicesTable(db *sql.DB, serverName gomatrixserverlib.ServerName
// Returns the device on success.
func (s *devicesStatements) InsertDevice(
ctx context.Context, txn *sql.Tx, id string,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
accessToken string, displayName *string, ipAddr, userAgent string,
) (*api.Device, error) {
createdTimeMS := time.Now().UnixNano() / 1000000
@@ -176,7 +176,7 @@ func (s *devicesStatements) InsertDevice(
}
func (s *devicesStatements) InsertDeviceWithSessionID(ctx context.Context, txn *sql.Tx, id,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
accessToken string, displayName *string, ipAddr, userAgent string,
sessionID int64,
) (*api.Device, error) {
@@ -186,7 +186,7 @@ func (s *devicesStatements) InsertDeviceWithSessionID(ctx context.Context, txn *
// deleteDevice removes a single device by id and user localpart.
func (s *devicesStatements) DeleteDevice(
ctx context.Context, txn *sql.Tx, id string,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteDeviceStmt)
_, err := stmt.ExecContext(ctx, id, localpart, serverName)
@@ -197,7 +197,7 @@ func (s *devicesStatements) DeleteDevice(
// Returns an error if the execution failed.
func (s *devicesStatements) DeleteDevices(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
devices []string,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteDevicesStmt)
@@ -209,7 +209,7 @@ func (s *devicesStatements) DeleteDevices(
// given user localpart.
func (s *devicesStatements) DeleteDevicesByLocalpart(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
exceptDeviceID string,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteDevicesByLocalpartStmt)
@@ -219,7 +219,7 @@ func (s *devicesStatements) DeleteDevicesByLocalpart(
func (s *devicesStatements) UpdateDeviceName(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
deviceID string, displayName *string,
) error {
stmt := sqlutil.TxStmt(txn, s.updateDeviceNameStmt)
@@ -232,7 +232,7 @@ func (s *devicesStatements) SelectDeviceByToken(
) (*api.Device, error) {
var dev api.Device
var localpart string
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
stmt := s.selectDeviceByTokenStmt
err := stmt.QueryRowContext(ctx, accessToken).Scan(&dev.SessionID, &dev.ID, &localpart, &serverName)
if err == nil {
@@ -246,7 +246,7 @@ func (s *devicesStatements) SelectDeviceByToken(
// localpart and deviceID
func (s *devicesStatements) SelectDeviceByID(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
deviceID string,
) (*api.Device, error) {
var dev api.Device
@@ -279,7 +279,7 @@ func (s *devicesStatements) SelectDevicesByID(ctx context.Context, deviceIDs []s
var devices []api.Device
var dev api.Device
var localpart string
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
var lastseents sql.NullInt64
var displayName sql.NullString
for rows.Next() {
@@ -300,7 +300,7 @@ func (s *devicesStatements) SelectDevicesByID(ctx context.Context, deviceIDs []s
func (s *devicesStatements) SelectDevicesByLocalpart(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
exceptDeviceID string,
) ([]api.Device, error) {
devices := []api.Device{}
@@ -342,7 +342,7 @@ func (s *devicesStatements) SelectDevicesByLocalpart(
return devices, rows.Err()
}
-func (s *devicesStatements) UpdateDeviceLastSeen(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, deviceID, ipAddr, userAgent string) error {
+func (s *devicesStatements) UpdateDeviceLastSeen(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, deviceID, ipAddr, userAgent string) error {
lastSeenTs := time.Now().UnixNano() / 1000000
stmt := sqlutil.TxStmt(txn, s.updateDeviceLastSeenStmt)
_, err := stmt.ExecContext(ctx, lastSeenTs, ipAddr, userAgent, localpart, serverName, deviceID)
diff --git a/userapi/storage/postgres/notifications_table.go b/userapi/storage/postgres/notifications_table.go
index dc64b1e7..acb9e42b 100644
--- a/userapi/storage/postgres/notifications_table.go
+++ b/userapi/storage/postgres/notifications_table.go
@@ -20,13 +20,13 @@ import (
"encoding/json"
"time"
- "github.com/matrix-org/gomatrixserverlib"
log "github.com/sirupsen/logrus"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage/tables"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type notificationsStatements struct {
@@ -112,7 +112,7 @@ func (s *notificationsStatements) Clean(ctx context.Context, txn *sql.Tx) error
}
// Insert inserts a notification into the database.
-func (s *notificationsStatements) Insert(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, eventID string, pos uint64, highlight bool, n *api.Notification) error {
+func (s *notificationsStatements) Insert(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, eventID string, pos uint64, highlight bool, n *api.Notification) error {
roomID, tsMS := n.RoomID, n.TS
nn := *n
// Clears out fields that have their own columns to (1) shrink the
@@ -128,7 +128,7 @@ func (s *notificationsStatements) Insert(ctx context.Context, txn *sql.Tx, local
}
// DeleteUpTo deletes all previous notifications, up to and including the event.
-func (s *notificationsStatements) DeleteUpTo(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, roomID string, pos uint64) (affected bool, _ error) {
+func (s *notificationsStatements) DeleteUpTo(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, roomID string, pos uint64) (affected bool, _ error) {
res, err := sqlutil.TxStmt(txn, s.deleteUpToStmt).ExecContext(ctx, localpart, serverName, roomID, pos)
if err != nil {
return false, err
@@ -142,7 +142,7 @@ func (s *notificationsStatements) DeleteUpTo(ctx context.Context, txn *sql.Tx, l
}
// UpdateRead updates the "read" value for an event.
-func (s *notificationsStatements) UpdateRead(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, roomID string, pos uint64, v bool) (affected bool, _ error) {
+func (s *notificationsStatements) UpdateRead(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, roomID string, pos uint64, v bool) (affected bool, _ error) {
res, err := sqlutil.TxStmt(txn, s.updateReadStmt).ExecContext(ctx, v, localpart, serverName, roomID, pos)
if err != nil {
return false, err
@@ -155,7 +155,7 @@ func (s *notificationsStatements) UpdateRead(ctx context.Context, txn *sql.Tx, l
return nrows > 0, nil
}
-func (s *notificationsStatements) Select(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, fromID int64, limit int, filter tables.NotificationFilter) ([]*api.Notification, int64, error) {
+func (s *notificationsStatements) Select(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, fromID int64, limit int, filter tables.NotificationFilter) ([]*api.Notification, int64, error) {
rows, err := sqlutil.TxStmt(txn, s.selectStmt).QueryContext(ctx, localpart, serverName, fromID, uint32(filter), limit)
if err != nil {
@@ -168,7 +168,7 @@ func (s *notificationsStatements) Select(ctx context.Context, txn *sql.Tx, local
for rows.Next() {
var id int64
var roomID string
- var ts gomatrixserverlib.Timestamp
+ var ts spec.Timestamp
var read bool
var jsonStr string
err = rows.Scan(
@@ -198,12 +198,12 @@ func (s *notificationsStatements) Select(ctx context.Context, txn *sql.Tx, local
return notifs, maxID, rows.Err()
}
-func (s *notificationsStatements) SelectCount(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, filter tables.NotificationFilter) (count int64, err error) {
+func (s *notificationsStatements) SelectCount(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, filter tables.NotificationFilter) (count int64, err error) {
err = sqlutil.TxStmt(txn, s.selectCountStmt).QueryRowContext(ctx, localpart, serverName, uint32(filter)).Scan(&count)
return
}
-func (s *notificationsStatements) SelectRoomCounts(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, roomID string) (total int64, highlight int64, err error) {
+func (s *notificationsStatements) SelectRoomCounts(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, roomID string) (total int64, highlight int64, err error) {
err = sqlutil.TxStmt(txn, s.selectRoomCountsStmt).QueryRowContext(ctx, localpart, serverName, roomID).Scan(&total, &highlight)
return
}
diff --git a/userapi/storage/postgres/openid_table.go b/userapi/storage/postgres/openid_table.go
index 68d87f00..345877d1 100644
--- a/userapi/storage/postgres/openid_table.go
+++ b/userapi/storage/postgres/openid_table.go
@@ -8,7 +8,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
log "github.com/sirupsen/logrus"
)
@@ -34,10 +34,10 @@ const selectOpenIDTokenSQL = "" +
type openIDTokenStatements struct {
insertTokenStmt *sql.Stmt
selectTokenStmt *sql.Stmt
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
}
-func NewPostgresOpenIDTable(db *sql.DB, serverName gomatrixserverlib.ServerName) (tables.OpenIDTable, error) {
+func NewPostgresOpenIDTable(db *sql.DB, serverName spec.ServerName) (tables.OpenIDTable, error) {
s := &openIDTokenStatements{
serverName: serverName,
}
@@ -56,7 +56,7 @@ func NewPostgresOpenIDTable(db *sql.DB, serverName gomatrixserverlib.ServerName)
func (s *openIDTokenStatements) InsertOpenIDToken(
ctx context.Context,
txn *sql.Tx,
- token, localpart string, serverName gomatrixserverlib.ServerName,
+ token, localpart string, serverName spec.ServerName,
expiresAtMS int64,
) (err error) {
stmt := sqlutil.TxStmt(txn, s.insertTokenStmt)
@@ -72,7 +72,7 @@ func (s *openIDTokenStatements) SelectOpenIDTokenAtrributes(
) (*api.OpenIDTokenAttributes, error) {
var openIDTokenAttrs api.OpenIDTokenAttributes
var localpart string
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
err := s.selectTokenStmt.QueryRowContext(ctx, token).Scan(
&localpart, &serverName,
&openIDTokenAttrs.ExpiresAtMS,
diff --git a/userapi/storage/postgres/profile_table.go b/userapi/storage/postgres/profile_table.go
index df4e0db6..e404c32f 100644
--- a/userapi/storage/postgres/profile_table.go
+++ b/userapi/storage/postgres/profile_table.go
@@ -23,7 +23,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const profilesSchema = `
@@ -92,7 +92,7 @@ func NewPostgresProfilesTable(db *sql.DB, serverNoticesLocalpart string) (tables
func (s *profilesStatements) InsertProfile(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (err error) {
_, err = sqlutil.TxStmt(txn, s.insertProfileStmt).ExecContext(ctx, localpart, serverName, "", "")
return
@@ -100,7 +100,7 @@ func (s *profilesStatements) InsertProfile(
func (s *profilesStatements) SelectProfileByLocalpart(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (*authtypes.Profile, error) {
var profile authtypes.Profile
err := s.selectProfileByLocalpartStmt.QueryRowContext(ctx, localpart, serverName).Scan(
@@ -114,7 +114,7 @@ func (s *profilesStatements) SelectProfileByLocalpart(
func (s *profilesStatements) SetAvatarURL(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
avatarURL string,
) (*authtypes.Profile, bool, error) {
profile := &authtypes.Profile{
@@ -130,7 +130,7 @@ func (s *profilesStatements) SetAvatarURL(
func (s *profilesStatements) SetDisplayName(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
displayName string,
) (*authtypes.Profile, bool, error) {
profile := &authtypes.Profile{
diff --git a/userapi/storage/postgres/pusher_table.go b/userapi/storage/postgres/pusher_table.go
index 707b3bd2..2e88aa8e 100644
--- a/userapi/storage/postgres/pusher_table.go
+++ b/userapi/storage/postgres/pusher_table.go
@@ -25,7 +25,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// See https://matrix.org/docs/spec/client_server/r0.6.1#get-matrix-client-r0-pushers
@@ -98,7 +98,7 @@ type pushersStatements struct {
func (s *pushersStatements) InsertPusher(
ctx context.Context, txn *sql.Tx, session_id int64,
pushkey string, pushkeyTS int64, kind api.PusherKind, appid, appdisplayname, devicedisplayname, profiletag, lang, data,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) error {
_, err := sqlutil.TxStmt(txn, s.insertPusherStmt).ExecContext(ctx, localpart, serverName, session_id, pushkey, pushkeyTS, kind, appid, appdisplayname, devicedisplayname, profiletag, lang, data)
return err
@@ -106,7 +106,7 @@ func (s *pushersStatements) InsertPusher(
func (s *pushersStatements) SelectPushers(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) ([]api.Pusher, error) {
pushers := []api.Pusher{}
rows, err := sqlutil.TxStmt(txn, s.selectPushersStmt).QueryContext(ctx, localpart, serverName)
@@ -147,7 +147,7 @@ func (s *pushersStatements) SelectPushers(
// deletePusher removes a single pusher by pushkey and user localpart.
func (s *pushersStatements) DeletePusher(
ctx context.Context, txn *sql.Tx, appid, pushkey,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) error {
_, err := sqlutil.TxStmt(txn, s.deletePusherStmt).ExecContext(ctx, appid, pushkey, localpart, serverName)
return err
diff --git a/userapi/storage/postgres/stale_device_lists.go b/userapi/storage/postgres/stale_device_lists.go
index c823b58c..e2086dc9 100644
--- a/userapi/storage/postgres/stale_device_lists.go
+++ b/userapi/storage/postgres/stale_device_lists.go
@@ -22,6 +22,7 @@ import (
"github.com/lib/pq"
"github.com/matrix-org/dendrite/internal/sqlutil"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/userapi/storage/tables"
@@ -81,11 +82,11 @@ func (s *staleDeviceListsStatements) InsertStaleDeviceList(ctx context.Context,
if err != nil {
return err
}
- _, err = s.upsertStaleDeviceListStmt.ExecContext(ctx, userID, string(domain), isStale, gomatrixserverlib.AsTimestamp(time.Now()))
+ _, err = s.upsertStaleDeviceListStmt.ExecContext(ctx, userID, string(domain), isStale, spec.AsTimestamp(time.Now()))
return err
}
-func (s *staleDeviceListsStatements) SelectUserIDsWithStaleDeviceLists(ctx context.Context, domains []gomatrixserverlib.ServerName) ([]string, error) {
+func (s *staleDeviceListsStatements) SelectUserIDsWithStaleDeviceLists(ctx context.Context, domains []spec.ServerName) ([]string, error) {
// we only query for 1 domain or all domains so optimise for those use cases
if len(domains) == 0 {
rows, err := s.selectStaleDeviceListsStmt.QueryContext(ctx, true)
diff --git a/userapi/storage/postgres/stats_table.go b/userapi/storage/postgres/stats_table.go
index f62467fa..a7949e4b 100644
--- a/userapi/storage/postgres/stats_table.go
+++ b/userapi/storage/postgres/stats_table.go
@@ -20,7 +20,7 @@ import (
"time"
"github.com/lib/pq"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
"github.com/matrix-org/dendrite/internal"
@@ -191,7 +191,7 @@ ON CONFLICT (localpart, device_id, timestamp) DO NOTHING
const queryDBEngineVersion = "SHOW server_version;"
type statsStatements struct {
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
lastUpdate time.Time
countUsersLastSeenAfterStmt *sql.Stmt
countR30UsersStmt *sql.Stmt
@@ -204,7 +204,7 @@ type statsStatements struct {
selectDailyMessagesStmt *sql.Stmt
}
-func NewPostgresStatsTable(db *sql.DB, serverName gomatrixserverlib.ServerName) (tables.StatsTable, error) {
+func NewPostgresStatsTable(db *sql.DB, serverName spec.ServerName) (tables.StatsTable, error) {
s := &statsStatements{
serverName: serverName,
lastUpdate: time.Now(),
@@ -280,7 +280,7 @@ func (s *statsStatements) registeredUserByType(ctx context.Context, txn *sql.Tx)
int64(api.AccountTypeAppService),
},
api.AccountTypeGuest,
- gomatrixserverlib.AsTimestamp(registeredAfter),
+ spec.AsTimestamp(registeredAfter),
)
if err != nil {
return nil, err
@@ -304,7 +304,7 @@ func (s *statsStatements) dailyUsers(ctx context.Context, txn *sql.Tx) (result i
stmt := sqlutil.TxStmt(txn, s.countUsersLastSeenAfterStmt)
lastSeenAfter := time.Now().AddDate(0, 0, -1)
err = stmt.QueryRowContext(ctx,
- gomatrixserverlib.AsTimestamp(lastSeenAfter),
+ spec.AsTimestamp(lastSeenAfter),
).Scan(&result)
return
}
@@ -313,7 +313,7 @@ func (s *statsStatements) monthlyUsers(ctx context.Context, txn *sql.Tx) (result
stmt := sqlutil.TxStmt(txn, s.countUsersLastSeenAfterStmt)
lastSeenAfter := time.Now().AddDate(0, 0, -30)
err = stmt.QueryRowContext(ctx,
- gomatrixserverlib.AsTimestamp(lastSeenAfter),
+ spec.AsTimestamp(lastSeenAfter),
).Scan(&result)
return
}
@@ -330,7 +330,7 @@ func (s *statsStatements) r30Users(ctx context.Context, txn *sql.Tx) (map[string
diff := time.Hour * 24 * 30
rows, err := stmt.QueryContext(ctx,
- gomatrixserverlib.AsTimestamp(lastSeenAfter),
+ spec.AsTimestamp(lastSeenAfter),
diff.Milliseconds(),
)
if err != nil {
@@ -367,8 +367,8 @@ func (s *statsStatements) r30UsersV2(ctx context.Context, txn *sql.Tx) (map[stri
tomorrow := time.Now().Add(time.Hour * 24)
rows, err := stmt.QueryContext(ctx,
- gomatrixserverlib.AsTimestamp(sixtyDaysAgo),
- gomatrixserverlib.AsTimestamp(tomorrow),
+ spec.AsTimestamp(sixtyDaysAgo),
+ spec.AsTimestamp(tomorrow),
diff.Milliseconds(),
)
if err != nil {
@@ -464,9 +464,9 @@ func (s *statsStatements) UpdateUserDailyVisits(
startTime = startTime.AddDate(0, 0, -1)
}
_, err := stmt.ExecContext(ctx,
- gomatrixserverlib.AsTimestamp(startTime),
- gomatrixserverlib.AsTimestamp(lastUpdate),
- gomatrixserverlib.AsTimestamp(time.Now()),
+ spec.AsTimestamp(startTime),
+ spec.AsTimestamp(lastUpdate),
+ spec.AsTimestamp(time.Now()),
)
if err == nil {
s.lastUpdate = time.Now()
@@ -476,13 +476,13 @@ func (s *statsStatements) UpdateUserDailyVisits(
func (s *statsStatements) UpsertDailyStats(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName, stats types.MessageStats,
+ serverName spec.ServerName, stats types.MessageStats,
activeRooms, activeE2EERooms int64,
) error {
stmt := sqlutil.TxStmt(txn, s.upsertMessagesStmt)
timestamp := time.Now().Truncate(time.Hour * 24)
_, err := stmt.ExecContext(ctx,
- gomatrixserverlib.AsTimestamp(timestamp),
+ spec.AsTimestamp(timestamp),
serverName,
stats.Messages, stats.SentMessages, stats.MessagesE2EE, stats.SentMessagesE2EE,
activeRooms, activeE2EERooms,
@@ -492,12 +492,12 @@ func (s *statsStatements) UpsertDailyStats(
func (s *statsStatements) DailyRoomsMessages(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (msgStats types.MessageStats, activeRooms, activeE2EERooms int64, err error) {
stmt := sqlutil.TxStmt(txn, s.selectDailyMessagesStmt)
timestamp := time.Now().Truncate(time.Hour * 24)
- err = stmt.QueryRowContext(ctx, serverName, gomatrixserverlib.AsTimestamp(timestamp)).
+ err = stmt.QueryRowContext(ctx, serverName, spec.AsTimestamp(timestamp)).
Scan(&msgStats.Messages, &msgStats.SentMessages, &msgStats.MessagesE2EE, &msgStats.SentMessagesE2EE, &activeRooms, &activeE2EERooms)
if err != nil && err != sql.ErrNoRows {
return msgStats, 0, 0, err
diff --git a/userapi/storage/postgres/storage.go b/userapi/storage/postgres/storage.go
index 7bfae7b2..72e7c9cd 100644
--- a/userapi/storage/postgres/storage.go
+++ b/userapi/storage/postgres/storage.go
@@ -20,19 +20,18 @@ import (
"fmt"
"time"
- "github.com/matrix-org/gomatrixserverlib"
-
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/userapi/storage/postgres/deltas"
"github.com/matrix-org/dendrite/userapi/storage/shared"
+ "github.com/matrix-org/gomatrixserverlib/spec"
// Import the postgres database driver.
_ "github.com/lib/pq"
)
// NewDatabase creates a new accounts and profiles database
-func NewDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, serverName gomatrixserverlib.ServerName, bcryptCost int, openIDTokenLifetimeMS int64, loginTokenLifetime time.Duration, serverNoticesLocalpart string) (*shared.Database, error) {
+func NewDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, serverName spec.ServerName, bcryptCost int, openIDTokenLifetimeMS int64, loginTokenLifetime time.Duration, serverNoticesLocalpart string) (*shared.Database, error) {
db, writer, err := conMan.Connection(dbProperties)
if err != nil {
return nil, err
diff --git a/userapi/storage/postgres/threepid_table.go b/userapi/storage/postgres/threepid_table.go
index f41c4312..15b42a0a 100644
--- a/userapi/storage/postgres/threepid_table.go
+++ b/userapi/storage/postgres/threepid_table.go
@@ -20,7 +20,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
)
@@ -77,7 +77,7 @@ func NewPostgresThreePIDTable(db *sql.DB) (tables.ThreePIDTable, error) {
func (s *threepidStatements) SelectLocalpartForThreePID(
ctx context.Context, txn *sql.Tx, threepid string, medium string,
-) (localpart string, serverName gomatrixserverlib.ServerName, err error) {
+) (localpart string, serverName spec.ServerName, err error) {
stmt := sqlutil.TxStmt(txn, s.selectLocalpartForThreePIDStmt)
err = stmt.QueryRowContext(ctx, threepid, medium).Scan(&localpart, &serverName)
if err == sql.ErrNoRows {
@@ -88,7 +88,7 @@ func (s *threepidStatements) SelectLocalpartForThreePID(
func (s *threepidStatements) SelectThreePIDsForLocalpart(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (threepids []authtypes.ThreePID, err error) {
rows, err := s.selectThreePIDsForLocalpartStmt.QueryContext(ctx, localpart, serverName)
if err != nil {
@@ -113,7 +113,7 @@ func (s *threepidStatements) SelectThreePIDsForLocalpart(
func (s *threepidStatements) InsertThreePID(
ctx context.Context, txn *sql.Tx, threepid, medium,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (err error) {
stmt := sqlutil.TxStmt(txn, s.insertThreePIDStmt)
_, err = stmt.ExecContext(ctx, threepid, medium, localpart, serverName)
diff --git a/userapi/storage/shared/storage.go b/userapi/storage/shared/storage.go
index a03d022a..70570757 100644
--- a/userapi/storage/shared/storage.go
+++ b/userapi/storage/shared/storage.go
@@ -28,6 +28,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"golang.org/x/crypto/bcrypt"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
@@ -55,7 +56,7 @@ type Database struct {
Pushers tables.PusherTable
Stats tables.StatsTable
LoginTokenLifetime time.Duration
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
BcryptCost int
OpenIDTokenLifetimeMS int64
}
@@ -80,7 +81,7 @@ const (
// GetAccountByPassword returns the account associated with the given localpart and password.
// Returns sql.ErrNoRows if no account exists which matches the given localpart.
func (d *Database) GetAccountByPassword(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
plaintextPassword string,
) (*api.Account, error) {
hash, err := d.Accounts.SelectPasswordHash(ctx, localpart, serverName)
@@ -100,7 +101,7 @@ func (d *Database) GetAccountByPassword(
// Returns sql.ErrNoRows if no profile exists which matches the given localpart.
func (d *Database) GetProfileByLocalpart(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (*authtypes.Profile, error) {
return d.Profiles.SelectProfileByLocalpart(ctx, localpart, serverName)
}
@@ -109,7 +110,7 @@ func (d *Database) GetProfileByLocalpart(
// localpart. Returns an error if something went wrong with the SQL query
func (d *Database) SetAvatarURL(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
avatarURL string,
) (profile *authtypes.Profile, changed bool, err error) {
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -123,7 +124,7 @@ func (d *Database) SetAvatarURL(
// localpart. Returns an error if something went wrong with the SQL query
func (d *Database) SetDisplayName(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
displayName string,
) (profile *authtypes.Profile, changed bool, err error) {
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -135,7 +136,7 @@ func (d *Database) SetDisplayName(
// SetPassword sets the account password to the given hash.
func (d *Database) SetPassword(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
plaintextPassword string,
) error {
hash, err := d.hashPassword(plaintextPassword)
@@ -151,7 +152,7 @@ func (d *Database) SetPassword(
// for this account. If no password is supplied, the account will be a passwordless account. If the
// account already exists, it will return nil, ErrUserExists.
func (d *Database) CreateAccount(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
plaintextPassword, appserviceID string, accountType api.AccountType,
) (acc *api.Account, err error) {
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -176,7 +177,7 @@ func (d *Database) CreateAccount(
// been taken out by the caller (e.g. CreateAccount or CreateGuestAccount).
func (d *Database) createAccount(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
plaintextPassword, appserviceID string, accountType api.AccountType,
) (*api.Account, error) {
var err error
@@ -208,7 +209,7 @@ func (d *Database) createAccount(
func (d *Database) QueryPushRules(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (*pushrules.AccountRuleSets, error) {
data, err := d.AccountDatas.SelectAccountDataByType(ctx, localpart, serverName, "", "m.push_rules")
if err != nil {
@@ -247,7 +248,7 @@ func (d *Database) QueryPushRules(
// update the corresponding row with the new content
// Returns a SQL error if there was an issue with the insertion/update
func (d *Database) SaveAccountData(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
roomID, dataType string, content json.RawMessage,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -258,7 +259,7 @@ func (d *Database) SaveAccountData(
// GetAccountData returns account data related to a given localpart
// If no account data could be found, returns an empty arrays
// Returns an error if there was an issue with the retrieval
-func (d *Database) GetAccountData(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (
+func (d *Database) GetAccountData(ctx context.Context, localpart string, serverName spec.ServerName) (
global map[string]json.RawMessage,
rooms map[string]map[string]json.RawMessage,
err error,
@@ -271,7 +272,7 @@ func (d *Database) GetAccountData(ctx context.Context, localpart string, serverN
// If no account data could be found, returns nil
// Returns an error if there was an issue with the retrieval
func (d *Database) GetAccountDataByType(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
roomID, dataType string,
) (data json.RawMessage, err error) {
return d.AccountDatas.SelectAccountDataByType(
@@ -281,7 +282,7 @@ func (d *Database) GetAccountDataByType(
// GetNewNumericLocalpart generates and returns a new unused numeric localpart
func (d *Database) GetNewNumericLocalpart(
- ctx context.Context, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, serverName spec.ServerName,
) (int64, error) {
return d.Accounts.SelectNewNumericLocalpart(ctx, nil, serverName)
}
@@ -301,7 +302,7 @@ var Err3PIDInUse = errors.New("this third-party identifier is already in use")
// Returns an error if there was a problem talking to the database.
func (d *Database) SaveThreePIDAssociation(
ctx context.Context, threepid string,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
medium string,
) (err error) {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -339,7 +340,7 @@ func (d *Database) RemoveThreePIDAssociation(
// Returns an error if there was a problem talking to the database.
func (d *Database) GetLocalpartForThreePID(
ctx context.Context, threepid string, medium string,
-) (localpart string, serverName gomatrixserverlib.ServerName, err error) {
+) (localpart string, serverName spec.ServerName, err error) {
return d.ThreePIDs.SelectLocalpartForThreePID(ctx, nil, threepid, medium)
}
@@ -349,7 +350,7 @@ func (d *Database) GetLocalpartForThreePID(
// Returns an error if there was an issue talking to the database.
func (d *Database) GetThreePIDsForLocalpart(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (threepids []authtypes.ThreePID, err error) {
return d.ThreePIDs.SelectThreePIDsForLocalpart(ctx, localpart, serverName)
}
@@ -357,7 +358,7 @@ func (d *Database) GetThreePIDsForLocalpart(
// CheckAccountAvailability checks if the username/localpart is already present
// in the database.
// If the DB returns sql.ErrNoRows the Localpart isn't taken.
-func (d *Database) CheckAccountAvailability(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (bool, error) {
+func (d *Database) CheckAccountAvailability(ctx context.Context, localpart string, serverName spec.ServerName) (bool, error) {
_, err := d.Accounts.SelectAccountByLocalpart(ctx, localpart, serverName)
if err == sql.ErrNoRows {
return true, nil
@@ -368,7 +369,7 @@ func (d *Database) CheckAccountAvailability(ctx context.Context, localpart strin
// GetAccountByLocalpart returns the account associated with the given localpart.
// This function assumes the request is authenticated or the account data is used only internally.
// Returns sql.ErrNoRows if no account exists which matches the given localpart.
-func (d *Database) GetAccountByLocalpart(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+func (d *Database) GetAccountByLocalpart(ctx context.Context, localpart string, serverName spec.ServerName,
) (*api.Account, error) {
// try to get the account with lowercase localpart (majority)
acc, err := d.Accounts.SelectAccountByLocalpart(ctx, strings.ToLower(localpart), serverName)
@@ -386,7 +387,7 @@ func (d *Database) SearchProfiles(ctx context.Context, searchString string, limi
}
// DeactivateAccount deactivates the user's account, removing all ability for the user to login again.
-func (d *Database) DeactivateAccount(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (err error) {
+func (d *Database) DeactivateAccount(ctx context.Context, localpart string, serverName spec.ServerName) (err error) {
return d.Writer.Do(nil, nil, func(txn *sql.Tx) error {
return d.Accounts.DeactivateAccount(ctx, localpart, serverName)
})
@@ -571,7 +572,7 @@ func (d *Database) GetDeviceByAccessToken(
// Returns sql.ErrNoRows if no matching device was found.
func (d *Database) GetDeviceByID(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
deviceID string,
) (*api.Device, error) {
return d.Devices.SelectDeviceByID(ctx, localpart, serverName, deviceID)
@@ -580,7 +581,7 @@ func (d *Database) GetDeviceByID(
// GetDevicesByLocalpart returns the devices matching the given localpart.
func (d *Database) GetDevicesByLocalpart(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) ([]api.Device, error) {
return d.Devices.SelectDevicesByLocalpart(ctx, nil, localpart, serverName, "")
}
@@ -596,7 +597,7 @@ func (d *Database) GetDevicesByID(ctx context.Context, deviceIDs []string) ([]ap
// If no device ID is given one is generated.
// Returns the device on success.
func (d *Database) CreateDevice(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
deviceID *string, accessToken string, displayName *string, ipAddr, userAgent string,
) (dev *api.Device, returnErr error) {
if deviceID != nil {
@@ -675,7 +676,7 @@ func generateDeviceID() (string, error) {
// Returns SQL error if there are problems and nil on success.
func (d *Database) UpdateDevice(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
deviceID string, displayName *string,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -689,7 +690,7 @@ func (d *Database) UpdateDevice(
// If something went wrong during the deletion, it will return the SQL error.
func (d *Database) RemoveDevices(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
devices []string,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -705,7 +706,7 @@ func (d *Database) RemoveDevices(
// If something went wrong during the deletion, it will return the SQL error.
func (d *Database) RemoveAllDevices(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
exceptDeviceID string,
) (devices []api.Device, err error) {
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
@@ -722,7 +723,7 @@ func (d *Database) RemoveAllDevices(
}
// UpdateDeviceLastSeen updates a last seen timestamp and the ip address.
-func (d *Database) UpdateDeviceLastSeen(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, deviceID, ipAddr, userAgent string) error {
+func (d *Database) UpdateDeviceLastSeen(ctx context.Context, localpart string, serverName spec.ServerName, deviceID, ipAddr, userAgent string) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.Devices.UpdateDeviceLastSeen(ctx, txn, localpart, serverName, deviceID, ipAddr, userAgent)
})
@@ -772,13 +773,13 @@ func (d *Database) GetLoginTokenDataByToken(ctx context.Context, token string) (
return d.LoginTokens.SelectLoginToken(ctx, token)
}
-func (d *Database) InsertNotification(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, eventID string, pos uint64, tweaks map[string]interface{}, n *api.Notification) error {
+func (d *Database) InsertNotification(ctx context.Context, localpart string, serverName spec.ServerName, eventID string, pos uint64, tweaks map[string]interface{}, n *api.Notification) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.Notifications.Insert(ctx, txn, localpart, serverName, eventID, pos, pushrules.BoolTweakOr(tweaks, pushrules.HighlightTweak, false), n)
})
}
-func (d *Database) DeleteNotificationsUpTo(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, roomID string, pos uint64) (affected bool, err error) {
+func (d *Database) DeleteNotificationsUpTo(ctx context.Context, localpart string, serverName spec.ServerName, roomID string, pos uint64) (affected bool, err error) {
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
affected, err = d.Notifications.DeleteUpTo(ctx, txn, localpart, serverName, roomID, pos)
return err
@@ -786,7 +787,7 @@ func (d *Database) DeleteNotificationsUpTo(ctx context.Context, localpart string
return
}
-func (d *Database) SetNotificationsRead(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, roomID string, pos uint64, b bool) (affected bool, err error) {
+func (d *Database) SetNotificationsRead(ctx context.Context, localpart string, serverName spec.ServerName, roomID string, pos uint64, b bool) (affected bool, err error) {
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
affected, err = d.Notifications.UpdateRead(ctx, txn, localpart, serverName, roomID, pos, b)
return err
@@ -794,15 +795,15 @@ func (d *Database) SetNotificationsRead(ctx context.Context, localpart string, s
return
}
-func (d *Database) GetNotifications(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, fromID int64, limit int, filter tables.NotificationFilter) ([]*api.Notification, int64, error) {
+func (d *Database) GetNotifications(ctx context.Context, localpart string, serverName spec.ServerName, fromID int64, limit int, filter tables.NotificationFilter) ([]*api.Notification, int64, error) {
return d.Notifications.Select(ctx, nil, localpart, serverName, fromID, limit, filter)
}
-func (d *Database) GetNotificationCount(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, filter tables.NotificationFilter) (int64, error) {
+func (d *Database) GetNotificationCount(ctx context.Context, localpart string, serverName spec.ServerName, filter tables.NotificationFilter) (int64, error) {
return d.Notifications.SelectCount(ctx, nil, localpart, serverName, filter)
}
-func (d *Database) GetRoomNotificationCounts(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, roomID string) (total int64, highlight int64, _ error) {
+func (d *Database) GetRoomNotificationCounts(ctx context.Context, localpart string, serverName spec.ServerName, roomID string) (total int64, highlight int64, _ error) {
return d.Notifications.SelectRoomCounts(ctx, nil, localpart, serverName, roomID)
}
@@ -814,7 +815,7 @@ func (d *Database) DeleteOldNotifications(ctx context.Context) error {
func (d *Database) UpsertPusher(
ctx context.Context, p api.Pusher,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) error {
data, err := json.Marshal(p.Data)
if err != nil {
@@ -840,7 +841,7 @@ func (d *Database) UpsertPusher(
// GetPushers returns the pushers matching the given localpart.
func (d *Database) GetPushers(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
) ([]api.Pusher, error) {
return d.Pushers.SelectPushers(ctx, nil, localpart, serverName)
}
@@ -849,7 +850,7 @@ func (d *Database) GetPushers(
// Invoked when `append` is true and `kind` is null in
// https://matrix.org/docs/spec/client_server/r0.6.1#post-matrix-client-r0-pushers-set
func (d *Database) RemovePusher(
- ctx context.Context, appid, pushkey, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, appid, pushkey, localpart string, serverName spec.ServerName,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
err := d.Pushers.DeletePusher(ctx, txn, appid, pushkey, localpart, serverName)
@@ -876,14 +877,14 @@ func (d *Database) UserStatistics(ctx context.Context) (*types.UserStatistics, *
return d.Stats.UserStatistics(ctx, nil)
}
-func (d *Database) UpsertDailyRoomsMessages(ctx context.Context, serverName gomatrixserverlib.ServerName, stats types.MessageStats, activeRooms, activeE2EERooms int64) error {
+func (d *Database) UpsertDailyRoomsMessages(ctx context.Context, serverName spec.ServerName, stats types.MessageStats, activeRooms, activeE2EERooms int64) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
return d.Stats.UpsertDailyStats(ctx, txn, serverName, stats, activeRooms, activeE2EERooms)
})
}
func (d *Database) DailyRoomsMessages(
- ctx context.Context, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, serverName spec.ServerName,
) (stats types.MessageStats, activeRooms, activeE2EERooms int64, err error) {
return d.Stats.DailyRoomsMessages(ctx, nil, serverName)
}
@@ -996,7 +997,7 @@ func (d *KeyDatabase) KeyChanges(ctx context.Context, fromOffset, toOffset int64
// StaleDeviceLists returns a list of user IDs ending with the domains provided who have stale device lists.
// If no domains are given, all user IDs with stale device lists are returned.
-func (d *KeyDatabase) StaleDeviceLists(ctx context.Context, domains []gomatrixserverlib.ServerName) ([]string, error) {
+func (d *KeyDatabase) StaleDeviceLists(ctx context.Context, domains []spec.ServerName) ([]string, error) {
return d.StaleDeviceListsTable.SelectUserIDsWithStaleDeviceLists(ctx, domains)
}
@@ -1038,7 +1039,7 @@ func (d *KeyDatabase) CrossSigningKeysForUser(ctx context.Context, userID string
result := fclient.CrossSigningKey{
UserID: userID,
Usage: []fclient.CrossSigningKeyPurpose{purpose},
- Keys: map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{
+ Keys: map[gomatrixserverlib.KeyID]spec.Base64Bytes{
keyID: key,
},
}
@@ -1051,10 +1052,10 @@ func (d *KeyDatabase) CrossSigningKeysForUser(ctx context.Context, userID string
continue
}
if result.Signatures == nil {
- result.Signatures = map[string]map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ result.Signatures = map[string]map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
if _, ok := result.Signatures[sigUserID]; !ok {
- result.Signatures[sigUserID] = map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ result.Signatures[sigUserID] = map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
for sigKeyID, sigBytes := range forSigUserID {
result.Signatures[sigUserID][sigKeyID] = sigBytes
@@ -1092,7 +1093,7 @@ func (d *KeyDatabase) StoreCrossSigningSigsForTarget(
ctx context.Context,
originUserID string, originKeyID gomatrixserverlib.KeyID,
targetUserID string, targetKeyID gomatrixserverlib.KeyID,
- signature gomatrixserverlib.Base64Bytes,
+ signature spec.Base64Bytes,
) error {
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
if err := d.CrossSigningSigsTable.UpsertCrossSigningSigsForTarget(ctx, nil, originUserID, originKeyID, targetUserID, targetKeyID, signature); err != nil {
diff --git a/userapi/storage/sqlite3/account_data_table.go b/userapi/storage/sqlite3/account_data_table.go
index 2fbdc573..3a6367c4 100644
--- a/userapi/storage/sqlite3/account_data_table.go
+++ b/userapi/storage/sqlite3/account_data_table.go
@@ -21,7 +21,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const accountDataSchema = `
@@ -76,7 +76,7 @@ func NewSQLiteAccountDataTable(db *sql.DB) (tables.AccountDataTable, error) {
func (s *accountDataStatements) InsertAccountData(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
roomID, dataType string, content json.RawMessage,
) error {
_, err := sqlutil.TxStmt(txn, s.insertAccountDataStmt).ExecContext(ctx, localpart, serverName, roomID, dataType, content)
@@ -85,7 +85,7 @@ func (s *accountDataStatements) InsertAccountData(
func (s *accountDataStatements) SelectAccountData(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (
/* global */ map[string]json.RawMessage,
/* rooms */ map[string]map[string]json.RawMessage,
@@ -123,7 +123,7 @@ func (s *accountDataStatements) SelectAccountData(
func (s *accountDataStatements) SelectAccountDataByType(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
roomID, dataType string,
) (data json.RawMessage, err error) {
var bytes []byte
diff --git a/userapi/storage/sqlite3/accounts_table.go b/userapi/storage/sqlite3/accounts_table.go
index f4ebe215..d01915a7 100644
--- a/userapi/storage/sqlite3/accounts_table.go
+++ b/userapi/storage/sqlite3/accounts_table.go
@@ -19,13 +19,12 @@ import (
"database/sql"
"time"
- "github.com/matrix-org/gomatrixserverlib"
-
"github.com/matrix-org/dendrite/clientapi/userutil"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage/sqlite3/deltas"
"github.com/matrix-org/dendrite/userapi/storage/tables"
+ "github.com/matrix-org/gomatrixserverlib/spec"
log "github.com/sirupsen/logrus"
)
@@ -79,10 +78,10 @@ type accountsStatements struct {
selectAccountByLocalpartStmt *sql.Stmt
selectPasswordHashStmt *sql.Stmt
selectNewNumericLocalpartStmt *sql.Stmt
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
}
-func NewSQLiteAccountsTable(db *sql.DB, serverName gomatrixserverlib.ServerName) (tables.AccountsTable, error) {
+func NewSQLiteAccountsTable(db *sql.DB, serverName spec.ServerName) (tables.AccountsTable, error) {
s := &accountsStatements{
db: db,
serverName: serverName,
@@ -122,7 +121,7 @@ func NewSQLiteAccountsTable(db *sql.DB, serverName gomatrixserverlib.ServerName)
// this account will be passwordless. Returns an error if this account already exists. Returns the account
// on success.
func (s *accountsStatements) InsertAccount(
- ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName,
hash, appserviceID string, accountType api.AccountType,
) (*api.Account, error) {
createdTimeMS := time.Now().UnixNano() / 1000000
@@ -148,7 +147,7 @@ func (s *accountsStatements) InsertAccount(
}
func (s *accountsStatements) UpdatePassword(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
passwordHash string,
) (err error) {
_, err = s.updatePasswordStmt.ExecContext(ctx, passwordHash, localpart, serverName)
@@ -156,21 +155,21 @@ func (s *accountsStatements) UpdatePassword(
}
func (s *accountsStatements) DeactivateAccount(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
) (err error) {
_, err = s.deactivateAccountStmt.ExecContext(ctx, localpart, serverName)
return
}
func (s *accountsStatements) SelectPasswordHash(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
) (hash string, err error) {
err = s.selectPasswordHashStmt.QueryRowContext(ctx, localpart, serverName).Scan(&hash)
return
}
func (s *accountsStatements) SelectAccountByLocalpart(
- ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, localpart string, serverName spec.ServerName,
) (*api.Account, error) {
var appserviceIDPtr sql.NullString
var acc api.Account
@@ -192,7 +191,7 @@ func (s *accountsStatements) SelectAccountByLocalpart(
}
func (s *accountsStatements) SelectNewNumericLocalpart(
- ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName,
+ ctx context.Context, txn *sql.Tx, serverName spec.ServerName,
) (id int64, err error) {
stmt := s.selectNewNumericLocalpartStmt
if txn != nil {
diff --git a/userapi/storage/sqlite3/cross_signing_keys_table.go b/userapi/storage/sqlite3/cross_signing_keys_table.go
index e1c45c41..5c2ce703 100644
--- a/userapi/storage/sqlite3/cross_signing_keys_table.go
+++ b/userapi/storage/sqlite3/cross_signing_keys_table.go
@@ -23,8 +23,8 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/storage/tables"
"github.com/matrix-org/dendrite/userapi/types"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
var crossSigningKeysSchema = `
@@ -75,7 +75,7 @@ func (s *crossSigningKeysStatements) SelectCrossSigningKeysForUser(
r = types.CrossSigningKeyMap{}
for rows.Next() {
var keyTypeInt int16
- var keyData gomatrixserverlib.Base64Bytes
+ var keyData spec.Base64Bytes
if err := rows.Scan(&keyTypeInt, &keyData); err != nil {
return nil, err
}
@@ -89,7 +89,7 @@ func (s *crossSigningKeysStatements) SelectCrossSigningKeysForUser(
}
func (s *crossSigningKeysStatements) UpsertCrossSigningKeysForUser(
- ctx context.Context, txn *sql.Tx, userID string, keyType fclient.CrossSigningKeyPurpose, keyData gomatrixserverlib.Base64Bytes,
+ ctx context.Context, txn *sql.Tx, userID string, keyType fclient.CrossSigningKeyPurpose, keyData spec.Base64Bytes,
) error {
keyTypeInt, ok := types.KeyTypePurposeToInt[keyType]
if !ok {
diff --git a/userapi/storage/sqlite3/cross_signing_sigs_table.go b/userapi/storage/sqlite3/cross_signing_sigs_table.go
index 2be00c9c..65726411 100644
--- a/userapi/storage/sqlite3/cross_signing_sigs_table.go
+++ b/userapi/storage/sqlite3/cross_signing_sigs_table.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/dendrite/userapi/storage/tables"
"github.com/matrix-org/dendrite/userapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
var crossSigningSigsSchema = `
@@ -94,12 +95,12 @@ func (s *crossSigningSigsStatements) SelectCrossSigningSigsForTarget(
for rows.Next() {
var userID string
var keyID gomatrixserverlib.KeyID
- var signature gomatrixserverlib.Base64Bytes
+ var signature spec.Base64Bytes
if err := rows.Scan(&userID, &keyID, &signature); err != nil {
return nil, err
}
if _, ok := r[userID]; !ok {
- r[userID] = map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes{}
+ r[userID] = map[gomatrixserverlib.KeyID]spec.Base64Bytes{}
}
r[userID][keyID] = signature
}
@@ -110,7 +111,7 @@ func (s *crossSigningSigsStatements) UpsertCrossSigningSigsForTarget(
ctx context.Context, txn *sql.Tx,
originUserID string, originKeyID gomatrixserverlib.KeyID,
targetUserID string, targetKeyID gomatrixserverlib.KeyID,
- signature gomatrixserverlib.Base64Bytes,
+ signature spec.Base64Bytes,
) error {
if _, err := sqlutil.TxStmt(txn, s.upsertCrossSigningSigsForTargetStmt).ExecContext(ctx, originUserID, originKeyID, targetUserID, targetKeyID, signature); err != nil {
return fmt.Errorf("s.upsertCrossSigningSigsForTargetStmt: %w", err)
diff --git a/userapi/storage/sqlite3/deltas/2022110411000000_server_names.go b/userapi/storage/sqlite3/deltas/2022110411000000_server_names.go
index c11ea684..76f39a90 100644
--- a/userapi/storage/sqlite3/deltas/2022110411000000_server_names.go
+++ b/userapi/storage/sqlite3/deltas/2022110411000000_server_names.go
@@ -7,7 +7,7 @@ import (
"strings"
"github.com/lib/pq"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
)
@@ -42,7 +42,7 @@ var serverNamesDropIndex = []string{
// PostgreSQL doesn't expect the table name to be specified as a substituted
// argument in that way so it results in a syntax error in the query.
-func UpServerNames(ctx context.Context, tx *sql.Tx, serverName gomatrixserverlib.ServerName) error {
+func UpServerNames(ctx context.Context, tx *sql.Tx, serverName spec.ServerName) error {
for _, table := range serverNamesTables {
q := fmt.Sprintf(
"SELECT COUNT(name) FROM sqlite_schema WHERE type='table' AND name=%s;",
diff --git a/userapi/storage/sqlite3/deltas/2022110411000001_server_names.go b/userapi/storage/sqlite3/deltas/2022110411000001_server_names.go
index 04a47fa7..f83859df 100644
--- a/userapi/storage/sqlite3/deltas/2022110411000001_server_names.go
+++ b/userapi/storage/sqlite3/deltas/2022110411000001_server_names.go
@@ -6,7 +6,7 @@ import (
"fmt"
"github.com/lib/pq"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// I know what you're thinking: you're wondering "why doesn't this use $1
@@ -14,7 +14,7 @@ import (
// PostgreSQL doesn't expect the table name to be specified as a substituted
// argument in that way so it results in a syntax error in the query.
-func UpServerNamesPopulate(ctx context.Context, tx *sql.Tx, serverName gomatrixserverlib.ServerName) error {
+func UpServerNamesPopulate(ctx context.Context, tx *sql.Tx, serverName spec.ServerName) error {
for _, table := range serverNamesTables {
q := fmt.Sprintf(
"UPDATE %s SET server_name = %s WHERE server_name = '';",
diff --git a/userapi/storage/sqlite3/devices_table.go b/userapi/storage/sqlite3/devices_table.go
index 65e17527..23e82311 100644
--- a/userapi/storage/sqlite3/devices_table.go
+++ b/userapi/storage/sqlite3/devices_table.go
@@ -25,9 +25,9 @@ import (
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage/sqlite3/deltas"
"github.com/matrix-org/dendrite/userapi/storage/tables"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/clientapi/userutil"
- "github.com/matrix-org/gomatrixserverlib"
)
const devicesSchema = `
@@ -97,10 +97,10 @@ type devicesStatements struct {
updateDeviceLastSeenStmt *sql.Stmt
deleteDeviceStmt *sql.Stmt
deleteDevicesByLocalpartStmt *sql.Stmt
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
}
-func NewSQLiteDevicesTable(db *sql.DB, serverName gomatrixserverlib.ServerName) (tables.DevicesTable, error) {
+func NewSQLiteDevicesTable(db *sql.DB, serverName spec.ServerName) (tables.DevicesTable, error) {
s := &devicesStatements{
db: db,
serverName: serverName,
@@ -137,7 +137,7 @@ func NewSQLiteDevicesTable(db *sql.DB, serverName gomatrixserverlib.ServerName)
// Returns the device on success.
func (s *devicesStatements) InsertDevice(
ctx context.Context, txn *sql.Tx, id string,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
accessToken string, displayName *string, ipAddr, userAgent string,
) (*api.Device, error) {
createdTimeMS := time.Now().UnixNano() / 1000000
@@ -167,7 +167,7 @@ func (s *devicesStatements) InsertDevice(
}
func (s *devicesStatements) InsertDeviceWithSessionID(ctx context.Context, txn *sql.Tx, id,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
accessToken string, displayName *string, ipAddr, userAgent string,
sessionID int64,
) (*api.Device, error) {
@@ -193,7 +193,7 @@ func (s *devicesStatements) InsertDeviceWithSessionID(ctx context.Context, txn *
func (s *devicesStatements) DeleteDevice(
ctx context.Context, txn *sql.Tx, id string,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteDeviceStmt)
_, err := stmt.ExecContext(ctx, id, localpart, serverName)
@@ -202,7 +202,7 @@ func (s *devicesStatements) DeleteDevice(
func (s *devicesStatements) DeleteDevices(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
devices []string,
) error {
orig := strings.Replace(deleteDevicesSQL, "($3)", sqlutil.QueryVariadicOffset(len(devices), 2), 1)
@@ -224,7 +224,7 @@ func (s *devicesStatements) DeleteDevices(
func (s *devicesStatements) DeleteDevicesByLocalpart(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
exceptDeviceID string,
) error {
stmt := sqlutil.TxStmt(txn, s.deleteDevicesByLocalpartStmt)
@@ -234,7 +234,7 @@ func (s *devicesStatements) DeleteDevicesByLocalpart(
func (s *devicesStatements) UpdateDeviceName(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
deviceID string, displayName *string,
) error {
stmt := sqlutil.TxStmt(txn, s.updateDeviceNameStmt)
@@ -247,7 +247,7 @@ func (s *devicesStatements) SelectDeviceByToken(
) (*api.Device, error) {
var dev api.Device
var localpart string
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
stmt := s.selectDeviceByTokenStmt
err := stmt.QueryRowContext(ctx, accessToken).Scan(&dev.SessionID, &dev.ID, &localpart, &serverName)
if err == nil {
@@ -261,7 +261,7 @@ func (s *devicesStatements) SelectDeviceByToken(
// localpart and deviceID
func (s *devicesStatements) SelectDeviceByID(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
deviceID string,
) (*api.Device, error) {
var dev api.Device
@@ -287,7 +287,7 @@ func (s *devicesStatements) SelectDeviceByID(
func (s *devicesStatements) SelectDevicesByLocalpart(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
exceptDeviceID string,
) ([]api.Device, error) {
devices := []api.Device{}
@@ -343,7 +343,7 @@ func (s *devicesStatements) SelectDevicesByID(ctx context.Context, deviceIDs []s
var devices []api.Device
var dev api.Device
var localpart string
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
var displayName sql.NullString
var lastseents sql.NullInt64
for rows.Next() {
@@ -362,7 +362,7 @@ func (s *devicesStatements) SelectDevicesByID(ctx context.Context, deviceIDs []s
return devices, rows.Err()
}
-func (s *devicesStatements) UpdateDeviceLastSeen(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, deviceID, ipAddr, userAgent string) error {
+func (s *devicesStatements) UpdateDeviceLastSeen(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, deviceID, ipAddr, userAgent string) error {
lastSeenTs := time.Now().UnixNano() / 1000000
stmt := sqlutil.TxStmt(txn, s.updateDeviceLastSeenStmt)
_, err := stmt.ExecContext(ctx, lastSeenTs, ipAddr, userAgent, localpart, serverName, deviceID)
diff --git a/userapi/storage/sqlite3/notifications_table.go b/userapi/storage/sqlite3/notifications_table.go
index ef39d027..94d6c729 100644
--- a/userapi/storage/sqlite3/notifications_table.go
+++ b/userapi/storage/sqlite3/notifications_table.go
@@ -20,13 +20,13 @@ import (
"encoding/json"
"time"
- "github.com/matrix-org/gomatrixserverlib"
log "github.com/sirupsen/logrus"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage/tables"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type notificationsStatements struct {
@@ -112,7 +112,7 @@ func (s *notificationsStatements) Clean(ctx context.Context, txn *sql.Tx) error
}
// Insert inserts a notification into the database.
-func (s *notificationsStatements) Insert(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, eventID string, pos uint64, highlight bool, n *api.Notification) error {
+func (s *notificationsStatements) Insert(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, eventID string, pos uint64, highlight bool, n *api.Notification) error {
roomID, tsMS := n.RoomID, n.TS
nn := *n
// Clears out fields that have their own columns to (1) shrink the
@@ -128,7 +128,7 @@ func (s *notificationsStatements) Insert(ctx context.Context, txn *sql.Tx, local
}
// DeleteUpTo deletes all previous notifications, up to and including the event.
-func (s *notificationsStatements) DeleteUpTo(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, roomID string, pos uint64) (affected bool, _ error) {
+func (s *notificationsStatements) DeleteUpTo(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, roomID string, pos uint64) (affected bool, _ error) {
res, err := sqlutil.TxStmt(txn, s.deleteUpToStmt).ExecContext(ctx, localpart, serverName, roomID, pos)
if err != nil {
return false, err
@@ -142,7 +142,7 @@ func (s *notificationsStatements) DeleteUpTo(ctx context.Context, txn *sql.Tx, l
}
// UpdateRead updates the "read" value for an event.
-func (s *notificationsStatements) UpdateRead(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, roomID string, pos uint64, v bool) (affected bool, _ error) {
+func (s *notificationsStatements) UpdateRead(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, roomID string, pos uint64, v bool) (affected bool, _ error) {
res, err := sqlutil.TxStmt(txn, s.updateReadStmt).ExecContext(ctx, v, localpart, serverName, roomID, pos)
if err != nil {
return false, err
@@ -155,7 +155,7 @@ func (s *notificationsStatements) UpdateRead(ctx context.Context, txn *sql.Tx, l
return nrows > 0, nil
}
-func (s *notificationsStatements) Select(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, fromID int64, limit int, filter tables.NotificationFilter) ([]*api.Notification, int64, error) {
+func (s *notificationsStatements) Select(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, fromID int64, limit int, filter tables.NotificationFilter) ([]*api.Notification, int64, error) {
rows, err := sqlutil.TxStmt(txn, s.selectStmt).QueryContext(ctx, localpart, serverName, fromID, uint32(filter), limit)
if err != nil {
@@ -168,7 +168,7 @@ func (s *notificationsStatements) Select(ctx context.Context, txn *sql.Tx, local
for rows.Next() {
var id int64
var roomID string
- var ts gomatrixserverlib.Timestamp
+ var ts spec.Timestamp
var read bool
var jsonStr string
err = rows.Scan(
@@ -198,12 +198,12 @@ func (s *notificationsStatements) Select(ctx context.Context, txn *sql.Tx, local
return notifs, maxID, rows.Err()
}
-func (s *notificationsStatements) SelectCount(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, filter tables.NotificationFilter) (count int64, err error) {
+func (s *notificationsStatements) SelectCount(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, filter tables.NotificationFilter) (count int64, err error) {
err = sqlutil.TxStmt(txn, s.selectCountStmt).QueryRowContext(ctx, localpart, serverName, uint32(filter)).Scan(&count)
return
}
-func (s *notificationsStatements) SelectRoomCounts(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, roomID string) (total int64, highlight int64, err error) {
+func (s *notificationsStatements) SelectRoomCounts(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, roomID string) (total int64, highlight int64, err error) {
err = sqlutil.TxStmt(txn, s.selectRoomCountsStmt).QueryRowContext(ctx, localpart, serverName, roomID).Scan(&total, &highlight)
return
}
diff --git a/userapi/storage/sqlite3/openid_table.go b/userapi/storage/sqlite3/openid_table.go
index f0642974..def0074d 100644
--- a/userapi/storage/sqlite3/openid_table.go
+++ b/userapi/storage/sqlite3/openid_table.go
@@ -8,7 +8,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
log "github.com/sirupsen/logrus"
)
@@ -35,10 +35,10 @@ type openIDTokenStatements struct {
db *sql.DB
insertTokenStmt *sql.Stmt
selectTokenStmt *sql.Stmt
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
}
-func NewSQLiteOpenIDTable(db *sql.DB, serverName gomatrixserverlib.ServerName) (tables.OpenIDTable, error) {
+func NewSQLiteOpenIDTable(db *sql.DB, serverName spec.ServerName) (tables.OpenIDTable, error) {
s := &openIDTokenStatements{
db: db,
serverName: serverName,
@@ -58,7 +58,7 @@ func NewSQLiteOpenIDTable(db *sql.DB, serverName gomatrixserverlib.ServerName) (
func (s *openIDTokenStatements) InsertOpenIDToken(
ctx context.Context,
txn *sql.Tx,
- token, localpart string, serverName gomatrixserverlib.ServerName,
+ token, localpart string, serverName spec.ServerName,
expiresAtMS int64,
) (err error) {
stmt := sqlutil.TxStmt(txn, s.insertTokenStmt)
@@ -74,7 +74,7 @@ func (s *openIDTokenStatements) SelectOpenIDTokenAtrributes(
) (*api.OpenIDTokenAttributes, error) {
var openIDTokenAttrs api.OpenIDTokenAttributes
var localpart string
- var serverName gomatrixserverlib.ServerName
+ var serverName spec.ServerName
err := s.selectTokenStmt.QueryRowContext(ctx, token).Scan(
&localpart, &serverName,
&openIDTokenAttrs.ExpiresAtMS,
diff --git a/userapi/storage/sqlite3/profile_table.go b/userapi/storage/sqlite3/profile_table.go
index 867026d7..a20d7e84 100644
--- a/userapi/storage/sqlite3/profile_table.go
+++ b/userapi/storage/sqlite3/profile_table.go
@@ -23,7 +23,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const profilesSchema = `
@@ -88,7 +88,7 @@ func NewSQLiteProfilesTable(db *sql.DB, serverNoticesLocalpart string) (tables.P
func (s *profilesStatements) InsertProfile(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) error {
_, err := sqlutil.TxStmt(txn, s.insertProfileStmt).ExecContext(ctx, localpart, serverName, "", "")
return err
@@ -96,7 +96,7 @@ func (s *profilesStatements) InsertProfile(
func (s *profilesStatements) SelectProfileByLocalpart(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (*authtypes.Profile, error) {
var profile authtypes.Profile
err := s.selectProfileByLocalpartStmt.QueryRowContext(ctx, localpart, serverName).Scan(
@@ -110,7 +110,7 @@ func (s *profilesStatements) SelectProfileByLocalpart(
func (s *profilesStatements) SetAvatarURL(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
avatarURL string,
) (*authtypes.Profile, bool, error) {
profile := &authtypes.Profile{
@@ -132,7 +132,7 @@ func (s *profilesStatements) SetAvatarURL(
func (s *profilesStatements) SetDisplayName(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
displayName string,
) (*authtypes.Profile, bool, error) {
profile := &authtypes.Profile{
diff --git a/userapi/storage/sqlite3/pusher_table.go b/userapi/storage/sqlite3/pusher_table.go
index c9d451dc..e09f9c78 100644
--- a/userapi/storage/sqlite3/pusher_table.go
+++ b/userapi/storage/sqlite3/pusher_table.go
@@ -25,7 +25,7 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// See https://matrix.org/docs/spec/client_server/r0.6.1#get-matrix-client-r0-pushers
@@ -98,7 +98,7 @@ type pushersStatements struct {
func (s *pushersStatements) InsertPusher(
ctx context.Context, txn *sql.Tx, session_id int64,
pushkey string, pushkeyTS int64, kind api.PusherKind, appid, appdisplayname, devicedisplayname, profiletag, lang, data,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) error {
_, err := sqlutil.TxStmt(txn, s.insertPusherStmt).ExecContext(ctx, localpart, serverName, session_id, pushkey, pushkeyTS, kind, appid, appdisplayname, devicedisplayname, profiletag, lang, data)
return err
@@ -106,7 +106,7 @@ func (s *pushersStatements) InsertPusher(
func (s *pushersStatements) SelectPushers(
ctx context.Context, txn *sql.Tx,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) ([]api.Pusher, error) {
pushers := []api.Pusher{}
rows, err := s.selectPushersStmt.QueryContext(ctx, localpart, serverName)
@@ -147,7 +147,7 @@ func (s *pushersStatements) SelectPushers(
// deletePusher removes a single pusher by pushkey and user localpart.
func (s *pushersStatements) DeletePusher(
ctx context.Context, txn *sql.Tx, appid, pushkey,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) error {
_, err := sqlutil.TxStmt(txn, s.deletePusherStmt).ExecContext(ctx, appid, pushkey, localpart, serverName)
return err
diff --git a/userapi/storage/sqlite3/stale_device_lists.go b/userapi/storage/sqlite3/stale_device_lists.go
index f078fc99..5302899f 100644
--- a/userapi/storage/sqlite3/stale_device_lists.go
+++ b/userapi/storage/sqlite3/stale_device_lists.go
@@ -21,6 +21,7 @@ import (
"time"
"github.com/matrix-org/dendrite/internal/sqlutil"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/userapi/storage/tables"
@@ -83,11 +84,11 @@ func (s *staleDeviceListsStatements) InsertStaleDeviceList(ctx context.Context,
if err != nil {
return err
}
- _, err = s.upsertStaleDeviceListStmt.ExecContext(ctx, userID, string(domain), isStale, gomatrixserverlib.AsTimestamp(time.Now()))
+ _, err = s.upsertStaleDeviceListStmt.ExecContext(ctx, userID, string(domain), isStale, spec.AsTimestamp(time.Now()))
return err
}
-func (s *staleDeviceListsStatements) SelectUserIDsWithStaleDeviceLists(ctx context.Context, domains []gomatrixserverlib.ServerName) ([]string, error) {
+func (s *staleDeviceListsStatements) SelectUserIDsWithStaleDeviceLists(ctx context.Context, domains []spec.ServerName) ([]string, error) {
// we only query for 1 domain or all domains so optimise for those use cases
if len(domains) == 0 {
rows, err := s.selectStaleDeviceListsStmt.QueryContext(ctx, true)
diff --git a/userapi/storage/sqlite3/stats_table.go b/userapi/storage/sqlite3/stats_table.go
index 72b3ba49..71d80d4d 100644
--- a/userapi/storage/sqlite3/stats_table.go
+++ b/userapi/storage/sqlite3/stats_table.go
@@ -20,7 +20,7 @@ import (
"strings"
"time"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
"github.com/matrix-org/dendrite/internal"
@@ -195,7 +195,7 @@ ON CONFLICT (localpart, device_id, timestamp) DO NOTHING
const queryDBEngineVersion = "select sqlite_version();"
type statsStatements struct {
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
db *sql.DB
lastUpdate time.Time
countUsersLastSeenAfterStmt *sql.Stmt
@@ -209,7 +209,7 @@ type statsStatements struct {
selectDailyMessagesStmt *sql.Stmt
}
-func NewSQLiteStatsTable(db *sql.DB, serverName gomatrixserverlib.ServerName) (tables.StatsTable, error) {
+func NewSQLiteStatsTable(db *sql.DB, serverName spec.ServerName) (tables.StatsTable, error) {
s := &statsStatements{
serverName: serverName,
lastUpdate: time.Now(),
@@ -298,8 +298,8 @@ func (s *statsStatements) registeredUserByType(ctx context.Context, txn *sql.Tx)
params[i] = v // i: 0 1 2 => ($1, $2, $3)
params[i+1+len(nonGuests)] = v // i: 4 5 6 => ($5, $6, $7)
}
- params[3] = api.AccountTypeGuest // $4
- params[7] = gomatrixserverlib.AsTimestamp(registeredAfter) // $8
+ params[3] = api.AccountTypeGuest // $4
+ params[7] = spec.AsTimestamp(registeredAfter) // $8
rows, err := stmt.QueryContext(ctx, params...)
if err != nil {
@@ -324,7 +324,7 @@ func (s *statsStatements) dailyUsers(ctx context.Context, txn *sql.Tx) (result i
stmt := sqlutil.TxStmt(txn, s.countUsersLastSeenAfterStmt)
lastSeenAfter := time.Now().AddDate(0, 0, -1)
err = stmt.QueryRowContext(ctx,
- gomatrixserverlib.AsTimestamp(lastSeenAfter),
+ spec.AsTimestamp(lastSeenAfter),
).Scan(&result)
return
}
@@ -333,7 +333,7 @@ func (s *statsStatements) monthlyUsers(ctx context.Context, txn *sql.Tx) (result
stmt := sqlutil.TxStmt(txn, s.countUsersLastSeenAfterStmt)
lastSeenAfter := time.Now().AddDate(0, 0, -30)
err = stmt.QueryRowContext(ctx,
- gomatrixserverlib.AsTimestamp(lastSeenAfter),
+ spec.AsTimestamp(lastSeenAfter),
).Scan(&result)
return
}
@@ -348,8 +348,8 @@ func (s *statsStatements) r30Users(ctx context.Context, txn *sql.Tx) (map[string
diff := time.Hour * 24 * 30
rows, err := stmt.QueryContext(ctx,
- gomatrixserverlib.AsTimestamp(lastSeenAfter),
- gomatrixserverlib.AsTimestamp(lastSeenAfter),
+ spec.AsTimestamp(lastSeenAfter),
+ spec.AsTimestamp(lastSeenAfter),
diff.Milliseconds(),
)
if err != nil {
@@ -386,8 +386,8 @@ func (s *statsStatements) r30UsersV2(ctx context.Context, txn *sql.Tx) (map[stri
tomorrow := time.Now().Add(time.Hour * 24)
rows, err := stmt.QueryContext(ctx,
- gomatrixserverlib.AsTimestamp(sixtyDaysAgo),
- gomatrixserverlib.AsTimestamp(tomorrow),
+ spec.AsTimestamp(sixtyDaysAgo),
+ spec.AsTimestamp(tomorrow),
diff.Milliseconds(),
)
if err != nil {
@@ -482,9 +482,9 @@ func (s *statsStatements) UpdateUserDailyVisits(
startTime = startTime.AddDate(0, 0, -1)
}
_, err := stmt.ExecContext(ctx,
- gomatrixserverlib.AsTimestamp(startTime),
- gomatrixserverlib.AsTimestamp(lastUpdate),
- gomatrixserverlib.AsTimestamp(time.Now()),
+ spec.AsTimestamp(startTime),
+ spec.AsTimestamp(lastUpdate),
+ spec.AsTimestamp(time.Now()),
)
if err == nil {
s.lastUpdate = time.Now()
@@ -494,13 +494,13 @@ func (s *statsStatements) UpdateUserDailyVisits(
func (s *statsStatements) UpsertDailyStats(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName, stats types.MessageStats,
+ serverName spec.ServerName, stats types.MessageStats,
activeRooms, activeE2EERooms int64,
) error {
stmt := sqlutil.TxStmt(txn, s.upsertMessagesStmt)
timestamp := time.Now().Truncate(time.Hour * 24)
_, err := stmt.ExecContext(ctx,
- gomatrixserverlib.AsTimestamp(timestamp),
+ spec.AsTimestamp(timestamp),
serverName,
stats.Messages, stats.SentMessages, stats.MessagesE2EE, stats.SentMessagesE2EE,
activeRooms, activeE2EERooms,
@@ -510,12 +510,12 @@ func (s *statsStatements) UpsertDailyStats(
func (s *statsStatements) DailyRoomsMessages(
ctx context.Context, txn *sql.Tx,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
) (msgStats types.MessageStats, activeRooms, activeE2EERooms int64, err error) {
stmt := sqlutil.TxStmt(txn, s.selectDailyMessagesStmt)
timestamp := time.Now().Truncate(time.Hour * 24)
- err = stmt.QueryRowContext(ctx, serverName, gomatrixserverlib.AsTimestamp(timestamp)).
+ err = stmt.QueryRowContext(ctx, serverName, spec.AsTimestamp(timestamp)).
Scan(&msgStats.Messages, &msgStats.SentMessages, &msgStats.MessagesE2EE, &msgStats.SentMessagesE2EE, &activeRooms, &activeE2EERooms)
if err != nil && err != sql.ErrNoRows {
return msgStats, 0, 0, err
diff --git a/userapi/storage/sqlite3/storage.go b/userapi/storage/sqlite3/storage.go
index 3742eeba..acd9678f 100644
--- a/userapi/storage/sqlite3/storage.go
+++ b/userapi/storage/sqlite3/storage.go
@@ -20,17 +20,16 @@ import (
"fmt"
"time"
- "github.com/matrix-org/gomatrixserverlib"
-
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/userapi/storage/shared"
"github.com/matrix-org/dendrite/userapi/storage/sqlite3/deltas"
)
// NewUserDatabase creates a new accounts and profiles database
-func NewUserDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, serverName gomatrixserverlib.ServerName, bcryptCost int, openIDTokenLifetimeMS int64, loginTokenLifetime time.Duration, serverNoticesLocalpart string) (*shared.Database, error) {
+func NewUserDatabase(ctx context.Context, conMan sqlutil.Connections, dbProperties *config.DatabaseOptions, serverName spec.ServerName, bcryptCost int, openIDTokenLifetimeMS int64, loginTokenLifetime time.Duration, serverNoticesLocalpart string) (*shared.Database, error) {
db, writer, err := conMan.Connection(dbProperties)
if err != nil {
return nil, err
diff --git a/userapi/storage/sqlite3/threepid_table.go b/userapi/storage/sqlite3/threepid_table.go
index 2db7d588..a83f8042 100644
--- a/userapi/storage/sqlite3/threepid_table.go
+++ b/userapi/storage/sqlite3/threepid_table.go
@@ -21,7 +21,7 @@ import (
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
)
@@ -81,7 +81,7 @@ func NewSQLiteThreePIDTable(db *sql.DB) (tables.ThreePIDTable, error) {
func (s *threepidStatements) SelectLocalpartForThreePID(
ctx context.Context, txn *sql.Tx, threepid string, medium string,
-) (localpart string, serverName gomatrixserverlib.ServerName, err error) {
+) (localpart string, serverName spec.ServerName, err error) {
stmt := sqlutil.TxStmt(txn, s.selectLocalpartForThreePIDStmt)
err = stmt.QueryRowContext(ctx, threepid, medium).Scan(&localpart, &serverName)
if err == sql.ErrNoRows {
@@ -92,7 +92,7 @@ func (s *threepidStatements) SelectLocalpartForThreePID(
func (s *threepidStatements) SelectThreePIDsForLocalpart(
ctx context.Context,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (threepids []authtypes.ThreePID, err error) {
rows, err := s.selectThreePIDsForLocalpartStmt.QueryContext(ctx, localpart, serverName)
if err != nil {
@@ -117,7 +117,7 @@ func (s *threepidStatements) SelectThreePIDsForLocalpart(
func (s *threepidStatements) InsertThreePID(
ctx context.Context, txn *sql.Tx, threepid, medium,
- localpart string, serverName gomatrixserverlib.ServerName,
+ localpart string, serverName spec.ServerName,
) (err error) {
stmt := sqlutil.TxStmt(txn, s.insertThreePIDStmt)
_, err = stmt.ExecContext(ctx, threepid, medium, localpart, serverName)
diff --git a/userapi/storage/storage.go b/userapi/storage/storage.go
index 6981765f..39231b22 100644
--- a/userapi/storage/storage.go
+++ b/userapi/storage/storage.go
@@ -23,7 +23,7 @@ import (
"time"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/userapi/storage/postgres"
@@ -36,7 +36,7 @@ func NewUserDatabase(
ctx context.Context,
conMan sqlutil.Connections,
dbProperties *config.DatabaseOptions,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
bcryptCost int,
openIDTokenLifetimeMS int64,
loginTokenLifetime time.Duration,
diff --git a/userapi/storage/storage_test.go b/userapi/storage/storage_test.go
index 7afcda6e..a46ee9eb 100644
--- a/userapi/storage/storage_test.go
+++ b/userapi/storage/storage_test.go
@@ -13,6 +13,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/userapi/types"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/stretchr/testify/assert"
"golang.org/x/crypto/bcrypt"
@@ -528,11 +529,11 @@ func Test_Notification(t *testing.T) {
{},
},
Event: synctypes.ClientEvent{
- Content: gomatrixserverlib.RawJSON("{}"),
+ Content: spec.RawJSON("{}"),
},
Read: false,
RoomID: roomID,
- TS: gomatrixserverlib.AsTimestamp(ts),
+ TS: spec.AsTimestamp(ts),
}
err = db.InsertNotification(ctx, aliceLocalpart, aliceDomain, eventID, uint64(i+1), nil, notification)
assert.NoError(t, err, "unable to insert notification")
diff --git a/userapi/storage/storage_wasm.go b/userapi/storage/storage_wasm.go
index 19e5f23c..cbadd98e 100644
--- a/userapi/storage/storage_wasm.go
+++ b/userapi/storage/storage_wasm.go
@@ -29,7 +29,7 @@ func NewUserDatabase(
ctx context.Context,
conMan sqlutil.Connections,
dbProperties *config.DatabaseOptions,
- serverName gomatrixserverlib.ServerName,
+ serverName spec.ServerName,
bcryptCost int,
openIDTokenLifetimeMS int64,
loginTokenLifetime time.Duration,
diff --git a/userapi/storage/tables/interface.go b/userapi/storage/tables/interface.go
index 2d133928..3c6214e7 100644
--- a/userapi/storage/tables/interface.go
+++ b/userapi/storage/tables/interface.go
@@ -23,38 +23,39 @@ import (
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/dendrite/userapi/types"
)
type AccountDataTable interface {
- InsertAccountData(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, roomID, dataType string, content json.RawMessage) error
- SelectAccountData(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (map[string]json.RawMessage, map[string]map[string]json.RawMessage, error)
- SelectAccountDataByType(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, roomID, dataType string) (data json.RawMessage, err error)
+ InsertAccountData(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, roomID, dataType string, content json.RawMessage) error
+ SelectAccountData(ctx context.Context, localpart string, serverName spec.ServerName) (map[string]json.RawMessage, map[string]map[string]json.RawMessage, error)
+ SelectAccountDataByType(ctx context.Context, localpart string, serverName spec.ServerName, roomID, dataType string) (data json.RawMessage, err error)
}
type AccountsTable interface {
- InsertAccount(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, hash, appserviceID string, accountType api.AccountType) (*api.Account, error)
- UpdatePassword(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, passwordHash string) (err error)
- DeactivateAccount(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (err error)
- SelectPasswordHash(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (hash string, err error)
- SelectAccountByLocalpart(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (*api.Account, error)
- SelectNewNumericLocalpart(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) (id int64, err error)
+ InsertAccount(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, hash, appserviceID string, accountType api.AccountType) (*api.Account, error)
+ UpdatePassword(ctx context.Context, localpart string, serverName spec.ServerName, passwordHash string) (err error)
+ DeactivateAccount(ctx context.Context, localpart string, serverName spec.ServerName) (err error)
+ SelectPasswordHash(ctx context.Context, localpart string, serverName spec.ServerName) (hash string, err error)
+ SelectAccountByLocalpart(ctx context.Context, localpart string, serverName spec.ServerName) (*api.Account, error)
+ SelectNewNumericLocalpart(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) (id int64, err error)
}
type DevicesTable interface {
- InsertDevice(ctx context.Context, txn *sql.Tx, id, localpart string, serverName gomatrixserverlib.ServerName, accessToken string, displayName *string, ipAddr, userAgent string) (*api.Device, error)
- InsertDeviceWithSessionID(ctx context.Context, txn *sql.Tx, id, localpart string, serverName gomatrixserverlib.ServerName, accessToken string, displayName *string, ipAddr, userAgent string, sessionID int64) (*api.Device, error)
- DeleteDevice(ctx context.Context, txn *sql.Tx, id, localpart string, serverName gomatrixserverlib.ServerName) error
- DeleteDevices(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, devices []string) error
- DeleteDevicesByLocalpart(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, exceptDeviceID string) error
- UpdateDeviceName(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, deviceID string, displayName *string) error
+ InsertDevice(ctx context.Context, txn *sql.Tx, id, localpart string, serverName spec.ServerName, accessToken string, displayName *string, ipAddr, userAgent string) (*api.Device, error)
+ InsertDeviceWithSessionID(ctx context.Context, txn *sql.Tx, id, localpart string, serverName spec.ServerName, accessToken string, displayName *string, ipAddr, userAgent string, sessionID int64) (*api.Device, error)
+ DeleteDevice(ctx context.Context, txn *sql.Tx, id, localpart string, serverName spec.ServerName) error
+ DeleteDevices(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, devices []string) error
+ DeleteDevicesByLocalpart(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, exceptDeviceID string) error
+ UpdateDeviceName(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, deviceID string, displayName *string) error
SelectDeviceByToken(ctx context.Context, accessToken string) (*api.Device, error)
- SelectDeviceByID(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, deviceID string) (*api.Device, error)
- SelectDevicesByLocalpart(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, exceptDeviceID string) ([]api.Device, error)
+ SelectDeviceByID(ctx context.Context, localpart string, serverName spec.ServerName, deviceID string) (*api.Device, error)
+ SelectDevicesByLocalpart(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, exceptDeviceID string) ([]api.Device, error)
SelectDevicesByID(ctx context.Context, deviceIDs []string) ([]api.Device, error)
- UpdateDeviceLastSeen(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, deviceID, ipAddr, userAgent string) error
+ UpdateDeviceLastSeen(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, deviceID, ipAddr, userAgent string) error
}
type KeyBackupTable interface {
@@ -81,47 +82,47 @@ type LoginTokenTable interface {
}
type OpenIDTable interface {
- InsertOpenIDToken(ctx context.Context, txn *sql.Tx, token, localpart string, serverName gomatrixserverlib.ServerName, expiresAtMS int64) (err error)
+ InsertOpenIDToken(ctx context.Context, txn *sql.Tx, token, localpart string, serverName spec.ServerName, expiresAtMS int64) (err error)
SelectOpenIDTokenAtrributes(ctx context.Context, token string) (*api.OpenIDTokenAttributes, error)
}
type ProfileTable interface {
- InsertProfile(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName) error
- SelectProfileByLocalpart(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (*authtypes.Profile, error)
- SetAvatarURL(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, avatarURL string) (*authtypes.Profile, bool, error)
- SetDisplayName(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, displayName string) (*authtypes.Profile, bool, error)
+ InsertProfile(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName) error
+ SelectProfileByLocalpart(ctx context.Context, localpart string, serverName spec.ServerName) (*authtypes.Profile, error)
+ SetAvatarURL(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, avatarURL string) (*authtypes.Profile, bool, error)
+ SetDisplayName(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, displayName string) (*authtypes.Profile, bool, error)
SelectProfilesBySearch(ctx context.Context, searchString string, limit int) ([]authtypes.Profile, error)
}
type ThreePIDTable interface {
- SelectLocalpartForThreePID(ctx context.Context, txn *sql.Tx, threepid string, medium string) (localpart string, serverName gomatrixserverlib.ServerName, err error)
- SelectThreePIDsForLocalpart(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName) (threepids []authtypes.ThreePID, err error)
- InsertThreePID(ctx context.Context, txn *sql.Tx, threepid, medium, localpart string, serverName gomatrixserverlib.ServerName) (err error)
+ SelectLocalpartForThreePID(ctx context.Context, txn *sql.Tx, threepid string, medium string) (localpart string, serverName spec.ServerName, err error)
+ SelectThreePIDsForLocalpart(ctx context.Context, localpart string, serverName spec.ServerName) (threepids []authtypes.ThreePID, err error)
+ InsertThreePID(ctx context.Context, txn *sql.Tx, threepid, medium, localpart string, serverName spec.ServerName) (err error)
DeleteThreePID(ctx context.Context, txn *sql.Tx, threepid string, medium string) (err error)
}
type PusherTable interface {
- InsertPusher(ctx context.Context, txn *sql.Tx, session_id int64, pushkey string, pushkeyTS int64, kind api.PusherKind, appid, appdisplayname, devicedisplayname, profiletag, lang, data, localpart string, serverName gomatrixserverlib.ServerName) error
- SelectPushers(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName) ([]api.Pusher, error)
- DeletePusher(ctx context.Context, txn *sql.Tx, appid, pushkey, localpart string, serverName gomatrixserverlib.ServerName) error
+ InsertPusher(ctx context.Context, txn *sql.Tx, session_id int64, pushkey string, pushkeyTS int64, kind api.PusherKind, appid, appdisplayname, devicedisplayname, profiletag, lang, data, localpart string, serverName spec.ServerName) error
+ SelectPushers(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName) ([]api.Pusher, error)
+ DeletePusher(ctx context.Context, txn *sql.Tx, appid, pushkey, localpart string, serverName spec.ServerName) error
DeletePushers(ctx context.Context, txn *sql.Tx, appid, pushkey string) error
}
type NotificationTable interface {
Clean(ctx context.Context, txn *sql.Tx) error
- Insert(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, eventID string, pos uint64, highlight bool, n *api.Notification) error
- DeleteUpTo(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, roomID string, pos uint64) (affected bool, _ error)
- UpdateRead(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, roomID string, pos uint64, v bool) (affected bool, _ error)
- Select(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, fromID int64, limit int, filter NotificationFilter) ([]*api.Notification, int64, error)
- SelectCount(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, filter NotificationFilter) (int64, error)
- SelectRoomCounts(ctx context.Context, txn *sql.Tx, localpart string, serverName gomatrixserverlib.ServerName, roomID string) (total int64, highlight int64, _ error)
+ Insert(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, eventID string, pos uint64, highlight bool, n *api.Notification) error
+ DeleteUpTo(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, roomID string, pos uint64) (affected bool, _ error)
+ UpdateRead(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, roomID string, pos uint64, v bool) (affected bool, _ error)
+ Select(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, fromID int64, limit int, filter NotificationFilter) ([]*api.Notification, int64, error)
+ SelectCount(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, filter NotificationFilter) (int64, error)
+ SelectRoomCounts(ctx context.Context, txn *sql.Tx, localpart string, serverName spec.ServerName, roomID string) (total int64, highlight int64, _ error)
}
type StatsTable interface {
UserStatistics(ctx context.Context, txn *sql.Tx) (*types.UserStatistics, *types.DatabaseEngine, error)
- DailyRoomsMessages(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) (msgStats types.MessageStats, activeRooms, activeE2EERooms int64, err error)
+ DailyRoomsMessages(ctx context.Context, txn *sql.Tx, serverName spec.ServerName) (msgStats types.MessageStats, activeRooms, activeE2EERooms int64, err error)
UpdateUserDailyVisits(ctx context.Context, txn *sql.Tx, startTime, lastUpdate time.Time) error
- UpsertDailyStats(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, stats types.MessageStats, activeRooms, activeE2EERooms int64) error
+ UpsertDailyStats(ctx context.Context, txn *sql.Tx, serverName spec.ServerName, stats types.MessageStats, activeRooms, activeE2EERooms int64) error
}
type NotificationFilter uint32
@@ -176,17 +177,17 @@ type KeyChanges interface {
type StaleDeviceLists interface {
InsertStaleDeviceList(ctx context.Context, userID string, isStale bool) error
- SelectUserIDsWithStaleDeviceLists(ctx context.Context, domains []gomatrixserverlib.ServerName) ([]string, error)
+ SelectUserIDsWithStaleDeviceLists(ctx context.Context, domains []spec.ServerName) ([]string, error)
DeleteStaleDeviceLists(ctx context.Context, txn *sql.Tx, userIDs []string) error
}
type CrossSigningKeys interface {
SelectCrossSigningKeysForUser(ctx context.Context, txn *sql.Tx, userID string) (r types.CrossSigningKeyMap, err error)
- UpsertCrossSigningKeysForUser(ctx context.Context, txn *sql.Tx, userID string, keyType fclient.CrossSigningKeyPurpose, keyData gomatrixserverlib.Base64Bytes) error
+ UpsertCrossSigningKeysForUser(ctx context.Context, txn *sql.Tx, userID string, keyType fclient.CrossSigningKeyPurpose, keyData spec.Base64Bytes) error
}
type CrossSigningSigs interface {
SelectCrossSigningSigsForTarget(ctx context.Context, txn *sql.Tx, originUserID, targetUserID string, targetKeyID gomatrixserverlib.KeyID) (r types.CrossSigningSigMap, err error)
- UpsertCrossSigningSigsForTarget(ctx context.Context, txn *sql.Tx, originUserID string, originKeyID gomatrixserverlib.KeyID, targetUserID string, targetKeyID gomatrixserverlib.KeyID, signature gomatrixserverlib.Base64Bytes) error
+ UpsertCrossSigningSigsForTarget(ctx context.Context, txn *sql.Tx, originUserID string, originKeyID gomatrixserverlib.KeyID, targetUserID string, targetKeyID gomatrixserverlib.KeyID, signature spec.Base64Bytes) error
DeleteCrossSigningSigsForTarget(ctx context.Context, txn *sql.Tx, targetUserID string, targetKeyID gomatrixserverlib.KeyID) error
}
diff --git a/userapi/storage/tables/stale_device_lists_test.go b/userapi/storage/tables/stale_device_lists_test.go
index b9bdafda..09924eb0 100644
--- a/userapi/storage/tables/stale_device_lists_test.go
+++ b/userapi/storage/tables/stale_device_lists_test.go
@@ -6,7 +6,7 @@ import (
"github.com/matrix-org/dendrite/userapi/storage/postgres"
"github.com/matrix-org/dendrite/userapi/storage/sqlite3"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
@@ -57,7 +57,7 @@ func TestStaleDeviceLists(t *testing.T) {
// Query one server
wantStaleUsers := []string{alice.ID, bob.ID}
- gotStaleUsers, err := tab.SelectUserIDsWithStaleDeviceLists(ctx, []gomatrixserverlib.ServerName{"test"})
+ gotStaleUsers, err := tab.SelectUserIDsWithStaleDeviceLists(ctx, []spec.ServerName{"test"})
if err != nil {
t.Fatalf("failed to query stale device lists: %s", err)
}
@@ -67,7 +67,7 @@ func TestStaleDeviceLists(t *testing.T) {
// Query all servers
wantStaleUsers = []string{alice.ID, bob.ID, charlie}
- gotStaleUsers, err = tab.SelectUserIDsWithStaleDeviceLists(ctx, []gomatrixserverlib.ServerName{})
+ gotStaleUsers, err = tab.SelectUserIDsWithStaleDeviceLists(ctx, []spec.ServerName{})
if err != nil {
t.Fatalf("failed to query stale device lists: %s", err)
}
@@ -82,7 +82,7 @@ func TestStaleDeviceLists(t *testing.T) {
}
// Verify we don't get anything back after deleting
- gotStaleUsers, err = tab.SelectUserIDsWithStaleDeviceLists(ctx, []gomatrixserverlib.ServerName{"test"})
+ gotStaleUsers, err = tab.SelectUserIDsWithStaleDeviceLists(ctx, []spec.ServerName{"test"})
if err != nil {
t.Fatalf("failed to query stale device lists: %s", err)
}
diff --git a/userapi/storage/tables/stats_table_test.go b/userapi/storage/tables/stats_table_test.go
index 969bc530..61fe0266 100644
--- a/userapi/storage/tables/stats_table_test.go
+++ b/userapi/storage/tables/stats_table_test.go
@@ -8,7 +8,7 @@ import (
"testing"
"time"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/internal/sqlutil"
@@ -79,7 +79,7 @@ func mustMakeAccountAndDevice(
accDB tables.AccountsTable,
devDB tables.DevicesTable,
localpart string,
- serverName gomatrixserverlib.ServerName, // nolint:unparam
+ serverName spec.ServerName, // nolint:unparam
accType api.AccountType,
userAgent string,
) {
@@ -108,7 +108,7 @@ func mustUpdateDeviceLastSeen(
timestamp time.Time,
) {
t.Helper()
- _, err := db.ExecContext(ctx, "UPDATE userapi_devices SET last_seen_ts = $1 WHERE localpart = $2", gomatrixserverlib.AsTimestamp(timestamp), localpart)
+ _, err := db.ExecContext(ctx, "UPDATE userapi_devices SET last_seen_ts = $1 WHERE localpart = $2", spec.AsTimestamp(timestamp), localpart)
if err != nil {
t.Fatalf("unable to update device last seen")
}
@@ -121,7 +121,7 @@ func mustUserUpdateRegistered(
localpart string,
timestamp time.Time,
) {
- _, err := db.ExecContext(ctx, "UPDATE userapi_accounts SET created_ts = $1 WHERE localpart = $2", gomatrixserverlib.AsTimestamp(timestamp), localpart)
+ _, err := db.ExecContext(ctx, "UPDATE userapi_accounts SET created_ts = $1 WHERE localpart = $2", spec.AsTimestamp(timestamp), localpart)
if err != nil {
t.Fatalf("unable to update device last seen")
}
diff --git a/userapi/types/storage.go b/userapi/types/storage.go
index a910f7f1..2c918847 100644
--- a/userapi/types/storage.go
+++ b/userapi/types/storage.go
@@ -19,6 +19,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
const (
@@ -45,7 +46,7 @@ var KeyTypeIntToPurpose = map[int16]fclient.CrossSigningKeyPurpose{
}
// Map of purpose -> public key
-type CrossSigningKeyMap map[fclient.CrossSigningKeyPurpose]gomatrixserverlib.Base64Bytes
+type CrossSigningKeyMap map[fclient.CrossSigningKeyPurpose]spec.Base64Bytes
// Map of user ID -> key ID -> signature
-type CrossSigningSigMap map[string]map[gomatrixserverlib.KeyID]gomatrixserverlib.Base64Bytes
+type CrossSigningSigMap map[string]map[gomatrixserverlib.KeyID]spec.Base64Bytes
diff --git a/userapi/userapi_test.go b/userapi/userapi_test.go
index 9d068ca3..45762a7d 100644
--- a/userapi/userapi_test.go
+++ b/userapi/userapi_test.go
@@ -28,6 +28,7 @@ import (
"github.com/matrix-org/dendrite/userapi/producers"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/nats-io/nats.go"
"golang.org/x/crypto/bcrypt"
@@ -41,7 +42,7 @@ import (
)
const (
- serverName = gomatrixserverlib.ServerName("example.com")
+ serverName = spec.ServerName("example.com")
)
type apiTestOpts struct {
@@ -74,7 +75,7 @@ func MustMakeInternalAPI(t *testing.T, opts apiTestOpts, dbType test.DBType, pub
cfg, ctx, close := testrig.CreateConfig(t, dbType)
sName := serverName
if opts.serverName != "" {
- sName = gomatrixserverlib.ServerName(opts.serverName)
+ sName = spec.ServerName(opts.serverName)
}
cm := sqlutil.NewConnectionManager(ctx, cfg.Global.DatabaseOptions)
diff --git a/userapi/util/devices.go b/userapi/util/devices.go
index 31617d8c..117da08e 100644
--- a/userapi/util/devices.go
+++ b/userapi/util/devices.go
@@ -7,7 +7,7 @@ import (
"github.com/matrix-org/dendrite/internal/pushgateway"
"github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/dendrite/userapi/storage"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
log "github.com/sirupsen/logrus"
)
@@ -19,7 +19,7 @@ type PusherDevice struct {
}
// GetPushDevices pushes to the configured devices of a local user.
-func GetPushDevices(ctx context.Context, localpart string, serverName gomatrixserverlib.ServerName, tweaks map[string]interface{}, db storage.UserDatabase) ([]*PusherDevice, error) {
+func GetPushDevices(ctx context.Context, localpart string, serverName spec.ServerName, tweaks map[string]interface{}, db storage.UserDatabase) ([]*PusherDevice, error) {
pushers, err := db.GetPushers(ctx, localpart, serverName)
if err != nil {
return nil, fmt.Errorf("db.GetPushers: %w", err)
diff --git a/userapi/util/notify.go b/userapi/util/notify.go
index 08d1371d..45d37525 100644
--- a/userapi/util/notify.go
+++ b/userapi/util/notify.go
@@ -8,7 +8,7 @@ import (
"github.com/matrix-org/dendrite/internal/pushgateway"
"github.com/matrix-org/dendrite/userapi/storage"
"github.com/matrix-org/dendrite/userapi/storage/tables"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
log "github.com/sirupsen/logrus"
)
@@ -17,7 +17,7 @@ import (
// a single goroutine is started when talking to the Push
// gateways. There is no way to know when the background goroutine has
// finished.
-func NotifyUserCountsAsync(ctx context.Context, pgClient pushgateway.Client, localpart string, serverName gomatrixserverlib.ServerName, db storage.UserDatabase) error {
+func NotifyUserCountsAsync(ctx context.Context, pgClient pushgateway.Client, localpart string, serverName spec.ServerName, db storage.UserDatabase) error {
pusherDevices, err := GetPushDevices(ctx, localpart, serverName, nil, db)
if err != nil {
return err
diff --git a/userapi/util/phonehomestats.go b/userapi/util/phonehomestats.go
index 21035e04..4bf9a5d8 100644
--- a/userapi/util/phonehomestats.go
+++ b/userapi/util/phonehomestats.go
@@ -24,18 +24,18 @@ import (
"syscall"
"time"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/sirupsen/logrus"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/userapi/storage"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type phoneHomeStats struct {
prevData timestampToRUUsage
stats map[string]interface{}
- serverName gomatrixserverlib.ServerName
+ serverName spec.ServerName
startTime time.Time
cfg *config.Dendrite
db storage.Statistics