NoListener

This commit is contained in:
Neil Alexander 2020-10-07 16:34:45 +01:00
parent bcef86b64b
commit de54195d56
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
9 changed files with 36 additions and 35 deletions

View file

@ -31,8 +31,8 @@ func main() {
appservice.AddInternalRoutes(base.InternalAPIMux, intAPI) appservice.AddInternalRoutes(base.InternalAPIMux, intAPI)
base.SetupAndServeHTTP( base.SetupAndServeHTTP(
base.Cfg.AppServiceAPI.InternalAPI.Listen, base.Cfg.AppServiceAPI.InternalAPI.Listen, // internal listener
setup.NoExternalListener, setup.NoListener, // external listener
nil, nil, nil, nil,
) )
} }

View file

@ -34,8 +34,8 @@ func main() {
eduserver.AddInternalRoutes(base.InternalAPIMux, intAPI) eduserver.AddInternalRoutes(base.InternalAPIMux, intAPI)
base.SetupAndServeHTTP( base.SetupAndServeHTTP(
base.Cfg.EDUServer.InternalAPI.Listen, base.Cfg.EDUServer.InternalAPI.Listen, // internal listener
setup.NoExternalListener, setup.NoListener, // external listener
nil, nil, nil, nil,
) )
} }

View file

@ -36,8 +36,8 @@ func main() {
federationsender.AddInternalRoutes(base.InternalAPIMux, fsAPI) federationsender.AddInternalRoutes(base.InternalAPIMux, fsAPI)
base.SetupAndServeHTTP( base.SetupAndServeHTTP(
base.Cfg.FederationSender.InternalAPI.Listen, base.Cfg.FederationSender.InternalAPI.Listen, // internal listener
setup.NoExternalListener, setup.NoListener, // external listener
nil, nil, nil, nil,
) )
} }

View file

@ -30,8 +30,8 @@ func main() {
keyserver.AddInternalRoutes(base.InternalAPIMux, intAPI) keyserver.AddInternalRoutes(base.InternalAPIMux, intAPI)
base.SetupAndServeHTTP( base.SetupAndServeHTTP(
base.Cfg.KeyServer.InternalAPI.Listen, base.Cfg.KeyServer.InternalAPI.Listen, // internal listener
setup.NoExternalListener, setup.NoListener, // external listener
nil, nil, nil, nil,
) )
} }

View file

@ -162,7 +162,7 @@ func main() {
if *certFile != "" && *keyFile != "" { if *certFile != "" && *keyFile != "" {
go func() { go func() {
base.SetupAndServeHTTP( base.SetupAndServeHTTP(
setup.NoInternalListener, // internal API setup.NoListener, // internal API
httpsAddr, // external API httpsAddr, // external API
certFile, keyFile, // TLS settings certFile, keyFile, // TLS settings
) )

View file

@ -33,8 +33,8 @@ func main() {
roomserver.AddInternalRoutes(base.InternalAPIMux, rsAPI) roomserver.AddInternalRoutes(base.InternalAPIMux, rsAPI)
base.SetupAndServeHTTP( base.SetupAndServeHTTP(
base.Cfg.RoomServer.InternalAPI.Listen, base.Cfg.RoomServer.InternalAPI.Listen, // internal listener
setup.NoExternalListener, setup.NoListener, // external listener
nil, nil, nil, nil,
) )
} }

View file

@ -30,8 +30,8 @@ func main() {
serverkeyapi.AddInternalRoutes(base.InternalAPIMux, intAPI, base.Caches) serverkeyapi.AddInternalRoutes(base.InternalAPIMux, intAPI, base.Caches)
base.SetupAndServeHTTP( base.SetupAndServeHTTP(
base.Cfg.ServerKeyAPI.InternalAPI.Listen, base.Cfg.ServerKeyAPI.InternalAPI.Listen, // internal listener
setup.NoExternalListener, setup.NoListener, // external listener
nil, nil, nil, nil,
) )
} }

View file

@ -31,8 +31,8 @@ func main() {
userapi.AddInternalRoutes(base.InternalAPIMux, userAPI) userapi.AddInternalRoutes(base.InternalAPIMux, userAPI)
base.SetupAndServeHTTP( base.SetupAndServeHTTP(
base.Cfg.UserAPI.InternalAPI.Listen, base.Cfg.UserAPI.InternalAPI.Listen, // internal listener
setup.NoExternalListener, setup.NoListener, // external listener
nil, nil, nil, nil,
) )
} }

View file

@ -80,8 +80,7 @@ type BaseDendrite struct {
const HTTPServerTimeout = time.Minute * 5 const HTTPServerTimeout = time.Minute * 5
const HTTPClientTimeout = time.Second * 30 const HTTPClientTimeout = time.Second * 30
const NoInternalListener = "" const NoListener = ""
const NoExternalListener = ""
// NewBaseDendrite creates a new instance to be used by a component. // NewBaseDendrite creates a new instance to be used by a component.
// The componentName is used for logging purposes, and should be a friendly name // The componentName is used for logging purposes, and should be a friendly name
@ -283,7 +282,7 @@ func (b *BaseDendrite) SetupAndServeHTTP(
} }
internalServ := externalServ internalServ := externalServ
if internalAddr != NoInternalListener && externalAddr != internalAddr { if internalAddr != NoListener && externalAddr != internalAddr {
internalRouter = mux.NewRouter().SkipClean(true).UseEncodedPath() internalRouter = mux.NewRouter().SkipClean(true).UseEncodedPath()
internalServ = &http.Server{ internalServ = &http.Server{
Addr: string(internalAddr), Addr: string(internalAddr),
@ -301,9 +300,9 @@ func (b *BaseDendrite) SetupAndServeHTTP(
externalRouter.PathPrefix(httputil.PublicFederationPathPrefix).Handler(b.PublicFederationAPIMux) externalRouter.PathPrefix(httputil.PublicFederationPathPrefix).Handler(b.PublicFederationAPIMux)
externalRouter.PathPrefix(httputil.PublicMediaPathPrefix).Handler(b.PublicMediaAPIMux) externalRouter.PathPrefix(httputil.PublicMediaPathPrefix).Handler(b.PublicMediaAPIMux)
if internalAddr != NoInternalListener && internalAddr != externalAddr { if internalAddr != NoListener && internalAddr != externalAddr {
go func() { go func() {
logrus.Infof("Starting %s listener on %s", b.componentName, internalServ.Addr) logrus.Infof("Starting internal %s listener on %s", b.componentName, internalServ.Addr)
if certFile != nil && keyFile != nil { if certFile != nil && keyFile != nil {
if err := internalServ.ListenAndServeTLS(*certFile, *keyFile); err != nil { if err := internalServ.ListenAndServeTLS(*certFile, *keyFile); err != nil {
logrus.WithError(err).Fatal("failed to serve HTTPS") logrus.WithError(err).Fatal("failed to serve HTTPS")
@ -313,12 +312,13 @@ func (b *BaseDendrite) SetupAndServeHTTP(
logrus.WithError(err).Fatal("failed to serve HTTP") logrus.WithError(err).Fatal("failed to serve HTTP")
} }
} }
logrus.Infof("Stopped %s listener on %s", b.componentName, internalServ.Addr) logrus.Infof("Stopped internal %s listener on %s", b.componentName, internalServ.Addr)
}() }()
} }
if externalAddr != NoListener {
go func() { go func() {
logrus.Infof("Starting %s listener on %s", b.componentName, externalServ.Addr) logrus.Infof("Starting external %s listener on %s", b.componentName, externalServ.Addr)
if certFile != nil && keyFile != nil { if certFile != nil && keyFile != nil {
if err := externalServ.ListenAndServeTLS(*certFile, *keyFile); err != nil { if err := externalServ.ListenAndServeTLS(*certFile, *keyFile); err != nil {
logrus.WithError(err).Fatal("failed to serve HTTPS") logrus.WithError(err).Fatal("failed to serve HTTPS")
@ -328,8 +328,9 @@ func (b *BaseDendrite) SetupAndServeHTTP(
logrus.WithError(err).Fatal("failed to serve HTTP") logrus.WithError(err).Fatal("failed to serve HTTP")
} }
} }
logrus.Infof("Stopped %s listener on %s", b.componentName, externalServ.Addr) logrus.Infof("Stopped external %s listener on %s", b.componentName, externalServ.Addr)
}() }()
}
select {} select {}
} }