优化节点连接管理逻辑与日志输出,修改连接错误处理函数的返回值以确保错误处理灵活性

This commit is contained in:
2025-05-29 14:44:06 +08:00
parent 1831c792ad
commit ceb381bc9b
9 changed files with 57 additions and 48 deletions

View File

@@ -4,7 +4,6 @@ import (
"errors"
"fmt"
"io"
"log/slog"
"net"
"syscall"
)
@@ -18,23 +17,18 @@ func WarpConnErr(err error) (bool, error) {
switch {
case errors.Is(err, net.ErrClosed):
slog.Debug("连接已关闭")
return false, nil
return true, errors.New("连接已关闭")
case errors.Is(err, io.EOF):
slog.Debug("连接被对端关闭")
return false, nil
return true, errors.New("连接已结束")
case errors.As(err, &opErr):
switch {
case
errors.Is(opErr.Err, syscall.WSAECONNRESET), errors.Is(opErr.Err, syscall.WSAECONNABORTED),
errors.Is(opErr.Err, syscall.ECONNRESET), errors.Is(opErr.Err, syscall.ECONNABORTED):
slog.Debug("连接被对端重置")
return false, nil
return false, errors.New("连接已重置或中止")
case opErr.Timeout():
slog.Debug("连接已超时")
return false, nil
return false, errors.New("连接已超时")
}
}
return false, fmt.Errorf("连接发生未处理的错误: %w", err)