aboutsummaryrefslogtreecommitdiff
path: root/setup
diff options
context:
space:
mode:
authorRyan W <twentybitdev@gmail.com>2021-09-10 10:05:31 +0100
committerGitHub <noreply@github.com>2021-09-10 10:05:31 +0100
commit1cd4d50181585d664ca7337e3f48ea00a1b1f5c6 (patch)
tree516d497bb181eb03388e692ea4407747e93f12bf /setup
parenta624eab309ee6ee7b3540dfba884a42c9a4f4ad9 (diff)
Added .well-known/matrix/server endpoint (#1988)
* Added .well-known/matrix/server endpoint Signed-off-by: Ryan Whittington <twentybitdev@gmail.com> * Replaced tabs with spaces Signed-off-by: Ryan Whittington <twentybitdev@gmail.com>
Diffstat (limited to 'setup')
-rw-r--r--setup/base.go3
-rw-r--r--setup/config/config_global.go3
-rw-r--r--setup/config/config_test.go1
-rw-r--r--setup/monolith.go4
4 files changed, 9 insertions, 2 deletions
diff --git a/setup/base.go b/setup/base.go
index 1a52d1c2..d4acdbfb 100644
--- a/setup/base.go
+++ b/setup/base.go
@@ -76,6 +76,7 @@ type BaseDendrite struct {
PublicFederationAPIMux *mux.Router
PublicKeyAPIMux *mux.Router
PublicMediaAPIMux *mux.Router
+ PublicWellKnownAPIMux *mux.Router
InternalAPIMux *mux.Router
SynapseAdminMux *mux.Router
UseHTTPAPIs bool
@@ -198,6 +199,7 @@ func NewBaseDendrite(cfg *config.Dendrite, componentName string, useHTTPAPIs boo
PublicFederationAPIMux: mux.NewRouter().SkipClean(true).PathPrefix(httputil.PublicFederationPathPrefix).Subrouter().UseEncodedPath(),
PublicKeyAPIMux: mux.NewRouter().SkipClean(true).PathPrefix(httputil.PublicKeyPathPrefix).Subrouter().UseEncodedPath(),
PublicMediaAPIMux: mux.NewRouter().SkipClean(true).PathPrefix(httputil.PublicMediaPathPrefix).Subrouter().UseEncodedPath(),
+ PublicWellKnownAPIMux: mux.NewRouter().SkipClean(true).PathPrefix(httputil.PublicWellKnownPrefix).Subrouter().UseEncodedPath(),
InternalAPIMux: mux.NewRouter().SkipClean(true).PathPrefix(httputil.InternalPathPrefix).Subrouter().UseEncodedPath(),
SynapseAdminMux: mux.NewRouter().SkipClean(true).PathPrefix("/_synapse/").Subrouter().UseEncodedPath(),
apiHttpClient: &apiClient,
@@ -394,6 +396,7 @@ func (b *BaseDendrite) SetupAndServeHTTP(
}
externalRouter.PathPrefix("/_synapse/").Handler(b.SynapseAdminMux)
externalRouter.PathPrefix(httputil.PublicMediaPathPrefix).Handler(b.PublicMediaAPIMux)
+ externalRouter.PathPrefix(httputil.PublicWellKnownPrefix).Handler(b.PublicWellKnownAPIMux)
if internalAddr != NoListener && internalAddr != externalAddr {
go func() {
diff --git a/setup/config/config_global.go b/setup/config/config_global.go
index 90a92f2b..d5d9f7f5 100644
--- a/setup/config/config_global.go
+++ b/setup/config/config_global.go
@@ -34,6 +34,9 @@ type Global struct {
// Defaults to 24 hours.
KeyValidityPeriod time.Duration `yaml:"key_validity_period"`
+ // The server name to delegate server-server communications to, with optional port
+ WellKnownServerName string `yaml:"well_known_server_name"`
+
// Disables federation. Dendrite will not be able to make any outbound HTTP requests
// to other servers and the federation API will not be exposed.
DisableFederation bool `yaml:"disable_federation"`
diff --git a/setup/config/config_test.go b/setup/config/config_test.go
index 4107b684..5c51a363 100644
--- a/setup/config/config_test.go
+++ b/setup/config/config_test.go
@@ -39,6 +39,7 @@ global:
private_key: matrix_key.pem
key_id: ed25519:auto
key_validity_period: 168h0m0s
+ well_known_server_name: "localhost:443"
trusted_third_party_id_servers:
- matrix.org
- vector.im
diff --git a/setup/monolith.go b/setup/monolith.go
index 5ceb4ed3..a77cdd56 100644
--- a/setup/monolith.go
+++ b/setup/monolith.go
@@ -57,7 +57,7 @@ type Monolith struct {
}
// AddAllPublicRoutes attaches all public paths to the given router
-func (m *Monolith) AddAllPublicRoutes(process *process.ProcessContext, csMux, ssMux, keyMux, mediaMux, synapseMux *mux.Router) {
+func (m *Monolith) AddAllPublicRoutes(process *process.ProcessContext, csMux, ssMux, keyMux, wkMux, mediaMux, synapseMux *mux.Router) {
clientapi.AddPublicRoutes(
csMux, synapseMux, &m.Config.ClientAPI, m.AccountDB,
m.FedClient, m.RoomserverAPI,
@@ -66,7 +66,7 @@ func (m *Monolith) AddAllPublicRoutes(process *process.ProcessContext, csMux, ss
&m.Config.MSCs,
)
federationapi.AddPublicRoutes(
- ssMux, keyMux, &m.Config.FederationAPI, m.UserAPI, m.FedClient,
+ ssMux, keyMux, wkMux, &m.Config.FederationAPI, m.UserAPI, m.FedClient,
m.KeyRing, m.RoomserverAPI, m.FederationSenderAPI,
m.EDUInternalAPI, m.KeyAPI, &m.Config.MSCs, nil,
)