refactor(httpheader): extract header parsing into dedicated package
Docker Build and Push / build-and-push-tags (push) Has been skipped
Docker Build and Push / build-and-push-branches (push) Successful in 11m19s

Moved HTTP header parsing and building logic from server package to internal/httpheader
This commit is contained in:
2026-01-20 21:15:34 +07:00
parent e3ead4d52f
commit 9a4539cc02
7 changed files with 141 additions and 125 deletions
+5 -4
View File
@@ -2,14 +2,15 @@ package server
import (
"net"
"tunnel_pls/internal/httpheader"
)
type RequestMiddleware interface {
HandleRequest(header RequestHeader) error
HandleRequest(header httpheader.RequestHeader) error
}
type ResponseMiddleware interface {
HandleResponse(header ResponseHeader, body []byte) error
HandleResponse(header httpheader.ResponseHeader, body []byte) error
}
type TunnelFingerprint struct{}
@@ -18,7 +19,7 @@ func NewTunnelFingerprint() *TunnelFingerprint {
return &TunnelFingerprint{}
}
func (h *TunnelFingerprint) HandleResponse(header ResponseHeader, body []byte) error {
func (h *TunnelFingerprint) HandleResponse(header httpheader.ResponseHeader, body []byte) error {
header.Set("Server", "Tunnel Please")
return nil
}
@@ -31,7 +32,7 @@ func NewForwardedFor(addr net.Addr) *ForwardedFor {
return &ForwardedFor{addr: addr}
}
func (ff *ForwardedFor) HandleRequest(header RequestHeader) error {
func (ff *ForwardedFor) HandleRequest(header httpheader.RequestHeader) error {
host, _, err := net.SplitHostPort(ff.addr.String())
if err != nil {
return err