mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
refactor(listener) refactor listener related code
Remove duplicate code around creating http listener. Start to listen incoming http requests just before serving them.
This commit is contained in:
@@ -3,9 +3,35 @@ package server
|
||||
import (
|
||||
"crypto/tls"
|
||||
"net"
|
||||
|
||||
"github.com/coreos/etcd/log"
|
||||
)
|
||||
|
||||
func NewListener(addr string) (net.Listener, error) {
|
||||
// NewListener creates a net.Listener
|
||||
// If the given scheme is "https", it will generate TLS configuration based on TLSInfo.
|
||||
// If any error happens, this function will call log.Fatal
|
||||
func NewListener(scheme, addr string, tlsInfo *TLSInfo) net.Listener {
|
||||
if scheme == "https" {
|
||||
cfg, err := tlsInfo.ServerConfig()
|
||||
if err != nil {
|
||||
log.Fatal("TLS info error: ", err)
|
||||
}
|
||||
|
||||
l, err := newTLSListener(addr, cfg)
|
||||
if err != nil {
|
||||
log.Fatal("Failed to create TLS listener: ", err)
|
||||
}
|
||||
return l
|
||||
}
|
||||
|
||||
l, err := newListener(addr)
|
||||
if err != nil {
|
||||
log.Fatal("Failed to create listener: ", err)
|
||||
}
|
||||
return l
|
||||
}
|
||||
|
||||
func newListener(addr string) (net.Listener, error) {
|
||||
if addr == "" {
|
||||
addr = ":http"
|
||||
}
|
||||
@@ -16,7 +42,7 @@ func NewListener(addr string) (net.Listener, error) {
|
||||
return l, nil
|
||||
}
|
||||
|
||||
func NewTLSListener(addr string, cfg *tls.Config) (net.Listener, error) {
|
||||
func newTLSListener(addr string, cfg *tls.Config) (net.Listener, error) {
|
||||
if addr == "" {
|
||||
addr = ":https"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user