diff --git a/transport/internet/ws/stopablehttplistener.go b/transport/internet/ws/stopablehttplistener.go index 832b04e2..2523caed 100644 --- a/transport/internet/ws/stopablehttplistener.go +++ b/transport/internet/ws/stopablehttplistener.go @@ -3,23 +3,23 @@ package ws import ( "errors" "net" - "time" ) type StoppableListener struct { - *net.TCPListener //Wrapped listener - stop chan int //Channel used only to indicate listener should shutdown + net.Listener //Wrapped listener + stop chan int //Channel used only to indicate listener should shutdown } func NewStoppableListener(l net.Listener) (*StoppableListener, error) { - tcpL, ok := l.(*net.TCPListener) - - if !ok { - return nil, errors.New("Cannot wrap listener") - } + /* + tcpL, ok := l.(*net.TCPListener) + if !ok { + return nil, errors.New("Cannot wrap listener") + } + */ retval := &StoppableListener{} - retval.TCPListener = tcpL + retval.Listener = l retval.stop = make(chan int) return retval, nil @@ -30,10 +30,7 @@ var StoppedError = errors.New("Listener stopped") func (sl *StoppableListener) Accept() (net.Conn, error) { for { - //Wait up to one second for a new connection - sl.SetDeadline(time.Now().Add(time.Second)) - - newConn, err := sl.TCPListener.Accept() + newConn, err := sl.Listener.Accept() //Check for the channel being closed select {