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