Files
tunnel-please/server/middleware.go
bagas 6451304ed7
All checks were successful
Docker Build and Push / build-and-push (push) Successful in 4m17s
fix: potential resource leak
2025-12-17 21:38:00 +07:00

47 lines
917 B
Go

package server
import (
"net"
)
type RequestMiddleware interface {
HandleRequest(header *RequestHeaderFactory) error
}
type ResponseMiddleware interface {
HandleResponse(header *ResponseHeaderFactory, body []byte) error
}
type TunnelFingerprint struct{}
func NewTunnelFingerprint() *TunnelFingerprint {
return &TunnelFingerprint{}
}
func (h *TunnelFingerprint) HandleResponse(header *ResponseHeaderFactory, body []byte) error {
header.Set("Server", "Tunnel Please")
return nil
}
type RequestLogger struct {
interaction Interaction
remoteAddr net.Addr
}
type ForwardedFor struct {
addr net.Addr
}
func NewForwardedFor(addr net.Addr) *ForwardedFor {
return &ForwardedFor{addr: addr}
}
func (ff *ForwardedFor) HandleRequest(header *RequestHeaderFactory) error {
host, _, err := net.SplitHostPort(ff.addr.String())
if err != nil {
return err
}
header.Set("X-Forwarded-For", host)
return nil
}