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 /cmd/dendrite-demo-yggdrasil/main.go | |
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 'cmd/dendrite-demo-yggdrasil/main.go')
-rw-r--r-- | cmd/dendrite-demo-yggdrasil/main.go | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/cmd/dendrite-demo-yggdrasil/main.go b/cmd/dendrite-demo-yggdrasil/main.go index 33ed1542..43bbe94f 100644 --- a/cmd/dendrite-demo-yggdrasil/main.go +++ b/cmd/dendrite-demo-yggdrasil/main.go @@ -23,6 +23,7 @@ import ( "net/http" "time" + "github.com/gorilla/mux" "github.com/matrix-org/dendrite/appservice" "github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/embed" "github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/signing" @@ -132,7 +133,7 @@ func main() { rsComponent.SetFederationSenderAPI(fsAPI) - embed.Embed(base.BaseMux, *instancePort, "Yggdrasil Demo") + embed.Embed(base.PublicClientAPIMux, *instancePort, "Yggdrasil Demo") monolith := setup.Monolith{ Config: base.Cfg, @@ -155,16 +156,22 @@ func main() { 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. httpServer := &http.Server{ Addr: ":0", @@ -175,7 +182,7 @@ func main() { BaseContext: func(_ net.Listener) context.Context { return context.Background() }, - Handler: base.BaseMux, + Handler: yggRouter, } go func() { @@ -185,7 +192,7 @@ func main() { go func() { httpBindAddr := fmt.Sprintf(":%d", *instancePort) logrus.Info("Listening on ", httpBindAddr) - logrus.Fatal(http.ListenAndServe(httpBindAddr, base.BaseMux)) + logrus.Fatal(http.ListenAndServe(httpBindAddr, httpRouter)) }() go func() { logrus.Info("Sending wake-up message to known nodes") |