Versions in this module Expand all Collapse all v0 v0.0.1 Nov 28, 2022 Changes in this version + func CloneHeader(h http.Header, h2 http.Header) + func CopyHeader(dst, src http.Header) + type ConnBuffer struct + func NewConnBuffer(conn net.Conn, buf *bufio.ReadWriter) *ConnBuffer + func (cb *ConnBuffer) BufferReader() *bufio.Reader + func (cb *ConnBuffer) Header() http.Header + func (cb *ConnBuffer) Hijack() (net.Conn, *bufio.ReadWriter, error) + func (cb *ConnBuffer) Peek(n int) ([]byte, error) + func (cb *ConnBuffer) Read(b []byte) (n int, err error) + func (cb *ConnBuffer) Write(p []byte) (n int, err error) + func (cb *ConnBuffer) WriteHeader(_ int) + type Context struct + Data map[interface{}]interface{} + Req *http.Request + TunnelProxy bool + func (c *Context) Abort() + func (c *Context) Addr() string + func (c *Context) IsAborted() bool + func (c *Context) IsHTTPS() bool + func (c *Context) Reset(req *http.Request) + func (c *Context) WebsocketUrl() *url.URL + type DefaultDelegate struct + func (h *DefaultDelegate) Auth(ctx *Context, rw http.ResponseWriter) + func (h *DefaultDelegate) BeforeRequest(ctx *Context) + func (h *DefaultDelegate) BeforeResponse(ctx *Context, resp *http.Response, err error) + func (h *DefaultDelegate) Connect(ctx *Context, rw http.ResponseWriter) + func (h *DefaultDelegate) ErrorLog(err error) + func (h *DefaultDelegate) Finish(ctx *Context) + func (h *DefaultDelegate) ParentProxy(req *http.Request) (*url.URL, error) + func (h *DefaultDelegate) WebSocketReceiveMessage(ctx *Context, messageType *int, payload *[]byte) + func (h *DefaultDelegate) WebSocketSendMessage(ctx *Context, messageType *int, payload *[]byte) + type Delegate interface + Auth func(ctx *Context, rw http.ResponseWriter) + BeforeRequest func(ctx *Context) + BeforeResponse func(ctx *Context, resp *http.Response, err error) + Connect func(ctx *Context, rw http.ResponseWriter) + ErrorLog func(err error) + Finish func(ctx *Context) + ParentProxy func(*http.Request) (*url.URL, error) + WebSocketReceiveMessage func(ctx *Context, messageType *int, p *[]byte) + WebSocketSendMessage func(ctx *Context, messageType *int, p *[]byte) + type DialContext func(ctx context.Context, network, addr string) (net.Conn, error) + type HeaderPool struct + func NewHeaderPool() *HeaderPool + func (p *HeaderPool) Get() http.Header + func (p *HeaderPool) Put(header http.Header) + type Option func(*options) + func WithClientTrace(t *httptrace.ClientTrace) Option + func WithDecryptHTTPS(c cert.Cache) Option + func WithDelegate(delegate Delegate) Option + func WithDisableKeepAlive(disableKeepAlive bool) Option + func WithEnableWebsocketIntercept() Option + func WithTransport(t *http.Transport) Option + type Proxy struct + func New(opt ...Option) *Proxy + func (p *Proxy) ClientConnNum() int32 + func (p *Proxy) DoRequest(ctx *Context, responseFunc func(*http.Response, error)) + func (p *Proxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) + type RequestPool struct + func (p *RequestPool) Get() *http.Request + func (p *RequestPool) Put(req *http.Request)