From 6f2571980c2688cbfd5ed0bf2a0cbf753d3352c6 Mon Sep 17 00:00:00 2001 From: ChristLZS <50512605+ChristLZS@users.noreply.github.com> Date: Tue, 12 Jul 2022 18:43:58 +0800 Subject: [PATCH 1/2] [client] Fixed a bug where service loops reconnection after disconnection.service is shut down and can not exit goroutine (#3012) Co-authored-by: lizhisheng --- client/service.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/service.go b/client/service.go index 30bd3f8f..3a08d4e1 100644 --- a/client/service.go +++ b/client/service.go @@ -198,6 +198,10 @@ func (svr *Service) keepControllerWorking() { } for { + if atomic.LoadUint32(&svr.exit) != 0 { + return + } + xl.Info("try to reconnect to server...") conn, session, err := svr.login() if err != nil { From 1bc899ec12cd9dae74f695e122c7ebebcb7a6dcb Mon Sep 17 00:00:00 2001 From: chenjiayao Date: Thu, 14 Jul 2022 15:31:32 +0800 Subject: [PATCH 2/2] [client] Remove redundant function parameters (#3016) --- client/event/event.go | 9 +-------- client/proxy/proxy_manager.go | 2 +- client/proxy/proxy_wrapper.go | 4 ++-- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/client/event/event.go b/client/event/event.go index f9718448..eedeff51 100644 --- a/client/event/event.go +++ b/client/event/event.go @@ -6,18 +6,11 @@ import ( "github.com/fatedier/frp/pkg/msg" ) -type Type int - -const ( - EvStartProxy Type = iota - EvCloseProxy -) - var ( ErrPayloadType = errors.New("error payload type") ) -type Handler func(evType Type, payload interface{}) error +type Handler func(payload interface{}) error type StartProxyPayload struct { NewProxyMsg *msg.NewProxy diff --git a/client/proxy/proxy_manager.go b/client/proxy/proxy_manager.go index 98c17faa..51a8e28e 100644 --- a/client/proxy/proxy_manager.go +++ b/client/proxy/proxy_manager.go @@ -75,7 +75,7 @@ func (pm *Manager) HandleWorkConn(name string, workConn net.Conn, m *msg.StartWo } } -func (pm *Manager) HandleEvent(evType event.Type, payload interface{}) error { +func (pm *Manager) HandleEvent(payload interface{}) error { var m msg.Message switch e := payload.(type) { case *event.StartProxyPayload: diff --git a/client/proxy/proxy_wrapper.go b/client/proxy/proxy_wrapper.go index a6f0233b..035926e3 100644 --- a/client/proxy/proxy_wrapper.go +++ b/client/proxy/proxy_wrapper.go @@ -145,7 +145,7 @@ func (pw *Wrapper) Stop() { } func (pw *Wrapper) close() { - pw.handler(event.EvCloseProxy, &event.CloseProxyPayload{ + pw.handler(&event.CloseProxyPayload{ CloseProxyMsg: &msg.CloseProxy{ ProxyName: pw.Name, }, @@ -174,7 +174,7 @@ func (pw *Wrapper) checkWorker() { var newProxyMsg msg.NewProxy pw.Cfg.MarshalToMsg(&newProxyMsg) pw.lastSendStartMsg = now - pw.handler(event.EvStartProxy, &event.StartProxyPayload{ + pw.handler(&event.StartProxyPayload{ NewProxyMsg: &newProxyMsg, }) }