I found an example to limit the number of connections for a listener:
import "golang.org/x/net/netutil"//Within net/netutil/listen.go//func
LimitListener(l net.Listener, n int) net.Listener
connectionCount := 2
l, err := net.Listen("tcp", ":8000")if err != nil {
log.Fatalf("Listen: %v", err)
}
defer l.Close()
l = netutil.LimitListener(l, connectionCount)
log.Fatal(http.Serve(l, nil))
BUT I'm not using net.Listen() and http.Serve(). I'm using the
ListenAndServeTLS().
A closer look into ListenAndServeTLS:
func (srv *Server) ListenAndServeTLS(certFile, keyFile string) error
{
...
tlsListener := tls.NewListener(tcpKeepAliveListener{ln.(*net.TCPListener)},
config)
return srv.Serve(tlsListener)
}
How can I fetch the srv's tlsListener and then apply the
netutil.LimitListener()?
ie.
netutil.LimitListener(srv.tlsListener, connectionCount)?
I'm doing my best not to tweak/recompile golang's sources to introduce this
limitlistener feature to a tls server.
I was hoping someone had a trick to avoid that.
Thank you.
David Marceau
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.