mirror of
https://github.com/labstack/echo.git
synced 2025-03-23 21:29:26 +02:00
net.Listener moved into config
This commit is contained in:
parent
c674ebf505
commit
5ed4d06b3a
@ -6,7 +6,8 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/labstack/gommon/log"
|
"github.com/labstack/gommon/log"
|
||||||
"net")
|
"net"
|
||||||
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
// Engine defines the interface for HTTP server.
|
// Engine defines the interface for HTTP server.
|
||||||
@ -17,9 +18,6 @@ type (
|
|||||||
// SetLogger sets the logger for the HTTP server.
|
// SetLogger sets the logger for the HTTP server.
|
||||||
SetLogger(*log.Logger)
|
SetLogger(*log.Logger)
|
||||||
|
|
||||||
// SetListener sets custom listener for the HTTP server.
|
|
||||||
SetListener(net.Listener)
|
|
||||||
|
|
||||||
// Start starts the HTTP server.
|
// Start starts the HTTP server.
|
||||||
Start()
|
Start()
|
||||||
}
|
}
|
||||||
@ -140,6 +138,7 @@ type (
|
|||||||
// Config defines engine configuration.
|
// Config defines engine configuration.
|
||||||
Config struct {
|
Config struct {
|
||||||
Address string // TCP address to listen on.
|
Address string // TCP address to listen on.
|
||||||
|
Listener net.Listener // Custom net.Listener for the HTTP server.
|
||||||
TLSCertfile string // TLS certificate file path.
|
TLSCertfile string // TLS certificate file path.
|
||||||
TLSKeyfile string // TLS key file path.
|
TLSKeyfile string // TLS key file path.
|
||||||
ReadTimeout time.Duration // Maximum duration before timing out read of the request.
|
ReadTimeout time.Duration // Maximum duration before timing out read of the request.
|
||||||
|
@ -9,17 +9,15 @@ import (
|
|||||||
"github.com/labstack/echo/engine"
|
"github.com/labstack/echo/engine"
|
||||||
"github.com/labstack/gommon/log"
|
"github.com/labstack/gommon/log"
|
||||||
"github.com/valyala/fasthttp"
|
"github.com/valyala/fasthttp"
|
||||||
"net"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
// Server implements `engine.Engine`.
|
// Server implements `engine.Engine`.
|
||||||
Server struct {
|
Server struct {
|
||||||
config engine.Config
|
config engine.Config
|
||||||
handler engine.Handler
|
handler engine.Handler
|
||||||
listener net.Listener
|
logger *log.Logger
|
||||||
logger *log.Logger
|
pool *pool
|
||||||
pool *pool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pool struct {
|
pool struct {
|
||||||
@ -91,11 +89,6 @@ func (s *Server) SetHandler(h engine.Handler) {
|
|||||||
s.handler = h
|
s.handler = h
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetHandler implements `engine.Engine#SetListener` method.
|
|
||||||
func (s *Server) SetListener(ln net.Listener) {
|
|
||||||
s.listener = ln
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetLogger implements `engine.Engine#SetLogger` method.
|
// SetLogger implements `engine.Engine#SetLogger` method.
|
||||||
func (s *Server) SetLogger(l *log.Logger) {
|
func (s *Server) SetLogger(l *log.Logger) {
|
||||||
s.logger = l
|
s.logger = l
|
||||||
@ -131,7 +124,7 @@ func (s *Server) Start() {
|
|||||||
certfile := s.config.TLSCertfile
|
certfile := s.config.TLSCertfile
|
||||||
keyfile := s.config.TLSKeyfile
|
keyfile := s.config.TLSKeyfile
|
||||||
|
|
||||||
if nil == s.listener {
|
if nil == s.config.Listener {
|
||||||
s.startDefaultListener(addr, certfile, keyfile, handler)
|
s.startDefaultListener(addr, certfile, keyfile, handler)
|
||||||
} else {
|
} else {
|
||||||
s.startCustomListener(certfile, keyfile, handler)
|
s.startCustomListener(certfile, keyfile, handler)
|
||||||
@ -148,9 +141,9 @@ func (s *Server) startDefaultListener(addr, certfile, keyfile string, handler fu
|
|||||||
|
|
||||||
func (s *Server) startCustomListener(certfile, keyfile string, handler func(c *fasthttp.RequestCtx)) {
|
func (s *Server) startCustomListener(certfile, keyfile string, handler func(c *fasthttp.RequestCtx)) {
|
||||||
if certfile != "" && keyfile != "" {
|
if certfile != "" && keyfile != "" {
|
||||||
s.logger.Fatal(fasthttp.ServeTLS(s.listener, certfile, keyfile, handler))
|
s.logger.Fatal(fasthttp.ServeTLS(s.config.Listener, certfile, keyfile, handler))
|
||||||
} else {
|
} else {
|
||||||
s.logger.Fatal(fasthttp.Serve(s.listener, handler))
|
s.logger.Fatal(fasthttp.Serve(s.config.Listener, handler))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,18 +7,16 @@ import (
|
|||||||
"github.com/labstack/echo"
|
"github.com/labstack/echo"
|
||||||
"github.com/labstack/echo/engine"
|
"github.com/labstack/echo/engine"
|
||||||
"github.com/labstack/gommon/log"
|
"github.com/labstack/gommon/log"
|
||||||
"net"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
// Server implements `engine.Engine`.
|
// Server implements `engine.Engine`.
|
||||||
Server struct {
|
Server struct {
|
||||||
*http.Server
|
*http.Server
|
||||||
config engine.Config
|
config engine.Config
|
||||||
handler engine.Handler
|
handler engine.Handler
|
||||||
listener net.Listener
|
logger *log.Logger
|
||||||
logger *log.Logger
|
pool *pool
|
||||||
pool *pool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pool struct {
|
pool struct {
|
||||||
@ -87,11 +85,6 @@ func (s *Server) SetHandler(h engine.Handler) {
|
|||||||
s.handler = h
|
s.handler = h
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetHandler implements `engine.Engine#SetListener` method.
|
|
||||||
func (s *Server) SetListener(ln net.Listener) {
|
|
||||||
s.listener = ln
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetLogger implements `engine.Engine#SetLogger` method.
|
// SetLogger implements `engine.Engine#SetLogger` method.
|
||||||
func (s *Server) SetLogger(l *log.Logger) {
|
func (s *Server) SetLogger(l *log.Logger) {
|
||||||
s.logger = l
|
s.logger = l
|
||||||
@ -102,7 +95,7 @@ func (s *Server) Start() {
|
|||||||
certfile := s.config.TLSCertfile
|
certfile := s.config.TLSCertfile
|
||||||
keyfile := s.config.TLSKeyfile
|
keyfile := s.config.TLSKeyfile
|
||||||
|
|
||||||
if nil == s.listener {
|
if nil == s.config.Listener {
|
||||||
s.startDefaultListener(certfile, keyfile)
|
s.startDefaultListener(certfile, keyfile)
|
||||||
} else {
|
} else {
|
||||||
s.startCustomListener()
|
s.startCustomListener()
|
||||||
@ -118,7 +111,7 @@ func (s *Server) startDefaultListener(certfile, keyfile string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) startCustomListener() {
|
func (s *Server) startCustomListener() {
|
||||||
s.logger.Fatal(s.Serve(s.listener))
|
s.logger.Fatal(s.Serve(s.config.Listener))
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServeHTTP implements `http.Handler` interface.
|
// ServeHTTP implements `http.Handler` interface.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user