优化错误处理,替换 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

@@ -4,6 +4,7 @@ import (
"bufio"
"context"
"encoding/base64"
"fmt"
"io"
"net"
"net/textproto"
@@ -12,7 +13,7 @@ import (
"proxy-server/server/fwd/core"
"strings"
"github.com/pkg/errors"
"errors"
)
type Request struct {
@@ -43,7 +44,7 @@ func Process(ctx context.Context, conn net.Conn) (*core.Conn, error) {
// 请求头
headers, err := textReader.ReadMIMEHeader()
if err != nil {
return nil, errors.Wrap(err, "解析请求头失败")
return nil, fmt.Errorf("解析请求头失败: %v", err)
}
// 验证账号
@@ -55,9 +56,9 @@ func Process(ctx context.Context, conn net.Conn) (*core.Conn, error) {
if authErr != nil {
_, err := conn.Write([]byte("HTTP/1.1 407 Proxy Authentication Required\r\n\r\n"))
if err != nil {
return nil, errors.Wrap(err, "响应 407 失败")
return nil, fmt.Errorf("响应 407 失败: %v", err)
}
return nil, errors.Wrap(authErr, "验证账号失败")
return nil, fmt.Errorf("验证账号失败: %v", authErr)
}
} else {
authParts := strings.Split(authInfo, " ")
@@ -69,16 +70,16 @@ func Process(ctx context.Context, conn net.Conn) (*core.Conn, error) {
}
authBytes, err := base64.URLEncoding.DecodeString(authParts[1])
if err != nil {
return nil, errors.Wrap(err, "解码认证信息失败")
return nil, fmt.Errorf("解码认证信息失败: %v", err)
}
authPair := strings.Split(string(authBytes), ":")
authCtx, authErr = auth.CheckPass(conn, auth.Http, authPair[0], authPair[1])
if authErr != nil {
_, err := conn.Write([]byte("HTTP/1.1 407 Proxy Authentication Required\r\n\r\n"))
if err != nil {
return nil, errors.Wrap(err, "响应 407 失败")
return nil, fmt.Errorf("响应 407 失败: %v", err)
}
return nil, errors.Wrap(authErr, "验证账号失败")
return nil, fmt.Errorf("验证账号失败: %v", authErr)
}
}
@@ -92,7 +93,7 @@ func Process(ctx context.Context, conn net.Conn) (*core.Conn, error) {
}
addr, err := net.ResolveTCPAddr("tcp", host)
if err != nil {
return nil, errors.Wrap(err, "解析 Host 失败")
return nil, fmt.Errorf("解析 Host 失败: %v", err)
}
request := &Request{
@@ -131,7 +132,7 @@ func processHttps(ctx context.Context, req *Request) (*core.Conn, error) {
// 响应 CONNECT
_, err := req.conn.Write([]byte("HTTP/1.1 200 Connection Established\r\n\r\n"))
if err != nil {
return nil, errors.Wrap(err, "响应 CONNECT 失败")
return nil, fmt.Errorf("响应 CONNECT 失败: %v", err)
}
return &core.Conn{
@@ -149,7 +150,7 @@ func processHttp(ctx context.Context, req *Request) (*core.Conn, error) {
// 修改请求头
rawUrl, err := url.Parse(req.uri)
if err != nil {
return nil, errors.Wrap(err, "解析请求地址失败")
return nil, fmt.Errorf("解析请求地址失败: %v", err)
}
rawUrl.Scheme = ""
rawUrl.Host = ""