From ca5795cef810c85f101eb0aa3efe3ec8d756490b Mon Sep 17 00:00:00 2001 From: Alexander Morozov Date: Wed, 25 Nov 2015 11:05:31 -0800 Subject: [PATCH] Remove usage of listenbuffer package It actually adds nothing to queuing requests. Signed-off-by: Alexander Morozov --- api/server/server.go | 18 ++---------------- api/server/server_unix.go | 2 +- docker/daemon.go | 4 +--- pkg/sockets/tcp_socket.go | 8 ++------ pkg/sockets/unix_socket.go | 7 ++----- 5 files changed, 8 insertions(+), 31 deletions(-) diff --git a/api/server/server.go b/api/server/server.go index 2fe1d536f..d078ca522 100644 --- a/api/server/server.go +++ b/api/server/server.go @@ -39,7 +39,6 @@ type Config struct { // Server contains instance details for the server type Server struct { cfg *Config - start chan struct{} servers []*HTTPServer routers []router.Router } @@ -54,8 +53,7 @@ type Addr struct { // It allocates resources which will be needed for ServeAPI(ports, unix-sockets). func New(cfg *Config) (*Server, error) { s := &Server{ - cfg: cfg, - start: make(chan struct{}), + cfg: cfg, } for _, addr := range cfg.Addrs { srv, err := s.newServer(addr.Proto, addr.Addr) @@ -132,7 +130,7 @@ func (s *Server) initTCPSocket(addr string) (l net.Listener, err error) { if s.cfg.TLSConfig == nil || s.cfg.TLSConfig.ClientAuth != tls.RequireAndVerifyClientCert { logrus.Warn("/!\\ DON'T BIND ON ANY IP ADDRESS WITHOUT setting -tlsverify IF YOU DON'T KNOW WHAT YOU'RE DOING /!\\") } - if l, err = sockets.NewTCPSocket(addr, s.cfg.TLSConfig, s.start); err != nil { + if l, err = sockets.NewTCPSocket(addr, s.cfg.TLSConfig); err != nil { return nil, err } if err := allocateDaemonPort(addr); err != nil { @@ -202,15 +200,3 @@ func (s *Server) CreateMux() *mux.Router { return m } - -// AcceptConnections allows clients to connect to the API server. -// Referenced Daemon is notified about this server, and waits for the -// daemon acknowledgement before the incoming connections are accepted. -func (s *Server) AcceptConnections() { - // close the lock so the listeners start accepting connections - select { - case <-s.start: - default: - close(s.start) - } -} diff --git a/api/server/server_unix.go b/api/server/server_unix.go index 60fd23af6..9142f161e 100644 --- a/api/server/server_unix.go +++ b/api/server/server_unix.go @@ -36,7 +36,7 @@ func (s *Server) newServer(proto, addr string) ([]*HTTPServer, error) { } ls = append(ls, l) case "unix": - l, err := sockets.NewUnixSocket(addr, s.cfg.SocketGroup, s.start) + l, err := sockets.NewUnixSocket(addr, s.cfg.SocketGroup) if err != nil { return nil, err } diff --git a/docker/daemon.go b/docker/daemon.go index f32f28d49..a237d83fe 100644 --- a/docker/daemon.go +++ b/docker/daemon.go @@ -268,10 +268,8 @@ func (cli *DaemonCli) CmdDaemon(args ...string) error { } }) - // after the daemon is done setting up we can tell the api to start - // accepting connections with specified daemon + // after the daemon is done setting up we can notify systemd api notifySystem() - api.AcceptConnections() // Daemon is fully initialized and handling API traffic // Wait for serve API to complete diff --git a/pkg/sockets/tcp_socket.go b/pkg/sockets/tcp_socket.go index 9f8319dc3..6665a3bde 100644 --- a/pkg/sockets/tcp_socket.go +++ b/pkg/sockets/tcp_socket.go @@ -7,17 +7,13 @@ import ( "net" "net/http" "time" - - "github.com/docker/docker/pkg/listenbuffer" ) // NewTCPSocket creates a TCP socket listener with the specified address and // and the specified tls configuration. If TLSConfig is set, will encapsulate the // TCP listener inside a TLS one. -// The channel passed is used to activate the listenbuffer when the caller is ready -// to accept connections. -func NewTCPSocket(addr string, tlsConfig *tls.Config, activate <-chan struct{}) (net.Listener, error) { - l, err := listenbuffer.NewListenBuffer("tcp", addr, activate) +func NewTCPSocket(addr string, tlsConfig *tls.Config) (net.Listener, error) { + l, err := net.Listen("tcp", addr) if err != nil { return nil, err } diff --git a/pkg/sockets/unix_socket.go b/pkg/sockets/unix_socket.go index a69c28b04..c10acedca 100644 --- a/pkg/sockets/unix_socket.go +++ b/pkg/sockets/unix_socket.go @@ -10,20 +10,17 @@ import ( "syscall" "github.com/Sirupsen/logrus" - "github.com/docker/docker/pkg/listenbuffer" "github.com/opencontainers/runc/libcontainer/user" ) // NewUnixSocket creates a unix socket with the specified path and group. -// The channel passed is used to activate the listenbuffer when the caller is ready -// to accept connections. -func NewUnixSocket(path, group string, activate <-chan struct{}) (net.Listener, error) { +func NewUnixSocket(path, group string) (net.Listener, error) { if err := syscall.Unlink(path); err != nil && !os.IsNotExist(err) { return nil, err } mask := syscall.Umask(0777) defer syscall.Umask(mask) - l, err := listenbuffer.NewListenBuffer("unix", path, activate) + l, err := net.Listen("unix", path) if err != nil { return nil, err }