1
0
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:
Marcin Tojek 2016-03-17 18:21:16 +01:00
parent c674ebf505
commit 5ed4d06b3a
3 changed files with 16 additions and 31 deletions

View File

@ -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.

View File

@ -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))
} }
} }

View File

@ -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.