aboutsummaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2020-08-13 12:16:37 +0100
committerGitHub <noreply@github.com>2020-08-13 12:16:37 +0100
commit9677a95afc529d1766d487db46965266c6fbaa6a (patch)
treed98ccf518a3f8386054f93be4138988def9848be /build
parent820c56c165ec8f0409d23cd151a7ff89fbe09ffa (diff)
API setup refactoring (#1266)
* Start HTTP endpoint refactoring * Update SetupAndServeHTTP * Fix builds * Don't set up external listener if no address configured * TLS HTTP setup * Break apart client/federation/key/media muxes * Tweaks * Fix P2P demos * Fix media API routing * Review comments @Kegsay * Update sample config * Fix gobind build * Fix External -> Public in federation API test
Diffstat (limited to 'build')
-rw-r--r--build/gobind/monolith.go29
1 files changed, 18 insertions, 11 deletions
diff --git a/build/gobind/monolith.go b/build/gobind/monolith.go
index e4373490..2ea09f63 100644
--- a/build/gobind/monolith.go
+++ b/build/gobind/monolith.go
@@ -8,6 +8,7 @@ import (
"net/http"
"time"
+ "github.com/gorilla/mux"
"github.com/matrix-org/dendrite/appservice"
"github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/signing"
"github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/yggconn"
@@ -170,16 +171,22 @@ func (m *DendriteMonolith) Start() {
ygg, fsAPI, federation,
),
}
- monolith.AddAllPublicRoutes(base.PublicAPIMux)
-
- httputil.SetupHTTPAPI(
- base.BaseMux,
- base.PublicAPIMux,
- base.InternalAPIMux,
- &cfg.Global,
- base.UseHTTPAPIs,
+ monolith.AddAllPublicRoutes(
+ base.PublicClientAPIMux,
+ base.PublicFederationAPIMux,
+ base.PublicKeyAPIMux,
+ base.PublicMediaAPIMux,
)
+ httpRouter := mux.NewRouter()
+ httpRouter.PathPrefix(httputil.InternalPathPrefix).Handler(base.InternalAPIMux)
+ httpRouter.PathPrefix(httputil.PublicClientPathPrefix).Handler(base.PublicClientAPIMux)
+ httpRouter.PathPrefix(httputil.PublicMediaPathPrefix).Handler(base.PublicMediaAPIMux)
+
+ yggRouter := mux.NewRouter()
+ yggRouter.PathPrefix(httputil.PublicFederationPathPrefix).Handler(base.PublicFederationAPIMux)
+ yggRouter.PathPrefix(httputil.PublicMediaPathPrefix).Handler(base.PublicMediaAPIMux)
+
// Build both ends of a HTTP multiplex.
m.httpServer = &http.Server{
Addr: ":0",
@@ -190,7 +197,7 @@ func (m *DendriteMonolith) Start() {
BaseContext: func(_ net.Listener) context.Context {
return context.Background()
},
- Handler: base.BaseMux,
+ Handler: yggRouter,
}
go func() {
@@ -198,8 +205,8 @@ func (m *DendriteMonolith) Start() {
m.logger.Fatal(m.httpServer.Serve(ygg))
}()
go func() {
- m.logger.Info("Listening on ", m.BaseURL())
- m.logger.Fatal(m.httpServer.Serve(m.listener))
+ logrus.Info("Listening on ", m.listener.Addr())
+ logrus.Fatal(http.Serve(m.listener, httpRouter))
}()
go func() {
logrus.Info("Sending wake-up message to known nodes")