context

package
v0.1.11 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2020 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrIllegalStage = errors.New("illegal stage")
)
View Source
var (
	ErrNoRequestSet = errors.New("no request set")
)
View Source
var (
	NilRequestId = Id(uuid.Nil)
)

Functions

This section is empty.

Types

type Client

type Client struct {
	FromOtherReverseProxy bool
	Response              http.ResponseWriter
	Request               *http.Request

	Status   int
	Started  time.Time
	Duration time.Duration
	// contains filtered or unexported fields
}

func (*Client) Address

func (instance *Client) Address() (string, error)

func (Client) AsMap

func (instance Client) AsMap() map[string]interface{}

func (Client) Host

func (instance Client) Host() string

func (*Client) Origin

func (instance *Client) Origin() (*url.URL, error)

func (*Client) RequestedUrl

func (instance *Client) RequestedUrl() (*url.URL, error)

type Context

type Context struct {
	Client   Client
	Upstream Upstream
	Id       Id
	Stage    Stage

	Rule   rules.Rule
	Result Result
	Error  error

	Properties map[string]interface{}
}

func AcquireContext

func AcquireContext(fromOtherReverseProxy bool, resp http.ResponseWriter, req *http.Request) *Context

func (*Context) AsMap

func (instance *Context) AsMap() map[string]interface{}

func (*Context) Done

func (instance *Context) Done(result Result, err ...error)

func (*Context) Log

func (instance *Context) Log() log.FieldLogger

func (*Context) MarkError

func (instance *Context) MarkError(err error)

func (*Context) MarkUnavailable

func (instance *Context) MarkUnavailable(err error)

func (*Context) MarkUnknown

func (instance *Context) MarkUnknown()

func (*Context) MarshalJSON

func (instance *Context) MarshalJSON() ([]byte, error)

func (*Context) Release

func (instance *Context) Release()

type Id

type Id uuid.UUID

func NewId

func NewId(_ *http.Request) Id

func (Id) MarshalJSON

func (instance Id) MarshalJSON() ([]byte, error)

func (Id) String

func (instance Id) String() string

type RedirectResult

type RedirectResult struct {
	StatusCode int
	Target     string
}

func (RedirectResult) Name

func (instance RedirectResult) Name() string

func (RedirectResult) Status

func (instance RedirectResult) Status() int

func (RedirectResult) String

func (instance RedirectResult) String() string

func (RedirectResult) WasResponseSendToClient

func (instance RedirectResult) WasResponseSendToClient() bool

type Result

type Result interface {
	Name() string
	String() string
	Status() int
	WasResponseSendToClient() bool
}

type ResultHandler

type ResultHandler func(ctx *Context)

type SimpleResult

type SimpleResult uint8
var (
	ResultUnknown                       SimpleResult = 0
	ResultSuccess                       SimpleResult = 1
	ResultOk                            SimpleResult = 2
	ResultFailedWithUnexpectedError     SimpleResult = 3
	ResultFailedWithRuleNotFound        SimpleResult = 4
	ResultFailedWithUpstreamUnavailable SimpleResult = 5
	ResultFailedWithAccessDenied        SimpleResult = 6
	ResultFallback                      SimpleResult = 7
	ResultFailedWithUnauthorized        SimpleResult = 8
)

func (SimpleResult) Name

func (instance SimpleResult) Name() string

func (SimpleResult) Status

func (instance SimpleResult) Status() int

func (SimpleResult) String

func (instance SimpleResult) String() string

func (SimpleResult) WasResponseSendToClient

func (instance SimpleResult) WasResponseSendToClient() bool

type Stage

type Stage uint8
const (
	StageUnknown                Stage = 0
	StageCreated                Stage = 1
	StageEvaluateClientRequest  Stage = 2
	StagePrepareUpstreamRequest Stage = 3
	StageSendRequestToUpstream  Stage = 4
	StagePrepareClientResponse  Stage = 5
	StageSendResponseToClient   Stage = 6
	StageDone                   Stage = 7
)

func ParseStage

func ParseStage(plain string) (Stage, error)

func (Stage) String

func (instance Stage) String() string

type Upstream

type Upstream struct {
	Response *http.Response
	Request  *http.Request
	Address  net.Addr
	Cancel   context.CancelFunc

	Status   int
	Started  time.Time
	Duration time.Duration
}

func (Upstream) AsMap

func (instance Upstream) AsMap(r rules.Rule) map[string]interface{}

Jump to

Keyboard shortcuts

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