Documentation ¶
Overview ¶
Package session provides functions for sessions of incoming requests.
Index ¶
- func ContextWithContent(ctx context.Context, content *Content) context.Context
- func ContextWithID(ctx context.Context, id ID) context.Context
- func ContextWithInbound(ctx context.Context, inbound *Inbound) context.Context
- func ContextWithMuxPrefered(ctx context.Context, forced bool) context.Context
- func ContextWithOutbound(ctx context.Context, outbound *Outbound) context.Context
- func ContextWithSockopt(ctx context.Context, s *Sockopt) context.Context
- func ExportIDToError(ctx context.Context) errors.ExportOption
- func MuxPreferedFromContext(ctx context.Context) bool
- type Content
- type ID
- type Inbound
- type Outbound
- type SniffingRequest
- type Sockopt
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContextWithContent ¶
func ContextWithID ¶
ContextWithID returns a new context with the given ID.
func ContextWithInbound ¶
func ContextWithMuxPrefered ¶
ContextWithMuxPrefered returns a new context with the given bool
func ContextWithOutbound ¶
func ContextWithSockopt ¶
ContextWithSockopt returns a new context with Socket configs included
func ExportIDToError ¶
func ExportIDToError(ctx context.Context) errors.ExportOption
ExportIDToError transfers session.ID into an error object, for logging purpose. This can be used with error.WriteToLog().
func MuxPreferedFromContext ¶
MuxPreferedFromContext returns value in this context, or false if not contained.
Types ¶
type Content ¶
type Content struct { // Protocol of current content. Protocol string SniffingRequest SniffingRequest Attributes map[string]string SkipRoutePick bool }
Content is the metadata of the connection content.
func ContentFromContext ¶
func (*Content) SetAttribute ¶
SetAttribute attachs additional string attributes to content.
type ID ¶
type ID uint32
ID of a session.
func IDFromContext ¶
IDFromContext returns ID in this context, or 0 if not contained.
type Inbound ¶
type Inbound struct { // Source address of the inbound connection. Source net.Destination // Getaway address. Gateway net.Destination // Tag of the inbound proxy that handles the connection. Tag string // User is the user that authencates for the inbound. May be nil if the protocol allows anounymous traffic. User *protocol.MemoryUser // Conn is actually internet.Connection. May be nil. Conn net.Conn // Timer of the inbound buf copier. May be nil. Timer *signal.ActivityTimer }
Inbound is the metadata of an inbound connection.
func InboundFromContext ¶
type Outbound ¶
type Outbound struct { // Target address of the outbound connection. Target net.Destination // Gateway address Gateway net.Address }
Outbound is the metadata of an outbound connection.
func OutboundFromContext ¶
type SniffingRequest ¶
SniffingRequest controls the behavior of content sniffing.