Skip to content

Commit 785303e

Browse files
authored
refactor: optimize context error handling in client and server run methods
1 parent a80c1aa commit 785303e

File tree

2 files changed

+7
-13
lines changed

2 files changed

+7
-13
lines changed

internal/client.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,7 @@ func (c *Client) Run() {
7373

7474
// 启动客户端服务并处理重启
7575
go func() {
76-
for {
77-
if ctx.Err() != nil {
78-
return
79-
}
76+
for ctx.Err() == nil {
8077
// 启动客户端
8178
if err := c.start(); err != nil && err != io.EOF {
8279
c.logger.Error("Client error: %v", err)

internal/server.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,7 @@ func (s *Server) Run() {
7474

7575
// 启动服务端并处理重启
7676
go func() {
77-
for {
78-
if ctx.Err() != nil {
79-
return
80-
}
77+
for ctx.Err() == nil {
8178
// 启动服务端
8279
if err := s.start(); err != nil && err != io.EOF {
8380
s.logger.Error("Server error: %v", err)
@@ -167,11 +164,7 @@ func (s *Server) start() error {
167164
// tunnelHandshake 与客户端进行握手
168165
func (s *Server) tunnelHandshake() error {
169166
// 接受隧道连接
170-
for {
171-
if s.ctx.Err() != nil {
172-
return fmt.Errorf("tunnelHandshake: context error: %w", s.ctx.Err())
173-
}
174-
167+
for s.ctx.Err() == nil {
175168
tunnelTCPConn, err := s.tunnelListener.Accept()
176169
if err != nil {
177170
s.logger.Error("tunnelHandshake: accept error: %v", err)
@@ -235,6 +228,10 @@ func (s *Server) tunnelHandshake() error {
235228
break
236229
}
237230

231+
if s.ctx.Err() != nil {
232+
return fmt.Errorf("tunnelHandshake: context error: %w", s.ctx.Err())
233+
}
234+
238235
// 发送客户端配置
239236
tunnelURL := &url.URL{
240237
Scheme: "np",

0 commit comments

Comments
 (0)