Documentation ¶
Index ¶
Constants ¶
const ( // RejectReported represents that flow was reported as rejected RejectReported bool = true // AcceptReported represents that flow was reported as accepted AcceptReported bool = false )
Variables ¶
This section is empty.
Functions ¶
func TCPConnectionExpirationNotifier ¶
TCPConnectionExpirationNotifier handles processing the expiration of an element
Types ¶
type AuthInfo ¶
type AuthInfo struct { LocalContext []byte RemoteContext []byte RemoteContextID string RemotePublicKey interface{} RemoteIP string RemotePort string LocalServiceContext []byte RemoteServiceContext []byte }
AuthInfo keeps authentication information about a connection
type ProxyConnState ¶
type ProxyConnState int
ProxyConnState identifies the constants of the state of a proxied connection
const ( // ClientTokenSend Init token send for client ClientTokenSend ProxyConnState = iota // ServerReceivePeerToken -- waiting to receive peer token ServerReceivePeerToken // ServerSendToken -- Send our own token and the client tokens ServerSendToken // ClientPeerTokenReceive -- Receive signed tokens from server ClientPeerTokenReceive // ClientSendSignedPair -- Sign the (token/nonce pair) and send ClientSendSignedPair // ServerAuthenticatePair -- Authenticate pair of tokens ServerAuthenticatePair )
type ProxyConnection ¶
type ProxyConnection struct { sync.Mutex Auth AuthInfo ReportFlowPolicy *policy.FlowPolicy PacketFlowPolicy *policy.FlowPolicy // contains filtered or unexported fields }
ProxyConnection is a record to keep state of proxy auth
func NewProxyConnection ¶
func NewProxyConnection() *ProxyConnection
NewProxyConnection returns a new Proxy Connection
func (*ProxyConnection) GetState ¶
func (c *ProxyConnection) GetState() ProxyConnState
GetState returns the state of a proxy connection
func (*ProxyConnection) SetReported ¶
func (c *ProxyConnection) SetReported(reported bool)
SetReported sets the flag to reported when the conn is reported
func (*ProxyConnection) SetState ¶
func (c *ProxyConnection) SetState(state ProxyConnState)
SetState is used to setup the state for the Proxy Connection
type TCPConnection ¶
type TCPConnection struct { sync.RWMutex Auth AuthInfo // ServiceData allows services to associate state with a connection ServiceData interface{} // Context is the pucontext.PUContext that is associated with this connection // Minimizes the number of caches and lookups Context *pucontext.PUContext // TimeOut signals the timeout to be used by the state machines TimeOut time.Duration // ServiceConnection indicates that this connection is handled by a service ServiceConnection bool // ReportFlowPolicy holds the last matched observed policy ReportFlowPolicy *policy.FlowPolicy // PacketFlowPolicy holds the last matched actual policy PacketFlowPolicy *policy.FlowPolicy // contains filtered or unexported fields }
TCPConnection is information regarding TCP Connection
func NewTCPConnection ¶
func NewTCPConnection(context *pucontext.PUContext) *TCPConnection
NewTCPConnection returns a TCPConnection information struct
func (*TCPConnection) Cleanup ¶
func (c *TCPConnection) Cleanup(expiration bool)
Cleanup will provide information when a connection is removed by a timer.
func (*TCPConnection) GetState ¶
func (c *TCPConnection) GetState() TCPFlowState
GetState is used to return the state
func (*TCPConnection) SetReported ¶
func (c *TCPConnection) SetReported(flowState bool)
SetReported is used to track if a flow is reported
func (*TCPConnection) SetState ¶
func (c *TCPConnection) SetState(state TCPFlowState)
SetState is used to setup the state for the TCP connection
func (*TCPConnection) String ¶
func (c *TCPConnection) String() string
String returns a printable version of connection
type TCPFlowState ¶
type TCPFlowState int
TCPFlowState identifies the constants of the state of a TCP connectioncon
const ( // TCPSynSend is the state where the Syn packets has been send, but no response has been received TCPSynSend TCPFlowState = iota // TCPSynReceived indicates that the syn packet has been received TCPSynReceived // TCPSynAckSend indicates that the SynAck packet has been send TCPSynAckSend // TCPSynAckReceived is the state where the SynAck has been received TCPSynAckReceived // TCPAckSend indicates that the ack packets has been sent TCPAckSend // TCPAckProcessed is the state that the negotiation has been completed TCPAckProcessed // TCPData indicates that the packets are now data packets TCPData )