fix(lint): 修复 handler 和 http2 模块 lint 错误
- 添加 nolint:errcheck 注释到 defer Close 调用 - 修复 websocket.go 中重复的 nolint 注释格式 - 添加 staticcheck SA1019 nolint 注释到 deprecated WriteScheduler - 移除 sendfile_linux.go 中未使用的 platformLinux 常量 - 添加文件末尾换行符 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
326340fe4c
commit
bb77fa6a98
@ -125,4 +125,4 @@ func platformSendfile(conn net.Conn, file *os.File, offset, length int64) error
|
|||||||
// macOS sendfile 签名复杂,简化使用 fallback
|
// macOS sendfile 签名复杂,简化使用 fallback
|
||||||
// Windows TransmitFile 需要特殊 API
|
// Windows TransmitFile 需要特殊 API
|
||||||
return syscall.ENOTSUP
|
return syscall.ENOTSUP
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,9 +22,6 @@ const (
|
|||||||
MinSendfileSize = 8 * 1024
|
MinSendfileSize = 8 * 1024
|
||||||
)
|
)
|
||||||
|
|
||||||
// platformLinux Linux 平台标识符。
|
|
||||||
const platformLinux = "linux"
|
|
||||||
|
|
||||||
// SendFile 零拷贝文件传输。
|
// SendFile 零拷贝文件传输。
|
||||||
//
|
//
|
||||||
// 大文件使用系统调用直接从文件传输到 socket,避免用户空间拷贝,
|
// 大文件使用系统调用直接从文件传输到 socket,避免用户空间拷贝,
|
||||||
@ -120,16 +117,16 @@ func getSocketFd(conn net.Conn) (uintptr, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
defer func() { _ = file.Close() }()
|
defer func() { _ = file.Close() }() //nolint:errcheck
|
||||||
return file.Fd(), nil
|
return file.Fd(), nil
|
||||||
case *net.UnixConn:
|
case *net.UnixConn:
|
||||||
file, err := c.File()
|
file, err := c.File()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
defer func() { _ = file.Close() }()
|
defer func() { _ = file.Close() }() //nolint:errcheck
|
||||||
return file.Fd(), nil
|
return file.Fd(), nil
|
||||||
default:
|
default:
|
||||||
return 0, syscall.ENOTSUP
|
return 0, syscall.ENOTSUP
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -245,4 +245,4 @@ func TestCopyFile_Error(t *testing.T) {
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
t.Error("Expected error for offset beyond file size")
|
t.Error("Expected error for offset beyond file size")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -277,4 +277,4 @@ func TestLinuxSendfile_NilConn(t *testing.T) {
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
t.Error("Expected error for nil connection")
|
t.Error("Expected error for nil connection")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -101,8 +101,9 @@ func NewServer(cfg *config.HTTP2Config, handler fasthttp.RequestHandler, tlsConf
|
|||||||
MaxConcurrentStreams: uint32(maxConcurrentStreams),
|
MaxConcurrentStreams: uint32(maxConcurrentStreams),
|
||||||
IdleTimeout: idleTimeout,
|
IdleTimeout: idleTimeout,
|
||||||
MaxReadFrameSize: uint32(maxHeaderListSize),
|
MaxReadFrameSize: uint32(maxHeaderListSize),
|
||||||
NewWriteScheduler: func() http2.WriteScheduler { return http2.NewPriorityWriteScheduler(nil) },
|
//nolint:staticcheck // SA1019: NewWriteScheduler deprecated
|
||||||
CountError: func(_ string) {},
|
NewWriteScheduler: func() http2.WriteScheduler { return http2.NewPriorityWriteScheduler(nil) },
|
||||||
|
CountError: func(_ string) {},
|
||||||
}
|
}
|
||||||
|
|
||||||
return &Server{
|
return &Server{
|
||||||
|
|||||||
@ -227,11 +227,11 @@ func dialTarget(targetURL string, timeout time.Duration) (net.Conn, error) {
|
|||||||
ServerName: strings.Split(addr, ":")[0],
|
ServerName: strings.Split(addr, ":")[0],
|
||||||
})
|
})
|
||||||
if err := tlsConn.SetDeadline(time.Now().Add(timeout)); err != nil {
|
if err := tlsConn.SetDeadline(time.Now().Add(timeout)); err != nil {
|
||||||
_ = conn.Close() //nolint:errcheck //nolint:errcheck
|
_ = conn.Close() //nolint:errcheck // 错误处理中关闭连接
|
||||||
return nil, fmt.Errorf("failed to set TLS deadline: %w", err)
|
return nil, fmt.Errorf("failed to set TLS deadline: %w", err)
|
||||||
}
|
}
|
||||||
if err := tlsConn.Handshake(); err != nil {
|
if err := tlsConn.Handshake(); err != nil {
|
||||||
_ = conn.Close() //nolint:errcheck //nolint:errcheck
|
_ = conn.Close() //nolint:errcheck // 错误处理中关闭连接
|
||||||
return nil, fmt.Errorf("TLS handshake failed: %w", err)
|
return nil, fmt.Errorf("TLS handshake failed: %w", err)
|
||||||
}
|
}
|
||||||
return tlsConn, nil
|
return tlsConn, nil
|
||||||
@ -396,14 +396,14 @@ func WebSocket(ctx *fasthttp.RequestCtx, target *loadbalance.Target, timeout tim
|
|||||||
// 步骤5: 检查响应状态码(期望 101 Switching Protocols)
|
// 步骤5: 检查响应状态码(期望 101 Switching Protocols)
|
||||||
if resp.StatusCode != http.StatusSwitchingProtocols {
|
if resp.StatusCode != http.StatusSwitchingProtocols {
|
||||||
// 关闭响应 body(升级失败时)
|
// 关闭响应 body(升级失败时)
|
||||||
_ = resp.Body.Close() //nolint:errcheck //nolint:errcheck
|
_ = resp.Body.Close() //nolint:errcheck // 错误处理中关闭响应体
|
||||||
return fmt.Errorf("backend rejected WebSocket upgrade: %s", resp.Status)
|
return fmt.Errorf("backend rejected WebSocket upgrade: %s", resp.Status)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 步骤6: 将升级响应发送回客户端
|
// 步骤6: 将升级响应发送回客户端
|
||||||
if err := writeUpgradeResponse(clientConn, resp); err != nil {
|
if err := writeUpgradeResponse(clientConn, resp); err != nil {
|
||||||
// 关闭响应 body(写入失败时)
|
// 关闭响应 body(写入失败时)
|
||||||
_ = resp.Body.Close() //nolint:errcheck //nolint:errcheck
|
_ = resp.Body.Close() //nolint:errcheck // 错误处理中关闭响应体
|
||||||
return fmt.Errorf("failed to send upgrade response to client: %w", err)
|
return fmt.Errorf("failed to send upgrade response to client: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user