mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-21 04:53:14 -06:00
Add internal http fedapi for adding relay servers to a node
This commit is contained in:
parent
e0e4225a46
commit
012bdf735e
|
|
@ -72,12 +72,19 @@ type RoomserverFederationAPI interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
type P2PFederationAPI interface {
|
type P2PFederationAPI interface {
|
||||||
// Relay Server sync api used in the pinecone demos.
|
// Get the relay servers associated for the given server.
|
||||||
P2PQueryRelayServers(
|
P2PQueryRelayServers(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
request *P2PQueryRelayServersRequest,
|
request *P2PQueryRelayServersRequest,
|
||||||
response *P2PQueryRelayServersResponse,
|
response *P2PQueryRelayServersResponse,
|
||||||
) error
|
) error
|
||||||
|
|
||||||
|
// Add relay server associations to the given server.
|
||||||
|
P2PAddRelayServers(
|
||||||
|
ctx context.Context,
|
||||||
|
request *P2PAddRelayServersRequest,
|
||||||
|
response *P2PAddRelayServersResponse,
|
||||||
|
) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// KeyserverFederationAPI is a subset of gomatrixserverlib.FederationClient functions which the keyserver
|
// KeyserverFederationAPI is a subset of gomatrixserverlib.FederationClient functions which the keyserver
|
||||||
|
|
@ -256,3 +263,11 @@ type P2PQueryRelayServersRequest struct {
|
||||||
type P2PQueryRelayServersResponse struct {
|
type P2PQueryRelayServersResponse struct {
|
||||||
RelayServers []gomatrixserverlib.ServerName
|
RelayServers []gomatrixserverlib.ServerName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type P2PAddRelayServersRequest struct {
|
||||||
|
Server gomatrixserverlib.ServerName
|
||||||
|
RelayServers []gomatrixserverlib.ServerName
|
||||||
|
}
|
||||||
|
|
||||||
|
type P2PAddRelayServersResponse struct {
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -840,6 +840,21 @@ func (r *FederationInternalAPI) P2PQueryRelayServers(
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// P2PAddRelayServers implements api.FederationInternalAPI
|
||||||
|
func (r *FederationInternalAPI) P2PAddRelayServers(
|
||||||
|
ctx context.Context,
|
||||||
|
request *api.P2PAddRelayServersRequest,
|
||||||
|
response *api.P2PAddRelayServersResponse,
|
||||||
|
) error {
|
||||||
|
logrus.Infof("Adding relay servers for: %s", request.Server)
|
||||||
|
err := r.db.P2PAddRelayServersForServer(ctx, request.Server, request.RelayServers)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (r *FederationInternalAPI) shouldAttemptDirectFederation(
|
func (r *FederationInternalAPI) shouldAttemptDirectFederation(
|
||||||
destination gomatrixserverlib.ServerName,
|
destination gomatrixserverlib.ServerName,
|
||||||
) bool {
|
) bool {
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ const (
|
||||||
FederationAPIPerformBroadcastEDUPath = "/federationapi/performBroadcastEDU"
|
FederationAPIPerformBroadcastEDUPath = "/federationapi/performBroadcastEDU"
|
||||||
FederationAPIPerformWakeupServers = "/federationapi/performWakeupServers"
|
FederationAPIPerformWakeupServers = "/federationapi/performWakeupServers"
|
||||||
FederationAPIQueryRelayServers = "/federationapi/queryRelayServers"
|
FederationAPIQueryRelayServers = "/federationapi/queryRelayServers"
|
||||||
|
FederationAPIAddRelayServers = "/federationapi/addRelayServers"
|
||||||
|
|
||||||
FederationAPIGetUserDevicesPath = "/federationapi/client/getUserDevices"
|
FederationAPIGetUserDevicesPath = "/federationapi/client/getUserDevices"
|
||||||
FederationAPIClaimKeysPath = "/federationapi/client/claimKeys"
|
FederationAPIClaimKeysPath = "/federationapi/client/claimKeys"
|
||||||
|
|
@ -522,3 +523,14 @@ func (h *httpFederationInternalAPI) P2PQueryRelayServers(
|
||||||
h.httpClient, ctx, request, response,
|
h.httpClient, ctx, request, response,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *httpFederationInternalAPI) P2PAddRelayServers(
|
||||||
|
ctx context.Context,
|
||||||
|
request *api.P2PAddRelayServersRequest,
|
||||||
|
response *api.P2PAddRelayServersResponse,
|
||||||
|
) error {
|
||||||
|
return httputil.CallInternalRPCAPI(
|
||||||
|
"AddRelayServers", h.federationAPIURL+FederationAPIAddRelayServers,
|
||||||
|
h.httpClient, ctx, request, response,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue