View Source
const (
	HandleAccept         = 0
	HandleHandshake      = 1
	HandleBeforeLocation = 2
	HandleFoundProduct   = 3
	HandleAfterLocation  = 4
	HandleForward        = 5
	HandleReadResponse   = 6
	HandleRequestFinish  = 7
	HandleFinish         = 8

    Callback point.

    View Source
    const (
    	HandlersAccept   = 0 // for AcceptFilter
    	HandlersRequest  = 1 // for RequestFilter
    	HandlersForward  = 2 // for ForwardFilter
    	HandlersResponse = 3 // for ResponseFilter
    	HandlersFinish   = 4 // for FinishFilter

      HandlerList type.

      View Source
      const (
      	BfeHandlerFinish   = 0 // to close the connection after response
      	BfeHandlerGoOn     = 1 // to go on next handler
      	BfeHandlerRedirect = 2 // to redirect
      	BfeHandlerResponse = 3 // to send response
      	BfeHandlerClose    = 4 // to close the connection directly, with no data sent.

        Return value of handler.


        This section is empty.


        func AddModule

        func AddModule(module BfeModule)

          AddModule adds module to moduleMap and modulesAll.

          func CallbackPointName

          func CallbackPointName(point int) string

          func ModConfDir

          func ModConfDir(confRoot string, modName string) string

            ModConfDir get dir for module config.

            format: confRoot/<modName>

            e.g., confRoot = "/home/bfe/conf", modName = "mod_access" return "/home/bfe/conf/mod_access"

            func ModConfPath

            func ModConfPath(confRoot string, modName string) string

              ModConfPath get full path of module config file.

              format: confRoot/<modName>/<modName>.conf

              e.g., confRoot = "/home/bfe/conf", modName = "mod_access" return "/home/bfe/conf/mod_access/mod_access.conf"

              func ModuleStatusGetJSON

              func ModuleStatusGetJSON() ([]byte, error)

                ModuleStatusGetJSON get modules Available and modules Enabled.


                type AcceptFilter

                type AcceptFilter interface {
                	FilterAccept(*bfe_basic.Session) int

                  AcceptFilter filters incoming connections.

                  func NewAcceptFilter

                  func NewAcceptFilter(f func(session *bfe_basic.Session) int) AcceptFilter

                    NewAcceptFilter creates a Filter by passed func

                    type BfeCallbacks

                    type BfeCallbacks struct {
                    	// contains filtered or unexported fields

                    func NewBfeCallbacks

                    func NewBfeCallbacks() *BfeCallbacks

                      NewBfeCallbacks creates a BfeCallbacks.

                      func (*BfeCallbacks) AddFilter

                      func (bcb *BfeCallbacks) AddFilter(point int, f interface{}) error

                        AddFilter adds filter to given callback point.

                        func (*BfeCallbacks) GetHandlerList

                        func (bcb *BfeCallbacks) GetHandlerList(point int) *HandlerList

                          GetHandlerList gets handler list for given callback point

                          func (*BfeCallbacks) ModuleHandlersGetJSON

                          func (bcb *BfeCallbacks) ModuleHandlersGetJSON() ([]byte, error)

                            ModuleHandlersGetJSON get info of hanlders

                            type BfeModule

                            type BfeModule interface {
                            	// Name return name of module.
                            	Name() string
                            	// Init initializes the module.
                            	// Params:
                            	//      - cbs: callback handlers. for register call back function
                            	//      - whs: web monitor handlers. for register web monitor handler
                            	//      - cr: config root path. for get config path of module
                            	Init(cbs *BfeCallbacks, whs *web_monitor.WebHandlers, cr string) error

                            type BfeModules

                            type BfeModules struct {
                            	// contains filtered or unexported fields

                            func NewBfeModules

                            func NewBfeModules() *BfeModules

                              NewBfeModules create new BfeModules

                              func (*BfeModules) GetModule

                              func (bm *BfeModules) GetModule(name string) BfeModule

                                GetModule get work module by name.

                                func (*BfeModules) Init

                                func (bm *BfeModules) Init(cbs *BfeCallbacks, whs *web_monitor.WebHandlers, cr string) error

                                  Init initializes bfe modules.


                                  - cbs: BfeCallbacks
                                  - whs: WebHandlers
                                  - cr : root path for config

                                  func (*BfeModules) RegisterModule

                                  func (bm *BfeModules) RegisterModule(name string) error

                                    RegisterModule register work module, only work module be inited

                                    type BfePlugins

                                    type BfePlugins struct {
                                    	// contains filtered or unexported fields

                                    func NewBfePlugins

                                    func NewBfePlugins() *BfePlugins

                                      NewPlugins create new Plugins

                                      func (*BfePlugins) Init

                                      func (p *BfePlugins) Init(cbs *BfeCallbacks, whs *web_monitor.WebHandlers, cr string) error

                                        Init initializes bfe plugins.


                                        - cbs: BfeCallbacks
                                        - whs: WebHandlers
                                        - cr : root path for config

                                        func (*BfePlugins) RegisterPlugin

                                        func (p *BfePlugins) RegisterPlugin(path string, bfeVersion string) error

                                          RegisterPlugin loads a plugin created with `go build -buildmode=plugin`

                                          type FinishFilter

                                          type FinishFilter interface {
                                          	FilterFinish(*bfe_basic.Session) int

                                            FinishFilter filters finished session(connection)

                                            func NewFinishFilter

                                            func NewFinishFilter(f func(session *bfe_basic.Session) int) FinishFilter

                                              NewFinishFilter create a Filter by passed func.

                                              type ForwardFilter

                                              type ForwardFilter interface {
                                              	FilterForward(*bfe_basic.Request) int

                                                ForwardFilter filters to forward request

                                                func NewForwardFilter

                                                func NewForwardFilter(f func(req *bfe_basic.Request) int) ForwardFilter

                                                  NewForwardFilter create a Filter by passed func

                                                  type HandlerList

                                                  type HandlerList struct {
                                                  	// contains filtered or unexported fields

                                                  func NewHandlerList

                                                  func NewHandlerList(handlerType int) *HandlerList

                                                    NewHandlerList creates a HandlerList.

                                                    func (*HandlerList) AddAcceptFilter

                                                    func (hl *HandlerList) AddAcceptFilter(f interface{}) error

                                                      AddAcceptFilter adds accept filter to handler list.

                                                      func (*HandlerList) AddFinishFilter

                                                      func (hl *HandlerList) AddFinishFilter(f interface{}) error

                                                        AddFinishFilter adds finish filter to handler list.

                                                        func (*HandlerList) AddForwardFilter

                                                        func (hl *HandlerList) AddForwardFilter(f interface{}) error

                                                          AddForwardFilter adds forward filter to handler list.

                                                          func (*HandlerList) AddRequestFilter

                                                          func (hl *HandlerList) AddRequestFilter(f interface{}) error

                                                            AddRequestFilter adds request filter to handler list.

                                                            func (*HandlerList) AddResponseFilter

                                                            func (hl *HandlerList) AddResponseFilter(f interface{}) error

                                                              AddResponseFilter adds response filter to handler list.

                                                              func (*HandlerList) FilterAccept

                                                              func (hl *HandlerList) FilterAccept(session *bfe_basic.Session) int

                                                                FilterAccept filters accept with HandlerList.

                                                                func (*HandlerList) FilterFinish

                                                                func (hl *HandlerList) FilterFinish(session *bfe_basic.Session) int

                                                                  FilterFinish filters finished session with HandlerList.

                                                                  func (*HandlerList) FilterForward

                                                                  func (hl *HandlerList) FilterForward(req *bfe_basic.Request) int

                                                                    FilterForward filters forward with HandlerList.

                                                                    func (*HandlerList) FilterRequest

                                                                    func (hl *HandlerList) FilterRequest(req *bfe_basic.Request) (int, *bfe_http.Response)

                                                                      FilterRequest filters request with HandlerList.

                                                                      func (*HandlerList) FilterResponse

                                                                      func (hl *HandlerList) FilterResponse(req *bfe_basic.Request, res *bfe_http.Response) int

                                                                        FilterResponse filters request with HandlerList.

                                                                        type PluginInfo

                                                                        type PluginInfo struct {
                                                                        	Name        string
                                                                        	Version     string
                                                                        	Description string
                                                                        	Kind        string // TODO plugin kind
                                                                        	Path        string
                                                                        	Init        func(cbs *BfeCallbacks, whs *web_monitor.WebHandlers, cr string) error

                                                                        type RequestFilter

                                                                        type RequestFilter interface {
                                                                        	FilterRequest(request *bfe_basic.Request) (int, *bfe_http.Response)

                                                                          RequestFilter filters incomming requests and return a response or nil. Filters are chained together into a HandlerList.

                                                                          func NewRequestFilter

                                                                          func NewRequestFilter(f func(request *bfe_basic.Request) (int, *bfe_http.Response)) RequestFilter

                                                                            NewRequestFilter create a Filter by passed func.

                                                                            type ResponseFilter

                                                                            type ResponseFilter interface {
                                                                            	FilterResponse(req *bfe_basic.Request, res *bfe_http.Response) int

                                                                              ResponseFilter filters outgoing responses. This can be used to modify the response before it is sent.

                                                                              func NewResponseFilter

                                                                              func NewResponseFilter(f func(req *bfe_basic.Request, res *bfe_http.Response) int) ResponseFilter

                                                                                NewResponseFilter creates a Filter by passed func