diff --git a/client/control.go b/client/control.go index a90356ff..502e3415 100644 --- a/client/control.go +++ b/client/control.go @@ -17,6 +17,7 @@ package client import ( "context" "crypto/tls" + "github.com/fatedier/frp/utils/log" "io" "net" "runtime/debug" @@ -78,7 +79,7 @@ type Control struct { mu sync.RWMutex ProxyFunc func(err error) - xl *xlog.Logger + xl *xlog.Logger // service context ctx context.Context diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index f634bb23..0bce8ab9 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -260,7 +260,7 @@ func newAddress(addr string, port int) string { } } -func (pxy *XtcpProxy) InWorkConn(conn frpNet.Conn, m *msg.StartWorkConn) { +func (pxy *XtcpProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { xl := pxy.xl defer conn.Close() var natHoleSidMsg msg.NatHoleSid diff --git a/client/service.go b/client/service.go index 9bd1f514..16974235 100644 --- a/client/service.go +++ b/client/service.go @@ -62,7 +62,7 @@ type Service struct { // This is configured by the login response from frps serverUDPPort int - exit uint32 // 0 means not exit + exit uint32 // 0 means not exit // service context ctx context.Context @@ -94,7 +94,6 @@ func NewService(cfg config.ClientCommonConf, pxyCfgs map[string]config.ProxyConf pxyCfgs: pxyCfgs, visitorCfgs: visitorCfgs, exit: 0, - closedCh: make(chan bool), ctx: xlog.NewContext(ctx, xlog.New()), cancel: cancel, } @@ -152,11 +151,13 @@ func (svr *Service) Run(isCmd bool) error { svr.closed = false if isCmd { - svr.closed = <-svr.ctx.Done() + <-svr.ctx.Done() + svr.closed = true log.Info("svr closed") } else { go func() { - svr.closed = <-svr.ctx.Done() + <-svr.ctx.Done() + svr.closed = true log.Info("svr closed") if svr.onClosedListener != nil { diff --git a/utils/net/listener.go b/utils/net/listener.go index d971515e..3b199c83 100644 --- a/utils/net/listener.go +++ b/utils/net/listener.go @@ -22,38 +22,6 @@ import ( "github.com/fatedier/golib/errors" ) -type Listener interface { - Accept() (Conn, error) - Close() error - log.Logger -} - -type LogListener struct { - l net.Listener - net.Listener - log.Logger -} - -func WrapLogListener(l net.Listener) Listener { - return &LogListener{ - l: l, - Listener: l, - Logger: log.NewPrefixLogger(""), - } -} - -func (logL *LogListener) Accept() (Conn, error) { - log.Info("call Accept") - c, err := logL.l.Accept() - log.Info("Accept new conn: ", c) - return WrapConn(c), err -} - -// Close 关闭listener -func (logL *LogListener) Close() error { - return logL.l.Close() -} - // Custom listener type CustomListener struct { acceptCh chan net.Conn diff --git a/utils/net/websocket.go b/utils/net/websocket.go index 86509055..5f6312e3 100644 --- a/utils/net/websocket.go +++ b/utils/net/websocket.go @@ -70,8 +70,8 @@ func (p *WebsocketListener) Accept() (net.Conn, error) { } func (p *WebsocketListener) Close() error { - if p.accept != nil { - close(p.accept) + if p.acceptCh != nil { + close(p.acceptCh) } if p.ln != nil { if err := p.ln.Close(); err != nil {