aboutsummaryrefslogtreecommitdiff
path: root/roomserver/internal
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2022-03-17 17:05:21 +0000
committerNeil Alexander <neilalexander@users.noreply.github.com>2022-03-17 17:05:21 +0000
commit4e64c270dbe5d438325903e4404ed4b9ec43c039 (patch)
tree703043599b6a3ed316df980de493b7ba03156d4e /roomserver/internal
parent0fb94fc781a71219d5e537788e976bec1d84382c (diff)
Various bug fixes and tweaks around invites and membership
Diffstat (limited to 'roomserver/internal')
-rw-r--r--roomserver/internal/helpers/helpers.go2
-rw-r--r--roomserver/internal/perform/perform_invite.go7
-rw-r--r--roomserver/internal/perform/perform_leave.go4
3 files changed, 8 insertions, 5 deletions
diff --git a/roomserver/internal/helpers/helpers.go b/roomserver/internal/helpers/helpers.go
index 78a875c7..e67bbfca 100644
--- a/roomserver/internal/helpers/helpers.go
+++ b/roomserver/internal/helpers/helpers.go
@@ -28,7 +28,7 @@ func UpdateToInviteMembership(
// reprocessing this event, or because the we received this invite from a
// remote server via the federation invite API. In those cases we don't need
// to send the event.
- needsSending, err := mu.SetToInvite(*add)
+ needsSending, err := mu.SetToInvite(add)
if err != nil {
return nil, err
}
diff --git a/roomserver/internal/perform/perform_invite.go b/roomserver/internal/perform/perform_invite.go
index 6559cd08..6111372d 100644
--- a/roomserver/internal/perform/perform_invite.go
+++ b/roomserver/internal/perform/perform_invite.go
@@ -24,6 +24,7 @@ import (
"github.com/matrix-org/dendrite/roomserver/internal/input"
"github.com/matrix-org/dendrite/roomserver/state"
"github.com/matrix-org/dendrite/roomserver/storage"
+ "github.com/matrix-org/dendrite/roomserver/storage/shared"
"github.com/matrix-org/dendrite/roomserver/types"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
@@ -139,13 +140,15 @@ func (r *Inviter) PerformInvite(
// will never pass auth checks due to lacking room state, but we
// still need to tell the client about the invite so we can accept
// it, hence we return an output event to send to the sync api.
- updater, err := r.DB.MembershipUpdater(ctx, roomID, targetUserID, isTargetLocal, req.RoomVersion)
+ var updater *shared.MembershipUpdater
+ updater, err = r.DB.MembershipUpdater(ctx, roomID, targetUserID, isTargetLocal, req.RoomVersion)
if err != nil {
return nil, fmt.Errorf("r.DB.MembershipUpdater: %w", err)
}
unwrapped := event.Unwrap()
- outputUpdates, err := helpers.UpdateToInviteMembership(updater, unwrapped, nil, req.Event.RoomVersion)
+ var outputUpdates []api.OutputEvent
+ outputUpdates, err = helpers.UpdateToInviteMembership(updater, unwrapped, nil, req.Event.RoomVersion)
if err != nil {
return nil, fmt.Errorf("updateToInviteMembership: %w", err)
}
diff --git a/roomserver/internal/perform/perform_leave.go b/roomserver/internal/perform/perform_leave.go
index 49ddd481..1e5fb9f1 100644
--- a/roomserver/internal/perform/perform_leave.go
+++ b/roomserver/internal/perform/perform_leave.go
@@ -91,12 +91,12 @@ func (r *Leaver) performLeaveRoomByID(
}
// check that this is not a "server notice room"
accData := &userapi.QueryAccountDataResponse{}
- if err := r.UserAPI.QueryAccountData(ctx, &userapi.QueryAccountDataRequest{
+ if err = r.UserAPI.QueryAccountData(ctx, &userapi.QueryAccountDataRequest{
UserID: req.UserID,
RoomID: req.RoomID,
DataType: "m.tag",
}, accData); err != nil {
- return nil, fmt.Errorf("unable to query account data")
+ return nil, fmt.Errorf("unable to query account data: %w", err)
}
if roomData, ok := accData.RoomAccountData[req.RoomID]; ok {