h2tp

package
v0.0.0-...-c3dc23c Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2023 License: Unlicense Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatusContinue           = 100 // RFC 7231, 6.2.1
	StatusSwitchingProtocols = 101 // RFC 7231, 6.2.2
	StatusProcessing         = 102 // RFC 2518, 10.1
	StatusEarlyHints         = 103 // RFC 8297

	StatusOK                   = 200 // RFC 7231, 6.3.1
	StatusCreated              = 201 // RFC 7231, 6.3.2
	StatusAccepted             = 202 // RFC 7231, 6.3.3
	StatusNonAuthoritativeInfo = 203 // RFC 7231, 6.3.4
	StatusNoContent            = 204 // RFC 7231, 6.3.5
	StatusResetContent         = 205 // RFC 7231, 6.3.6
	StatusPartialContent       = 206 // RFC 7233, 4.1
	StatusMultiStatus          = 207 // RFC 4918, 11.1
	StatusAlreadyReported      = 208 // RFC 5842, 7.1
	StatusIMUsed               = 226 // RFC 3229, 10.4.1

	StatusMultipleChoices  = 300 // RFC 7231, 6.4.1
	StatusMovedPermanently = 301 // RFC 7231, 6.4.2
	StatusFound            = 302 // RFC 7231, 6.4.3
	StatusSeeOther         = 303 // RFC 7231, 6.4.4
	StatusNotModified      = 304 // RFC 7232, 4.1
	StatusUseProxy         = 305 // RFC 7231, 6.4.5

	StatusTemporaryRedirect = 307 // RFC 7231, 6.4.7
	StatusPermanentRedirect = 308 // RFC 7538, 3

	StatusBadRequest                   = 400 // RFC 7231, 6.5.1
	StatusUnauthorized                 = 401 // RFC 7235, 3.1
	StatusPaymentRequired              = 402 // RFC 7231, 6.5.2
	StatusForbidden                    = 403 // RFC 7231, 6.5.3
	StatusNotFound                     = 404 // RFC 7231, 6.5.4
	StatusMethodNotAllowed             = 405 // RFC 7231, 6.5.5
	StatusNotAcceptable                = 406 // RFC 7231, 6.5.6
	StatusProxyAuthRequired            = 407 // RFC 7235, 3.2
	StatusRequestTimeout               = 408 // RFC 7231, 6.5.7
	StatusConflict                     = 409 // RFC 7231, 6.5.8
	StatusGone                         = 410 // RFC 7231, 6.5.9
	StatusLengthRequired               = 411 // RFC 7231, 6.5.10
	StatusPreconditionFailed           = 412 // RFC 7232, 4.2
	StatusRequestEntityTooLarge        = 413 // RFC 7231, 6.5.11
	StatusRequestURITooLong            = 414 // RFC 7231, 6.5.12
	StatusUnsupportedMediaType         = 415 // RFC 7231, 6.5.13
	StatusRequestedRangeNotSatisfiable = 416 // RFC 7233, 4.4
	StatusExpectationFailed            = 417 // RFC 7231, 6.5.14
	StatusTeapot                       = 418 // RFC 7168, 2.3.3
	StatusMisdirectedRequest           = 421 // RFC 7540, 9.1.2
	StatusUnprocessableEntity          = 422 // RFC 4918, 11.2
	StatusLocked                       = 423 // RFC 4918, 11.3
	StatusFailedDependency             = 424 // RFC 4918, 11.4
	StatusUpgradeRequired              = 426 // RFC 7231, 6.5.15
	StatusPreconditionRequired         = 428 // RFC 6585, 3
	StatusTooManyRequests              = 429 // RFC 6585, 4
	StatusRequestHeaderFieldsTooLarge  = 431 // RFC 6585, 5
	StatusUnavailableForLegalReasons   = 451 // RFC 7725, 3

	StatusInternalServerError           = 500 // RFC 7231, 6.6.1
	StatusNotImplemented                = 501 // RFC 7231, 6.6.2
	StatusBadGateway                    = 502 // RFC 7231, 6.6.3
	StatusServiceUnavailable            = 503 // RFC 7231, 6.6.4
	StatusGatewayTimeout                = 504 // RFC 7231, 6.6.5
	StatusHTTPVersionNotSupported       = 505 // RFC 7231, 6.6.6
	StatusVariantAlsoNegotiates         = 506 // RFC 2295, 8.1
	StatusInsufficientStorage           = 507 // RFC 4918, 11.5
	StatusLoopDetected                  = 508 // RFC 5842, 7.2
	StatusNotExtended                   = 510 // RFC 2774, 7
	StatusNetworkAuthenticationRequired = 511 // RFC 6585, 6
)

Variables

View Source
var (
	MaxBufCap = 10 << 20
)

Functions

func Run

func Run(addr string, routers map[string]*Router) error

func StatusMessage

func StatusMessage(statusCode int) string

StatusMessage returns HTTP status message for the given status code.

Types

type Error

type Error interface {
	StatusCode() int
	Header() http.Header
	Body() []byte
}

type FsOpts

type FsOpts struct {
	URLPrefix     string
	PreCheck      func(ctx *RequestCtx) bool
	DisableIndex  bool
	IndexRenderer func(rctx *RequestCtx, infos []fs.FileInfo)
}

type Group

type Group struct {
	// contains filtered or unexported fields
}

func NewGroup

func NewGroup(prefix string) *Group

func (*Group) Register

func (group *Group) Register(methods string, pattern string, handler Handler)

func (*Group) Use

func (group *Group) Use(middleware Middleware)

type Handler

type Handler interface {
	Handle(rctx *RequestCtx)
}

type HandlerFunc

type HandlerFunc func(rctx *RequestCtx)

func (HandlerFunc) Handle

func (f HandlerFunc) Handle(rctx *RequestCtx)

type Middleware

type Middleware interface {
	Handle(rctx *RequestCtx, next func())
}

type MiddlewareFunc

type MiddlewareFunc func(rctx *RequestCtx, next func())

func (MiddlewareFunc) Handle

func (f MiddlewareFunc) Handle(rctx *RequestCtx, next func())

type RecoverFunc

type RecoverFunc func(v any) Error

type RequestCtx

type RequestCtx struct {
	Request    *http.Request
	PathParams httprouter.Params
	Response   Response
	// contains filtered or unexported fields
}

func (*RequestCtx) BindAndValidate

func (rctx *RequestCtx) BindAndValidate(dist any) error

func (*RequestCtx) Deadline

func (rctx *RequestCtx) Deadline() (deadline time.Time, ok bool)

func (*RequestCtx) Done

func (rctx *RequestCtx) Done() <-chan struct{}

func (*RequestCtx) Err

func (rctx *RequestCtx) Err() error

func (*RequestCtx) NoTempResponse

func (rctx *RequestCtx) NoTempResponse() bool

func (*RequestCtx) Value

func (rctx *RequestCtx) Value(key any) any

type Response

type Response struct {
	StatusCode int
	// contains filtered or unexported fields
}

func (*Response) Cap

func (resp *Response) Cap() int

func (*Response) Grow

func (resp *Response) Grow(v int)

func (*Response) Header

func (resp *Response) Header() http.Header

func (*Response) Len

func (resp *Response) Len() int

func (*Response) Reset

func (resp *Response) Reset()

func (*Response) ResetAll

func (resp *Response) ResetAll()

func (*Response) Truncate

func (resp *Response) Truncate(v int)

func (*Response) Write

func (resp *Response) Write(p []byte) (int, error)

func (*Response) WriteJSON

func (resp *Response) WriteJSON(v any) error

func (*Response) WriteString

func (resp *Response) WriteString(v string) (int, error)

type Router

type Router struct {
	Recover  RecoverFunc
	NotFound Handler
	// contains filtered or unexported fields
}

func NewRouter

func NewRouter() *Router

func (*Router) AddGroup

func (r *Router) AddGroup(group *Group)

func (*Router) Register

func (r *Router) Register(methods string, pattern string, handler Handler)

func (*Router) RegisterFs

func (r *Router) RegisterFs(methods string, filesystem any, opts *FsOpts)

func (*Router) RegisterWs

func (r *Router) RegisterWs(pattern string, handler WsHandler)

func (*Router) Use

func (r *Router) Use(middleware Middleware)

type StatusError

type StatusError int

func (StatusError) Body

func (status StatusError) Body() []byte

func (StatusError) Header

func (status StatusError) Header() http.Header

func (StatusError) StatusCode

func (status StatusError) StatusCode() int

type WsConn

type WsConn struct {
	Handshake ws.Handshake
	// contains filtered or unexported fields
}

func (*WsConn) Read

func (c *WsConn) Read() ([]byte, ws.OpCode, error)

func (*WsConn) Write

func (c *WsConn) Write(op ws.OpCode, data []byte) error

type WsHandler

type WsHandler interface {
	Handle(conn *WsConn)
}

type WsHandlerFunc

type WsHandlerFunc func(conn *WsConn)

func (WsHandlerFunc) Handle

func (fn WsHandlerFunc) Handle(conn *WsConn)

Jump to

Keyboard shortcuts

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