aboutsummaryrefslogtreecommitdiff
path: root/clientapi/routing/state.go
diff options
context:
space:
mode:
Diffstat (limited to 'clientapi/routing/state.go')
-rw-r--r--clientapi/routing/state.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/clientapi/routing/state.go b/clientapi/routing/state.go
index e3a209b6..f53cb301 100644
--- a/clientapi/routing/state.go
+++ b/clientapi/routing/state.go
@@ -150,7 +150,7 @@ func OnIncomingStateRequest(ctx context.Context, device *userapi.Device, rsAPI a
for _, ev := range stateRes.StateEvents {
stateEvents = append(
stateEvents,
- synctypes.ToClientEventDefault(func(roomID string, senderID spec.SenderID) (*spec.UserID, error) {
+ synctypes.ToClientEventDefault(func(roomID spec.RoomID, senderID spec.SenderID) (*spec.UserID, error) {
return rsAPI.QueryUserIDForSender(ctx, roomID, senderID)
}, ev),
)
@@ -173,14 +173,19 @@ func OnIncomingStateRequest(ctx context.Context, device *userapi.Device, rsAPI a
}
for _, ev := range stateAfterRes.StateEvents {
sender := spec.UserID{}
- userID, err := rsAPI.QueryUserIDForSender(ctx, ev.RoomID(), ev.SenderID())
+ evRoomID, err := spec.NewRoomID(ev.RoomID())
+ if err != nil {
+ util.GetLogger(ctx).WithError(err).Error("Event roomID is invalid")
+ continue
+ }
+ userID, err := rsAPI.QueryUserIDForSender(ctx, *evRoomID, ev.SenderID())
if err == nil && userID != nil {
sender = *userID
}
sk := ev.StateKey()
if sk != nil && *sk != "" {
- skUserID, err := rsAPI.QueryUserIDForSender(ctx, ev.RoomID(), spec.SenderID(*ev.StateKey()))
+ skUserID, err := rsAPI.QueryUserIDForSender(ctx, *evRoomID, spec.SenderID(*ev.StateKey()))
if err == nil && skUserID != nil {
skString := skUserID.String()
sk = &skString
@@ -367,7 +372,7 @@ func OnIncomingStateTypeRequest(
}
stateEvent := stateEventInStateResp{
- ClientEvent: synctypes.ToClientEventDefault(func(roomID string, senderID spec.SenderID) (*spec.UserID, error) {
+ ClientEvent: synctypes.ToClientEventDefault(func(roomID spec.RoomID, senderID spec.SenderID) (*spec.UserID, error) {
return rsAPI.QueryUserIDForSender(ctx, roomID, senderID)
}, event),
}