Documentation
¶
Index ¶
- Constants
- Variables
- func NewConfigMain(server Server) conf.Block
- func NewConfigModule(modulesManager ModulesManager) conf.Block
- func NewConfigServer(server Server) conf.Block
- func NewRequestHandler(server Server) http.Handler
- type AfterWriteResponseModule
- type BeforeHandleRequestModule
- type Condition
- func NewCondition(key string, typ string, val string) (Condition, error)
- func NewConditionDstDomain(tester ConditionTester) Condition
- func NewConditionDstUrl(tester ConditionTester) Condition
- func NewConditionHeader(tester ConditionTester, key string) Condition
- func NewConditionSrcIp(tester ConditionTester) Condition
- func NewConditionUser(tester ConditionTester) Condition
- type ConditionDstDomain
- type ConditionDstUrl
- type ConditionHeader
- type ConditionSrcIp
- type ConditionTester
- type ConditionTesterCIDR
- type ConditionTesterEquals
- type ConditionTesterRegexp
- type ConditionUser
- 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) GetCertFile() string
- func (t *DefaultServer) GetErrorLog() *log.Logger
- func (t *DefaultServer) GetIdleTimeout() time.Duration
- func (t *DefaultServer) GetKeyFile() string
- 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) SetCertFile(filename string)
- func (t *DefaultServer) SetErrorLog(filename string) error
- func (t *DefaultServer) SetIdleTimeout(timeout string) error
- func (t *DefaultServer) SetKeyFile(filename string)
- 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 NewConfigModule(modulesManager ModulesManager) conf.Block
func NewConfigServer ¶
func NewRequestHandler ¶
Types ¶
type Condition ¶
func NewConditionDstDomain ¶
func NewConditionDstDomain(tester ConditionTester) Condition
func NewConditionDstUrl ¶ added in v0.3.1
func NewConditionDstUrl(tester ConditionTester) Condition
func NewConditionHeader ¶
func NewConditionHeader(tester ConditionTester, key string) Condition
func NewConditionSrcIp ¶
func NewConditionSrcIp(tester ConditionTester) Condition
func NewConditionUser ¶ added in v0.3.2
func NewConditionUser(tester ConditionTester) Condition
type ConditionDstDomain ¶
type ConditionDstDomain struct {
Tester ConditionTester
}
type ConditionDstUrl ¶ added in v0.3.1
type ConditionDstUrl 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 ConditionUser ¶ added in v0.3.2
type ConditionUser struct {
Tester ConditionTester
}
type ConfigMain ¶
type ConfigModule ¶
type ConfigModule struct { ModulesManager ModulesManager Conds []Condition }
func (*ConfigModule) CallCondition ¶
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 CertFile string KeyFile string Config conf.Block Server http.Server }
func (*DefaultServer) GetCertFile ¶ added in v0.3.8
func (t *DefaultServer) GetCertFile() string
func (*DefaultServer) GetErrorLog ¶
func (t *DefaultServer) GetErrorLog() *log.Logger
func (*DefaultServer) GetIdleTimeout ¶
func (t *DefaultServer) GetIdleTimeout() time.Duration
func (*DefaultServer) GetKeyFile ¶ added in v0.3.8
func (t *DefaultServer) GetKeyFile() string
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) SetCertFile ¶ added in v0.3.8
func (t *DefaultServer) SetCertFile(filename string)
func (*DefaultServer) SetErrorLog ¶
func (t *DefaultServer) SetErrorLog(filename string) error
func (*DefaultServer) SetIdleTimeout ¶
func (t *DefaultServer) SetIdleTimeout(timeout string) error
func (*DefaultServer) SetKeyFile ¶ added in v0.3.8
func (t *DefaultServer) SetKeyFile(filename string)
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 GetCertFile() string GetKeyFile() string 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 SetCertFile(filename string) SetKeyFile(filename string) 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.