mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-12-30 05:56:54 -05:00
actually close tcp and udp servers
This commit is contained in:
parent
50007a9790
commit
f19da2058a
@ -12,6 +12,7 @@ type Server struct {
|
||||
Port v2net.Port
|
||||
MsgProcessor func(msg []byte) []byte
|
||||
accepting bool
|
||||
listener *net.TCPListener
|
||||
}
|
||||
|
||||
func (server *Server) Start() (v2net.Destination, error) {
|
||||
@ -23,6 +24,7 @@ func (server *Server) Start() (v2net.Destination, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
server.listener = listener
|
||||
go server.acceptConnections(listener)
|
||||
localAddr := listener.Addr().(*net.TCPAddr)
|
||||
return v2net.TCPDestination(v2net.IPAddress(localAddr.IP), v2net.Port(localAddr.Port)), nil
|
||||
@ -55,5 +57,6 @@ func (server *Server) handleConnection(conn net.Conn) {
|
||||
}
|
||||
|
||||
func (this *Server) Close() {
|
||||
this.accepting = true
|
||||
this.accepting = false
|
||||
this.listener.Close()
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ type Server struct {
|
||||
Port v2net.Port
|
||||
MsgProcessor func(msg []byte) []byte
|
||||
accepting bool
|
||||
conn *net.UDPConn
|
||||
}
|
||||
|
||||
func (server *Server) Start() (v2net.Destination, error) {
|
||||
@ -22,6 +23,7 @@ func (server *Server) Start() (v2net.Destination, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
server.conn = conn
|
||||
go server.handleConnection(conn)
|
||||
localAddr := conn.LocalAddr().(*net.UDPAddr)
|
||||
return v2net.UDPDestination(v2net.IPAddress(localAddr.IP), v2net.Port(localAddr.Port)), nil
|
||||
@ -45,4 +47,5 @@ func (server *Server) handleConnection(conn *net.UDPConn) {
|
||||
|
||||
func (server *Server) Close() {
|
||||
server.accepting = false
|
||||
server.conn.Close()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user