engin

package
v0.0.0-...-0f6736f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2022 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var HTTPS_CLIENT_CONNECT_FLAG = []byte("HTTP/1.1 200 Connection Established\r\n\r\n")

Functions

func Address

func Address(u *url.URL) string

func AuthCache

func AuthCache(r *http.Request) bool

func AuthFailHandler

func AuthFailHandler(w http.ResponseWriter, r *http.Request)

func AuthLogin

func AuthLogin(r *http.Request)

func ConnectCopyWithTimeout

func ConnectCopyWithTimeout(in net.Conn, out net.Conn, tmout int, statcall func(uint64))

func DebugReqeust

func DebugReqeust(r *http.Request)

func IsConnect

func IsConnect(address string, timeout int) bool

func PublicFailDelay

func PublicFailDelay()

func TlsConfigClient

func TlsConfigClient(servername string, certfile, keyfile string) (*tls.Config, error)

func TlsConfigServer

func TlsConfigServer(certfile, keyfile string) (*tls.Config, error)

func WriteFull

func WriteFull(w io.Writer, body []byte) error

Types

type Access

type Access interface {
	Stat() (uint64, uint64)
	Shutdown() error
	AuthHandlerSet(func(*AuthInfo) bool)
	ForwardHandlerSet(func(address string, r *http.Request) Forward)
}

func NewHttpsAccess

func NewHttpsAccess(addr string, timeout int, tlsEnable bool, certfile, keyfile string) (Access, error)

type AuthCtrl

type AuthCtrl struct {
	sync.RWMutex
	Cache map[string]AuthItem
}

type AuthInfo

type AuthInfo struct {
	User  string
	Token string
}

func AuthInfoParse

func AuthInfoParse(r *http.Request) *AuthInfo

type AuthItem

type AuthItem struct {
	Address string
	Login   time.Time
}

type Forward

type Forward interface {
	Close() error
	Http(r *http.Request) (*http.Response, error)
	Https(address string, r *http.Request) (net.Conn, error)
}

func NewDefault

func NewDefault(timeout int) (Forward, error)

func NewHttpsProtcal

func NewHttpsProtcal(address string, timeout int, auth *AuthInfo, tlsEnable bool, certfile, keyfile string) (Forward, error)

type HttpAccess

type HttpAccess struct {
	Timeout int
	Address string

	sync.WaitGroup
	// contains filtered or unexported fields
}

func (*HttpAccess) AuthHandlerSet

func (acc *HttpAccess) AuthHandlerSet(handler func(auth *AuthInfo) bool)

func (*HttpAccess) AuthHttp

func (acc *HttpAccess) AuthHttp(r *http.Request) bool

func (*HttpAccess) ForwardHandlerSet

func (acc *HttpAccess) ForwardHandlerSet(handler func(address string, r *http.Request) Forward)

func (*HttpAccess) HttpForward

func (acc *HttpAccess) HttpForward(address string, r *http.Request) (*http.Response, error)

func (*HttpAccess) HttpRoundTripper

func (acc *HttpAccess) HttpRoundTripper(r *http.Request) (*http.Response, error)

func (*HttpAccess) HttpsForward

func (acc *HttpAccess) HttpsForward(address string, r *http.Request) (net.Conn, error)

func (*HttpAccess) HttpsRoundTripper

func (acc *HttpAccess) HttpsRoundTripper(w http.ResponseWriter, r *http.Request)

func (*HttpAccess) NoProxyHandler

func (acc *HttpAccess) NoProxyHandler(w http.ResponseWriter, r *http.Request)

func (*HttpAccess) ServeHTTP

func (acc *HttpAccess) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*HttpAccess) Shutdown

func (acc *HttpAccess) Shutdown() error

func (*HttpAccess) Stat

func (acc *HttpAccess) Stat() (uint64, uint64)

func (*HttpAccess) StatAdd

func (acc *HttpAccess) StatAdd(size uint64)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL