优化错误处理,替换 errors.Wrap 为 fmt.Errorf

This commit is contained in:
2025-05-15 09:53:23 +08:00
parent 75569d2d6d
commit 8b7dc9e4ff
11 changed files with 80 additions and 92 deletions

View File

@@ -10,32 +10,19 @@ server/fwd: 服务端核心代码
- socks: socks5 处理器,负责处理 socks5 请求
- repo: 状态仓库,所有有状态数据都通过 repo 中的接口与外部服务交互
### 更新测试环境
1. 构建项目
2. 使用测试配置 `.env.test` 远程启动 docker
### 转发服务结束时资源清理
1. 关闭接听端口防止新连接接入user, data, ctrl
2. 通知并等待所有正在运行的 conn 处理协程全部关闭user, data, ctrl
3. 结束所有保存且未使用的 conn 连接user, ctrl
### 代码清理
检查 slog 级别:
ERR: 除非有必要,否则全部 error 都使用 `errors.Wrap()` 包裹(如果下游有返回 err并附带本层业务信息return 到上层统一打印
其他级别日志就地打印Info 只用来跟踪关键流程
### proxy.lock 文件格式
| mag_num(1) | name(16) |
|-------------|-----------|
| 魔法数,固定 0x72 | 服务名称uuid |
## 协议
## 底层协议设计
### 步骤说明
@@ -55,13 +42,13 @@ ERR: 除非有必要,否则全部 error 都使用 `errors.Wrap()` 包裹(如
#### 建立控制通道
客户端:
1.客户端发送
| id(4) |
|--------|
| 客户端 ID |
服务端:
2.服务端发送
| status(1) |
|-----------|
@@ -69,13 +56,13 @@ ERR: 除非有必要,否则全部 error 都使用 `errors.Wrap()` 包裹(如
#### 建立数据通道
服务端:
1.服务端发送
| tag(16) | dst_len(2) | dst_buf(n) |
|---------|------------|------------|
| 通道标识 | 目标地址长度 | 目标地址 |
客户端:
2.客户端发送
| tag(16) | status(1) |
|---------|-----------------------|