aboutsummaryrefslogtreecommitdiff
path: root/federationsender
diff options
context:
space:
mode:
Diffstat (limited to 'federationsender')
-rw-r--r--federationsender/api/api.go2
-rw-r--r--federationsender/internal/perform.go1
-rw-r--r--federationsender/internal/query.go11
3 files changed, 5 insertions, 9 deletions
diff --git a/federationsender/api/api.go b/federationsender/api/api.go
index b0522516..a4d15f1f 100644
--- a/federationsender/api/api.go
+++ b/federationsender/api/api.go
@@ -48,6 +48,7 @@ type FederationSenderInternalAPI interface {
// Query the server names of the joined hosts in a room.
// Unlike QueryJoinedHostsInRoom, this function returns a de-duplicated slice
// 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,
@@ -104,6 +105,7 @@ type PerformJoinRequest struct {
}
type PerformJoinResponse struct {
+ JoinedVia gomatrixserverlib.ServerName
LastError *gomatrix.HTTPError
}
diff --git a/federationsender/internal/perform.go b/federationsender/internal/perform.go
index a7484476..45f33ff7 100644
--- a/federationsender/internal/perform.go
+++ b/federationsender/internal/perform.go
@@ -105,6 +105,7 @@ func (r *FederationSenderInternalAPI) PerformJoin(
}
// We're all good.
+ response.JoinedVia = serverName
return
}
diff --git a/federationsender/internal/query.go b/federationsender/internal/query.go
index 253400a2..8ba228d1 100644
--- a/federationsender/internal/query.go
+++ b/federationsender/internal/query.go
@@ -4,7 +4,6 @@ import (
"context"
"github.com/matrix-org/dendrite/federationsender/api"
- "github.com/matrix-org/gomatrixserverlib"
)
// QueryJoinedHostServerNamesInRoom implements api.FederationSenderInternalAPI
@@ -13,17 +12,11 @@ func (f *FederationSenderInternalAPI) QueryJoinedHostServerNamesInRoom(
request *api.QueryJoinedHostServerNamesInRoomRequest,
response *api.QueryJoinedHostServerNamesInRoomResponse,
) (err error) {
- joinedHosts, err := f.db.GetJoinedHosts(ctx, request.RoomID)
+ joinedHosts, err := f.db.GetJoinedHostsForRooms(ctx, []string{request.RoomID})
if err != nil {
return
}
-
- response.ServerNames = make([]gomatrixserverlib.ServerName, 0, len(joinedHosts))
- for _, host := range joinedHosts {
- response.ServerNames = append(response.ServerNames, host.ServerName)
- }
-
- // TODO: remove duplicates?
+ response.ServerNames = joinedHosts
return
}