diff options
author | Neil Alexander <neilalexander@users.noreply.github.com> | 2020-08-13 12:16:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-13 12:16:37 +0100 |
commit | 9677a95afc529d1766d487db46965266c6fbaa6a (patch) | |
tree | d98ccf518a3f8386054f93be4138988def9848be /build | |
parent | 820c56c165ec8f0409d23cd151a7ff89fbe09ffa (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.go | 29 |
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") |