mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-12 01:13:10 -06:00
Implement same behaviour as synapse
This commit is contained in:
parent
58767542e7
commit
0e356e2d27
|
|
@ -122,15 +122,28 @@ func createInviteFrom3PIDInvite(
|
||||||
|
|
||||||
if !queryRes.RoomExists {
|
if !queryRes.RoomExists {
|
||||||
// Use federation to auth the event
|
// Use federation to auth the event
|
||||||
var remoteServer gomatrixserverlib.ServerName
|
var remoteServers []gomatrixserverlib.ServerName
|
||||||
_, remoteServer, err = gomatrixserverlib.SplitID('!', inv.RoomID)
|
_, remoteServers[0], err = gomatrixserverlib.SplitID('@', inv.Sender)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
err = federation.ExchangeThirdPartyInvite(remoteServer, *builder)
|
// Fallback to the room's server if the sender's domain is the same as
|
||||||
|
// the current server's
|
||||||
|
_, remoteServers[1], err = gomatrixserverlib.SplitID('!', inv.RoomID)
|
||||||
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, server := range remoteServers {
|
||||||
|
if server == cfg.Matrix.ServerName {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
err = federation.ExchangeThirdPartyInvite(server, *builder)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Auth the event locally
|
// Auth the event locally
|
||||||
builder.Depth = queryRes.Depth
|
builder.Depth = queryRes.Depth
|
||||||
builder.PrevEvents = queryRes.LatestEvents
|
builder.PrevEvents = queryRes.LatestEvents
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue