mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-09-16 00:48:14 -04:00
30 lines
491 B
Go
30 lines
491 B
Go
package ws
|
|
|
|
import (
|
|
"errors"
|
|
"net"
|
|
)
|
|
|
|
type StoppableListener struct {
|
|
net.Listener //Wrapped listener
|
|
}
|
|
|
|
func NewStoppableListener(l net.Listener) (*StoppableListener, error) {
|
|
|
|
retval := &StoppableListener{}
|
|
retval.Listener = l
|
|
return retval, nil
|
|
}
|
|
|
|
var StoppedError = errors.New("Listener stopped")
|
|
|
|
func (sl *StoppableListener) Accept() (net.Conn, error) {
|
|
newConn, err := sl.Listener.Accept()
|
|
return newConn, err
|
|
|
|
}
|
|
|
|
func (sl *StoppableListener) Stop() {
|
|
sl.Listener.Close()
|
|
}
|