From fc6f804865937fccb211f4b46da0c103f2416108 Mon Sep 17 00:00:00 2001 From: Anis Elleuch Date: Mon, 23 Jan 2017 18:55:34 +0100 Subject: [PATCH] server-mux: Keep listening after Accept() err (#3613) Accept() can return errors like: `too many open files`, no need to totally quit listening in this case. --- cmd/server-mux.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cmd/server-mux.go b/cmd/server-mux.go index e98741bb6..16d525d28 100644 --- a/cmd/server-mux.go +++ b/cmd/server-mux.go @@ -191,20 +191,20 @@ func newListenerMux(listener net.Listener, config *tls.Config) *ListenerMux { } // Start listening, wrap connections with tls when needed go func() { + // Extract tcp listener. + tcpListener, ok := l.Listener.(*net.TCPListener) + if !ok { + l.acceptResCh <- ListenerMuxAcceptRes{err: errInvalidArgument} + return + } + // Loop for accepting new connections for { - // Extract tcp listener. - tcpListener, ok := l.Listener.(*net.TCPListener) - if !ok { - l.acceptResCh <- ListenerMuxAcceptRes{err: errInvalidArgument} - return - } - // Use accept TCP method to receive the connection. conn, err := tcpListener.AcceptTCP() if err != nil { l.acceptResCh <- ListenerMuxAcceptRes{err: err} - return + continue } // Enable Read timeout