Documentation ¶
Overview ¶
Package connlimit provides control over simultaneous connections coming from the same source
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConnErrHandler ¶
type ConnErrHandler struct {
// contains filtered or unexported fields
}
ConnErrHandler connection limiter error handler
func (*ConnErrHandler) ServeHTTP ¶
func (e *ConnErrHandler) ServeHTTP(w http.ResponseWriter, req *http.Request, err error)
type ConnLimitOption ¶
type ConnLimitOption func(l *ConnLimiter) error
ConnLimitOption connection limit option type
func Debug ¶
func Debug(d utils.LoggerDebugFunc) ConnLimitOption
Debug defines if we should generate debug logs. It will still depends on the logger to print them or not.
func ErrorHandler ¶
func ErrorHandler(h utils.ErrorHandler) ConnLimitOption
ErrorHandler sets error handler of the server
func Logger ¶
func Logger(l utils.Logger) ConnLimitOption
Logger defines the logger the connection limiter will use.
type ConnLimiter ¶
type ConnLimiter struct {
// contains filtered or unexported fields
}
ConnLimiter tracks concurrent connection per token and is capable of rejecting connections if they are failed
func New ¶
func New(next http.Handler, extract utils.SourceExtractor, maxConnections int64, options ...ConnLimitOption) (*ConnLimiter, error)
New creates a new ConnLimiter
func (*ConnLimiter) ServeHTTP ¶
func (cl *ConnLimiter) ServeHTTP(w http.ResponseWriter, r *http.Request)
func (*ConnLimiter) Wrap ¶
func (cl *ConnLimiter) Wrap(h http.Handler)
Wrap sets the next handler to be called by connexion limiter handler.
type MaxConnError ¶
type MaxConnError struct {
// contains filtered or unexported fields
}
MaxConnError maximum connections reached error
func (*MaxConnError) Error ¶
func (m *MaxConnError) Error() string