Documentation
¶
Index ¶
Constants ¶
const ( BasicAuthName = "Basic" ProxyAuthorizationKey = "Proxy-Authorization" ProxyAuthenticateKey = "Proxy-Authenticate" )
Variables ¶
This section is empty.
Functions ¶
func NewConnCompatibilityReadDeadline ¶ added in v0.5.3
NewConnCompatibilityReadDeadline this is a wrapper used to be compatible with the net.Conn after wrapping it so that it can be hijacked properly. there is no effect if the content is not manipulated.
func NewListenerCompatibilityReadDeadline ¶ added in v0.5.1
NewListenerCompatibilityReadDeadline this is a wrapper used to be compatible with the contents of ServerConn after wrapping it so that it can be hijacked properly. there is no effect if the content is not manipulated.
Types ¶
type Authentication ¶
type Authentication interface {
Auth(http.ResponseWriter, *http.Request) bool
}
Authentication proxy authentication
func BasicAuth ¶
func BasicAuth(username, password string) Authentication
BasicAuth HTTP Basic authentication for Header Proxy-Authorization
func BasicAuthFunc ¶
func BasicAuthFunc(f func(username, password string) bool) Authentication
BasicAuthFunc HTTP Basic authentication for Header Proxy-Authorization
type AuthenticationFunc ¶
type AuthenticationFunc func(http.ResponseWriter, *http.Request) bool
AuthenticationFunc Authentication interface is implemented
func (AuthenticationFunc) Auth ¶
func (f AuthenticationFunc) Auth(w http.ResponseWriter, r *http.Request) bool
Auth authentication processing
type BytesPool ¶ added in v0.3.2
BytesPool is an interface for getting and returning temporary bytes for use by io.CopyBuffer.
type Dialer ¶
type Dialer struct { // ProxyDial specifies the optional dial function for // establishing the transport connection. ProxyDial func(context.Context, string, string) (net.Conn, error) // TLSClientConfig specifies the TLS configuration to use with // tls.Client. // If nil, the TLS is not used. // If non-nil, HTTP/2 support may not be enabled by default. TLSClientConfig *tls.Config // ProxyHeader optionally specifies headers to send to // proxies during CONNECT requests. ProxyHeader http.Header // Proxy proxy server address Proxy string // Userinfo use userinfo authentication if not empty Userinfo *url.Userinfo // Timeout is the maximum amount of time a dial will wait for // a connect to complete. The default is no timeout Timeout time.Duration }
Dialer holds HTTP CONNECT options.
type ProxyHandler ¶
type ProxyHandler struct { // Client is used without the connect method Client *http.Client // ProxyDial specifies the optional proxyDial function for // establishing the transport connection. ProxyDial func(context.Context, string, string) (net.Conn, error) // Authentication is proxy authentication Authentication Authentication // NotFound Not proxy requests NotFound http.Handler // Logger error log Logger Logger // BytesPool getting and returning temporary bytes for use by io.CopyBuffer BytesPool BytesPool }
ProxyHandler proxy handler
func (*ProxyHandler) ServeHTTP ¶
func (p *ProxyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
type SimpleServer ¶ added in v0.3.3
type SimpleServer struct { ProxyHandler Server http.Server Listener net.Listener Network string Address string Username string Password string }
SimpleServer is a simplified server, which can be configured as easily as client.
func NewSimpleServer ¶ added in v0.3.3
func NewSimpleServer(addr string) (*SimpleServer, error)
NewSimpleServer creates a new SimpleServer
func (*SimpleServer) Close ¶ added in v0.3.3
func (s *SimpleServer) Close() error
Close closes the listener
func (*SimpleServer) ProxyURL ¶ added in v0.3.3
func (s *SimpleServer) ProxyURL() string
ProxyURL returns the URL of the proxy