Documentation
¶
Index ¶
- Constants
- Variables
- func NewConfigMain(server Server) conf.Block
- func NewConfigModule(server Server) conf.Block
- func NewConfigServer(server Server) conf.Block
- func NewRequestHandler(server Server) http.Handler
- type AfterWriteResponseModule
- type BeforeHandleRequestModule
- type Condition
- type ConditionDstDomain
- type ConditionHeader
- type ConditionSrcIp
- type ConditionTester
- type ConditionTesterCIDR
- type ConditionTesterEquals
- type ConditionTesterRegexp
- type ConfigMain
- type ConfigModule
- type ConfigServer
- type DefaultDialer
- func (t *DefaultDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)
- func (t *DefaultDialer) GetIpV4() net.IP
- func (t *DefaultDialer) GetIpV6() net.IP
- func (t *DefaultDialer) GetLocalIp(hostname string) (net.IP, error)
- func (t *DefaultDialer) SetIpV4(ip net.IP)
- func (t *DefaultDialer) SetIpV6(ip net.IP)
- type DefaultHandleRequestResult
- func (t *DefaultHandleRequestResult) DialContext(ctx context.Context, network, addr string) (net.Conn, error)
- func (t *DefaultHandleRequestResult) GetDialer() Dialer
- func (t *DefaultHandleRequestResult) GetProxy() ProxyFunc
- func (t *DefaultHandleRequestResult) GetProxyConnectHeader() http.Header
- func (t *DefaultHandleRequestResult) GetRequest() *http.Request
- func (t *DefaultHandleRequestResult) GetResponse() Response
- func (t *DefaultHandleRequestResult) GetRoundTripper() http.RoundTripper
- func (t *DefaultHandleRequestResult) GetServer() Server
- func (t *DefaultHandleRequestResult) SetDialer(dialer Dialer)
- func (t *DefaultHandleRequestResult) SetProxy(proxy ProxyFunc)
- func (t *DefaultHandleRequestResult) SetProxyConnectHeader(header http.Header)
- func (t *DefaultHandleRequestResult) SetRequest(req *http.Request)
- func (t *DefaultHandleRequestResult) SetResponse(resp Response)
- type DefaultModulesManager
- type DefaultServer
- func (t *DefaultServer) GetErrorLog() *log.Logger
- func (t *DefaultServer) GetIdleTimeout() time.Duration
- func (t *DefaultServer) GetListenIp() net.IP
- func (t *DefaultServer) GetListenPort() int
- func (t *DefaultServer) GetListenType() ListenType
- func (t *DefaultServer) GetModulesManager() ModulesManager
- func (t *DefaultServer) GetReadHeaderTimeout() time.Duration
- func (t *DefaultServer) GetReadTimeout() time.Duration
- func (t *DefaultServer) GetWriteTimeout() time.Duration
- func (t *DefaultServer) ListenAndServe() error
- func (t *DefaultServer) LoadConfig(filename string) error
- func (t *DefaultServer) SetErrorLog(filename string) error
- func (t *DefaultServer) SetIdleTimeout(timeout string) error
- func (t *DefaultServer) SetListenIp(ip string) error
- func (t *DefaultServer) SetListenPort(port string) error
- func (t *DefaultServer) SetListenType(typ string) error
- func (t *DefaultServer) SetReadHeaderTimeout(timeout string) error
- func (t *DefaultServer) SetReadTimeout(timeout string) error
- func (t *DefaultServer) SetWriteTimeout(timeout string) error
- type Dialer
- type HandleRequestModule
- type HandleRequestResult
- type ListenType
- type Module
- type ModulesManager
- type ProxyFunc
- type RequestHandler
- type Response
- type ResponseError
- type Server
Constants ¶
View Source
const ( StatusClientClosedRequest = 499 StatusTextClientClosedRequest = "Client Closed Request" )
Variables ¶
View Source
var ErrOutgoingIpNotDefined = errors.New("outgoing ip address wasn't defined")
Functions ¶
func NewConfigMain ¶
func NewConfigModule ¶
func NewConfigServer ¶
func NewRequestHandler ¶
Types ¶
type Condition ¶
func NewConditionDstDomain ¶
func NewConditionDstDomain(tester ConditionTester) Condition
func NewConditionHeader ¶
func NewConditionHeader(tester ConditionTester, key string) Condition
func NewConditionSrcIp ¶
func NewConditionSrcIp(tester ConditionTester) Condition
type ConditionDstDomain ¶
type ConditionDstDomain struct {
Tester ConditionTester
}
type ConditionHeader ¶
type ConditionHeader struct { Tester ConditionTester Name string }
type ConditionSrcIp ¶
type ConditionSrcIp struct {
Tester ConditionTester
}
type ConditionTester ¶
func NewConditionTester ¶
func NewConditionTester(typ string, val string) (ConditionTester, error)
func NewConditionTesterCIDR ¶
func NewConditionTesterCIDR(val string) (ConditionTester, error)
func NewConditionTesterEquals ¶
func NewConditionTesterEquals(val string) (ConditionTester, error)
func NewConditionTesterRegexp ¶
func NewConditionTesterRegexp(val string) (ConditionTester, error)
type ConditionTesterCIDR ¶
func (*ConditionTesterCIDR) Test ¶
func (t *ConditionTesterCIDR) Test(val string) bool
type ConditionTesterEquals ¶
type ConditionTesterEquals struct {
Value string
}
func (*ConditionTesterEquals) Test ¶
func (t *ConditionTesterEquals) Test(val string) bool
type ConditionTesterRegexp ¶
func (*ConditionTesterRegexp) Test ¶
func (t *ConditionTesterRegexp) Test(val string) bool
type ConfigMain ¶
type ConfigServer ¶
type ConfigServer struct {
Server Server
}
type DefaultDialer ¶
func (*DefaultDialer) DialContext ¶
func (*DefaultDialer) GetIpV4 ¶
func (t *DefaultDialer) GetIpV4() net.IP
func (*DefaultDialer) GetIpV6 ¶
func (t *DefaultDialer) GetIpV6() net.IP
func (*DefaultDialer) GetLocalIp ¶
func (t *DefaultDialer) GetLocalIp(hostname string) (net.IP, error)
func (*DefaultDialer) SetIpV4 ¶
func (t *DefaultDialer) SetIpV4(ip net.IP)
func (*DefaultDialer) SetIpV6 ¶
func (t *DefaultDialer) SetIpV6(ip net.IP)
type DefaultHandleRequestResult ¶
type DefaultHandleRequestResult struct { Server Server Request *http.Request Response Response Dialer Dialer Transport *http.Transport }
func (*DefaultHandleRequestResult) DialContext ¶
func (*DefaultHandleRequestResult) GetDialer ¶
func (t *DefaultHandleRequestResult) GetDialer() Dialer
func (*DefaultHandleRequestResult) GetProxy ¶
func (t *DefaultHandleRequestResult) GetProxy() ProxyFunc
func (*DefaultHandleRequestResult) GetProxyConnectHeader ¶
func (t *DefaultHandleRequestResult) GetProxyConnectHeader() http.Header
func (*DefaultHandleRequestResult) GetRequest ¶
func (t *DefaultHandleRequestResult) GetRequest() *http.Request
func (*DefaultHandleRequestResult) GetResponse ¶
func (t *DefaultHandleRequestResult) GetResponse() Response
func (*DefaultHandleRequestResult) GetRoundTripper ¶
func (t *DefaultHandleRequestResult) GetRoundTripper() http.RoundTripper
func (*DefaultHandleRequestResult) GetServer ¶
func (t *DefaultHandleRequestResult) GetServer() Server
func (*DefaultHandleRequestResult) SetDialer ¶
func (t *DefaultHandleRequestResult) SetDialer(dialer Dialer)
func (*DefaultHandleRequestResult) SetProxy ¶
func (t *DefaultHandleRequestResult) SetProxy(proxy ProxyFunc)
func (*DefaultHandleRequestResult) SetProxyConnectHeader ¶
func (t *DefaultHandleRequestResult) SetProxyConnectHeader(header http.Header)
func (*DefaultHandleRequestResult) SetRequest ¶
func (t *DefaultHandleRequestResult) SetRequest(req *http.Request)
func (*DefaultHandleRequestResult) SetResponse ¶
func (t *DefaultHandleRequestResult) SetResponse(resp Response)
type DefaultModulesManager ¶
type DefaultModulesManager struct { ModulesArray []Module ModulesMap map[string]int CondModules map[Condition]ModulesManager }
func (*DefaultModulesManager) GetModule ¶
func (t *DefaultModulesManager) GetModule(directive string, conds ...Condition) Module
func (*DefaultModulesManager) GetModulesForRequest ¶
func (t *DefaultModulesManager) GetModulesForRequest(req *http.Request) []Module
type DefaultServer ¶
type DefaultServer struct { ModulesManager ModulesManager ListenType ListenType ErrorLog *log.Logger Config conf.Block Server http.Server }
func (*DefaultServer) GetErrorLog ¶
func (t *DefaultServer) GetErrorLog() *log.Logger
func (*DefaultServer) GetIdleTimeout ¶
func (t *DefaultServer) GetIdleTimeout() time.Duration
func (*DefaultServer) GetListenIp ¶
func (t *DefaultServer) GetListenIp() net.IP
func (*DefaultServer) GetListenPort ¶
func (t *DefaultServer) GetListenPort() int
func (*DefaultServer) GetListenType ¶
func (t *DefaultServer) GetListenType() ListenType
func (*DefaultServer) GetModulesManager ¶
func (t *DefaultServer) GetModulesManager() ModulesManager
func (*DefaultServer) GetReadHeaderTimeout ¶
func (t *DefaultServer) GetReadHeaderTimeout() time.Duration
func (*DefaultServer) GetReadTimeout ¶
func (t *DefaultServer) GetReadTimeout() time.Duration
func (*DefaultServer) GetWriteTimeout ¶
func (t *DefaultServer) GetWriteTimeout() time.Duration
func (*DefaultServer) ListenAndServe ¶
func (t *DefaultServer) ListenAndServe() error
func (*DefaultServer) LoadConfig ¶
func (t *DefaultServer) LoadConfig(filename string) error
func (*DefaultServer) SetErrorLog ¶
func (t *DefaultServer) SetErrorLog(filename string) error
func (*DefaultServer) SetIdleTimeout ¶
func (t *DefaultServer) SetIdleTimeout(timeout string) error
func (*DefaultServer) SetListenIp ¶
func (t *DefaultServer) SetListenIp(ip string) error
func (*DefaultServer) SetListenPort ¶
func (t *DefaultServer) SetListenPort(port string) error
func (*DefaultServer) SetListenType ¶
func (t *DefaultServer) SetListenType(typ string) error
func (*DefaultServer) SetReadHeaderTimeout ¶
func (t *DefaultServer) SetReadHeaderTimeout(timeout string) error
func (*DefaultServer) SetReadTimeout ¶
func (t *DefaultServer) SetReadTimeout(timeout string) error
func (*DefaultServer) SetWriteTimeout ¶
func (t *DefaultServer) SetWriteTimeout(timeout string) error
type Dialer ¶
type HandleRequestModule ¶
type HandleRequestModule interface {
HandleRequest(result HandleRequestResult) (HandleRequestResult, error)
}
type HandleRequestResult ¶
type HandleRequestResult interface { SetRequest(req *http.Request) SetDialer(dialer Dialer) SetProxy(proxy ProxyFunc) SetProxyConnectHeader(header http.Header) SetResponse(resp Response) GetRequest() *http.Request GetDialer() Dialer GetProxy() ProxyFunc GetProxyConnectHeader() http.Header GetResponse() Response GetServer() Server GetRoundTripper() http.RoundTripper }
func NewHandleRequestResult ¶
func NewHandleRequestResult(req *http.Request, server Server) HandleRequestResult
type ModulesManager ¶
type ModulesManager interface { GetModule(directive string, conds ...Condition) Module GetModulesForRequest(req *http.Request) []Module }
func NewModulesManager ¶
func NewModulesManager(modules ...Module) ModulesManager
type RequestHandler ¶
type RequestHandler struct {
Server Server
}
func (*RequestHandler) ServeHTTP ¶
func (t *RequestHandler) ServeHTTP(rw http.ResponseWriter, req *http.Request)
type Response ¶
type Response interface { Write(rw http.ResponseWriter, result HandleRequestResult) error GetCode() int GetLAddr() net.Addr GetRAddr() net.Addr }
func NewResponseError ¶
type ResponseError ¶
func (*ResponseError) GetCode ¶
func (t *ResponseError) GetCode() int
func (*ResponseError) GetLAddr ¶
func (*ResponseError) GetLAddr() net.Addr
func (*ResponseError) GetRAddr ¶
func (*ResponseError) GetRAddr() net.Addr
func (*ResponseError) Write ¶
func (t *ResponseError) Write(rw http.ResponseWriter, _ HandleRequestResult) error
type Server ¶
type Server interface { GetModulesManager() ModulesManager GetListenIp() net.IP GetListenPort() int GetListenType() ListenType GetErrorLog() *log.Logger GetReadTimeout() time.Duration GetReadHeaderTimeout() time.Duration GetWriteTimeout() time.Duration GetIdleTimeout() time.Duration SetListenIp(ip string) error SetListenPort(port string) error SetListenType(typ string) error SetErrorLog(filename string) error SetReadTimeout(timeout string) error SetReadHeaderTimeout(timeout string) error SetWriteTimeout(timeout string) error SetIdleTimeout(timeout string) error LoadConfig(filename string) error ListenAndServe() error }
Source Files
¶
Click to show internal directories.
Click to hide internal directories.