|
|
|
@ -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() |
|
|
|
|
} |
|
|
|
|