优化错误处理,替换 errors.Wrap 为 fmt.Errorf
This commit is contained in:
23
README.md
23
README.md
@@ -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) |
|
||||
|---------|-----------------------|
|
||||
|
||||
Reference in New Issue
Block a user