aboutsummaryrefslogtreecommitdiff
path: root/federationapi/routing
diff options
context:
space:
mode:
authorTill <2353100+S7evinK@users.noreply.github.com>2023-06-06 15:16:55 +0200
committerGitHub <noreply@github.com>2023-06-06 15:16:55 +0200
commit725ff5567d2a3bc9992b065e72ccabefb595ec1c (patch)
treea0b84345c1206864bdd3637ccf0193fff0a38b38 /federationapi/routing
parentd11da6ec7cc683864e1e10b7f47764d1bb0c4f1a (diff)
Make `StrictValidityChecking` a function (#3092)
Companion PR to https://github.com/matrix-org/gomatrixserverlib/pull/388
Diffstat (limited to 'federationapi/routing')
-rw-r--r--federationapi/routing/backfill.go2
-rw-r--r--federationapi/routing/join.go52
-rw-r--r--federationapi/routing/leave.go8
-rw-r--r--federationapi/routing/send.go2
-rw-r--r--federationapi/routing/threepid.go4
5 files changed, 10 insertions, 58 deletions
diff --git a/federationapi/routing/backfill.go b/federationapi/routing/backfill.go
index 9e159505..552c4eac 100644
--- a/federationapi/routing/backfill.go
+++ b/federationapi/routing/backfill.go
@@ -95,7 +95,7 @@ func Backfill(
}
}
- // Query the roomserver.
+ // Query the Roomserver.
if err = rsAPI.PerformBackfill(httpReq.Context(), &req, &res); err != nil {
util.GetLogger(httpReq.Context()).WithError(err).Error("query.PerformBackfill failed")
return util.JSONResponse{
diff --git a/federationapi/routing/join.go b/federationapi/routing/join.go
index c6f96375..2980c2af 100644
--- a/federationapi/routing/join.go
+++ b/federationapi/routing/join.go
@@ -15,7 +15,6 @@
package routing
import (
- "context"
"fmt"
"net/http"
"sort"
@@ -33,53 +32,6 @@ import (
"github.com/matrix-org/dendrite/setup/config"
)
-type JoinRoomQuerier struct {
- roomserver api.FederationRoomserverAPI
-}
-
-func (rq *JoinRoomQuerier) CurrentStateEvent(ctx context.Context, roomID spec.RoomID, eventType string, stateKey string) (gomatrixserverlib.PDU, error) {
- return rq.roomserver.CurrentStateEvent(ctx, roomID, eventType, stateKey)
-}
-
-func (rq *JoinRoomQuerier) InvitePending(ctx context.Context, roomID spec.RoomID, userID spec.UserID) (bool, error) {
- return rq.roomserver.InvitePending(ctx, roomID, userID)
-}
-
-func (rq *JoinRoomQuerier) RestrictedRoomJoinInfo(ctx context.Context, roomID spec.RoomID, userID spec.UserID, localServerName spec.ServerName) (*gomatrixserverlib.RestrictedRoomJoinInfo, error) {
- roomInfo, err := rq.roomserver.QueryRoomInfo(ctx, roomID)
- if err != nil || roomInfo == nil || roomInfo.IsStub() {
- return nil, err
- }
-
- req := api.QueryServerJoinedToRoomRequest{
- ServerName: localServerName,
- RoomID: roomID.String(),
- }
- res := api.QueryServerJoinedToRoomResponse{}
- if err = rq.roomserver.QueryServerJoinedToRoom(ctx, &req, &res); err != nil {
- util.GetLogger(ctx).WithError(err).Error("rsAPI.QueryServerJoinedToRoom failed")
- return nil, fmt.Errorf("InternalServerError: Failed to query room: %w", err)
- }
-
- userJoinedToRoom, err := rq.roomserver.UserJoinedToRoom(ctx, types.RoomNID(roomInfo.RoomNID), userID)
- if err != nil {
- util.GetLogger(ctx).WithError(err).Error("rsAPI.UserJoinedToRoom failed")
- return nil, fmt.Errorf("InternalServerError: %w", err)
- }
-
- locallyJoinedUsers, err := rq.roomserver.LocallyJoinedUsers(ctx, roomInfo.RoomVersion, types.RoomNID(roomInfo.RoomNID))
- if err != nil {
- util.GetLogger(ctx).WithError(err).Error("rsAPI.GetLocallyJoinedUsers failed")
- return nil, fmt.Errorf("InternalServerError: %w", err)
- }
-
- return &gomatrixserverlib.RestrictedRoomJoinInfo{
- LocalServerInRoom: res.RoomExists && res.IsInRoom,
- UserJoinedToRoom: userJoinedToRoom,
- JoinedUsers: locallyJoinedUsers,
- }, nil
-}
-
// MakeJoin implements the /make_join API
func MakeJoin(
httpReq *http.Request,
@@ -142,8 +94,8 @@ func MakeJoin(
return event, stateEvents, nil
}
- roomQuerier := JoinRoomQuerier{
- roomserver: rsAPI,
+ roomQuerier := api.JoinRoomQuerier{
+ Roomserver: rsAPI,
}
input := gomatrixserverlib.HandleMakeJoinInput{
diff --git a/federationapi/routing/leave.go b/federationapi/routing/leave.go
index a767168d..d7d5b599 100644
--- a/federationapi/routing/leave.go
+++ b/federationapi/routing/leave.go
@@ -291,10 +291,10 @@ func SendLeave(
}
}
verifyRequests := []gomatrixserverlib.VerifyJSONRequest{{
- ServerName: serverName,
- Message: redacted,
- AtTS: event.OriginServerTS(),
- StrictValidityChecking: true,
+ ServerName: serverName,
+ Message: redacted,
+ AtTS: event.OriginServerTS(),
+ ValidityCheckingFunc: gomatrixserverlib.StrictValiditySignatureCheck,
}}
verifyResults, err := keys.VerifyJSONs(httpReq.Context(), verifyRequests)
if err != nil {
diff --git a/federationapi/routing/send.go b/federationapi/routing/send.go
index 3c8e0cbe..96669454 100644
--- a/federationapi/routing/send.go
+++ b/federationapi/routing/send.go
@@ -34,7 +34,7 @@ import (
)
const (
- // Event was passed to the roomserver
+ // Event was passed to the Roomserver
MetricsOutcomeOK = "ok"
// Event failed to be processed
MetricsOutcomeFail = "fail"
diff --git a/federationapi/routing/threepid.go b/federationapi/routing/threepid.go
index beeb5249..76a2f3d5 100644
--- a/federationapi/routing/threepid.go
+++ b/federationapi/routing/threepid.go
@@ -223,7 +223,7 @@ func ExchangeThirdPartyInvite(
}
}
- // Send the event to the roomserver
+ // Send the event to the Roomserver
if err = api.SendEvents(
httpReq.Context(), rsAPI,
api.KindNew,
@@ -324,7 +324,7 @@ func buildMembershipEvent(
return nil, errors.New("expecting state tuples for event builder, got none")
}
- // Ask the roomserver for information about this room
+ // Ask the Roomserver for information about this room
queryReq := api.QueryLatestEventsAndStateRequest{
RoomID: protoEvent.RoomID,
StateToFetch: eventsNeeded.Tuples(),