Documentation ¶
Index ¶
- Constants
- Variables
- func GetLoggerFields(msg *channel.Message) logrus.Fields
- func NewBindMsg(connId uint32, token string, pubKey []byte, options *ListenOptions) *channel.Message
- func NewConnectMsg(connId uint32, token string, pubKey []byte, options *DialOptions) *channel.Message
- func NewDataMsg(connId uint32, seq uint32, data []byte) *channel.Message
- func NewDialFailedMsg(connId uint32, message string) *channel.Message
- func NewDialMsg(connId uint32, token string, callerId string) *channel.Message
- func NewDialSuccessMsg(connId uint32, newConnId uint32) *channel.Message
- func NewHealthEventMsg(connId uint32, token string, pass bool) *channel.Message
- func NewProbeMsg() *channel.Message
- func NewStateClosedMsg(connId uint32, message string) *channel.Message
- func NewStateConnectedMsg(connId uint32) *channel.Message
- func NewStateSessionEndedMsg(reason string) *channel.Message
- func NewTraceRouteMsg(connId uint32, hops uint32, timestamp uint64) *channel.Message
- func NewTraceRouteResponseMsg(connId uint32, hops uint32, timestamp uint64, hopType, hopId string) *channel.Message
- func NewUnbindMsg(connId uint32, token string) *channel.Message
- func NewUpdateBindMsg(connId uint32, token string, cost *uint16, precedence *Precedence) *channel.Message
- func ParseServiceConfig(service *rest_model.ServiceDetail, configType string, target interface{}) (bool, error)
- type Addr
- type ClientConfig
- type CloseWriter
- type Conn
- type ConnOptions
- type CowMapMsgMux
- func (mux *CowMapMsgMux) AddMsgSink(sink MsgSink) error
- func (mux *CowMapMsgMux) Close()
- func (mux *CowMapMsgMux) ContentType() int32
- func (mux *CowMapMsgMux) GetNextId() uint32
- func (mux *CowMapMsgMux) HandleClose(channel.Channel)
- func (mux *CowMapMsgMux) HandleReceive(msg *channel.Message, _ channel.Channel)
- func (mux *CowMapMsgMux) RemoveMsgSink(sink MsgSink)
- func (mux *CowMapMsgMux) RemoveMsgSinkById(sinkId uint32)
- type CryptoMethod
- type DialOptions
- type DialResult
- type DomainName
- type Identifiable
- type InterceptDialOptions
- type InterceptV1Config
- type ListenOptions
- type Listener
- type MsgChannel
- func (ec *MsgChannel) Id() uint32
- func (ec *MsgChannel) NextMsgId() uint32
- func (ec *MsgChannel) SendState(msg *channel.Message) error
- func (ec *MsgChannel) SetWriteDeadline(t time.Time) error
- func (ec *MsgChannel) TraceMsg(source string, msg *channel.Message)
- func (ec *MsgChannel) Write(data []byte) (n int, err error)
- func (ec *MsgChannel) WriteTraced(data []byte, msgUUID []byte, hdrs map[int32][]byte) (int, error)
- type MsgEvent
- type MsgMux
- type MsgSink
- type PortRange
- type Precedence
- type RouterClient
- type RouterConn
- type Sequenced
- type ServiceConn
- type SessionListener
- type TraceRouteResult
- type ZitiAddress
Constants ¶
View Source
const ( ContentTypeConnect = 60783 ContentTypeStateConnected = 60784 ContentTypeStateClosed = 60785 ContentTypeData = 60786 ContentTypeDial = 60787 ContentTypeDialSuccess = 60788 ContentTypeDialFailed = 60789 ContentTypeBind = 60790 ContentTypeUnbind = 60791 ContentTypeStateSessionEnded = 60792 ContentTypeProbe = 60793 ContentTypeUpdateBind = 60794 ContentTypeHealthEvent = 60795 ContentTypeTraceRoute = 60796 ContentTypeTraceRouteResponse = 60797 ConnIdHeader = 1000 SeqHeader = 1001 SessionTokenHeader = 1002 PublicKeyHeader = 1003 CostHeader = 1004 PrecedenceHeader = 1005 TerminatorIdentityHeader = 1006 TerminatorIdentitySecretHeader = 1007 CallerIdHeader = 1008 CryptoMethodHeader = 1009 FlagsHeader = 1010 AppDataHeader = 1011 RouterProvidedConnId = 1012 HealthStatusHeader = 1013 ErrorCodeHeader = 1014 TimestampHeader = 1015 TraceHopCountHeader = 1016 TraceHopTypeHeader = 1017 TraceHopIdHeader = 1018 TraceSourceRequestIdHeader = 1019 TraceError = 1020 ErrorCodeInternal = 1 ErrorCodeInvalidApiSession = 2 ErrorCodeInvalidSession = 3 ErrorCodeWrongSessionType = 4 ErrorCodeInvalidEdgeRouterForSession = 5 ErrorCodeInvalidService = 6 ErrorCodeTunnelingNotEnabled = 7 ErrorCodeInvalidTerminator = 8 ErrorCodeInvalidPrecedence = 9 ErrorCodeInvalidCost = 10 ErrorCodeEncryptionDataMissing = 11 PrecedenceDefault Precedence = 0 PrecedenceRequired Precedence = 1 PrecedenceFailed Precedence = 2 // Put this in the reflected range so replies will share the same UUID UUIDHeader = 128 // Crypto Methods CryptoMethodLibsodium CryptoMethod = 0 // default: crypto_kx_*, crypto_secretstream_* CryptoMethodSSL CryptoMethod = 1 // OpenSSL(possibly with FIPS): ECDH, AES256-GCM // Edge Payload flags FIN = 0x1 )
View Source
const InterceptV1 = "intercept.v1"
Variables ¶
View Source
var ContentTypeNames = map[int32]string{ ContentTypeConnect: "EdgeConnectType", ContentTypeStateConnected: "EdgeStateConnectedType", ContentTypeStateClosed: "EdgeStateClosedType", ContentTypeData: "EdgeDataType", ContentTypeDial: "EdgeDialType", ContentTypeDialSuccess: "EdgeDialSuccessType", ContentTypeDialFailed: "EdgeDialFailedType", ContentTypeBind: "EdgeBindType", ContentTypeUnbind: "EdgeUnbindType", ContentTypeProbe: "EdgeProbeType", }
View Source
var ContentTypeValue = map[string]int32{ "EdgeConnectType": ContentTypeConnect, "EdgeStateConnectedType": ContentTypeStateConnected, "EdgeStateClosedType": ContentTypeStateClosed, "EdgeDataType": ContentTypeData, "EdgeDialType": ContentTypeDial, "EdgeDialSuccessType": ContentTypeDialSuccess, "EdgeDialFailedType": ContentTypeDialFailed, "EdgeBindType": ContentTypeBind, "EdgeUnbindType": ContentTypeUnbind, }
Functions ¶
func GetLoggerFields ¶
func NewBindMsg ¶
func NewBindMsg(connId uint32, token string, pubKey []byte, options *ListenOptions) *channel.Message
func NewConnectMsg ¶
func NewConnectMsg(connId uint32, token string, pubKey []byte, options *DialOptions) *channel.Message
func NewDataMsg ¶
func NewDialFailedMsg ¶
func NewDialMsg ¶
func NewDialSuccessMsg ¶
func NewHealthEventMsg ¶ added in v0.15.30
func NewProbeMsg ¶
func NewProbeMsg() *channel.Message
func NewStateClosedMsg ¶
func NewStateConnectedMsg ¶
func NewStateConnectedMsg(connId uint32) *channel.Message
func NewStateSessionEndedMsg ¶
func NewStateSessionEndedMsg(reason string) *channel.Message
func NewTraceRouteMsg ¶ added in v0.15.105
func NewTraceRouteResponseMsg ¶ added in v0.15.105
func NewUnbindMsg ¶
func NewUpdateBindMsg ¶
func NewUpdateBindMsg(connId uint32, token string, cost *uint16, precedence *Precedence) *channel.Message
func ParseServiceConfig ¶ added in v0.19.0
func ParseServiceConfig(service *rest_model.ServiceDetail, configType string, target interface{}) (bool, error)
Types ¶
type Addr ¶
type Addr struct {
MsgCh MsgChannel
}
type ClientConfig ¶ added in v0.17.0
type ClientConfig struct { Protocol string Hostname ZitiAddress Port int }
func (*ClientConfig) String ¶ added in v0.17.0
func (s *ClientConfig) String() string
func (*ClientConfig) ToInterceptV1Config ¶ added in v0.17.0
func (self *ClientConfig) ToInterceptV1Config() *InterceptV1Config
type CloseWriter ¶ added in v0.14.0
type CloseWriter interface {
CloseWrite() error
}
type Conn ¶
type Conn interface { ServiceConn Identifiable CompleteAcceptSuccess() error CompleteAcceptFailed(err error) }
type ConnOptions ¶
type CowMapMsgMux ¶ added in v0.15.0
func (*CowMapMsgMux) AddMsgSink ¶ added in v0.15.0
func (mux *CowMapMsgMux) AddMsgSink(sink MsgSink) error
func (*CowMapMsgMux) Close ¶ added in v0.15.0
func (mux *CowMapMsgMux) Close()
func (*CowMapMsgMux) ContentType ¶ added in v0.15.0
func (mux *CowMapMsgMux) ContentType() int32
func (*CowMapMsgMux) GetNextId ¶ added in v0.15.2
func (mux *CowMapMsgMux) GetNextId() uint32
func (*CowMapMsgMux) HandleClose ¶ added in v0.15.0
func (mux *CowMapMsgMux) HandleClose(channel.Channel)
func (*CowMapMsgMux) HandleReceive ¶ added in v0.15.0
func (mux *CowMapMsgMux) HandleReceive(msg *channel.Message, _ channel.Channel)
func (*CowMapMsgMux) RemoveMsgSink ¶ added in v0.15.0
func (mux *CowMapMsgMux) RemoveMsgSink(sink MsgSink)
func (*CowMapMsgMux) RemoveMsgSinkById ¶ added in v0.15.0
func (mux *CowMapMsgMux) RemoveMsgSinkById(sinkId uint32)
type CryptoMethod ¶ added in v0.13.55
type CryptoMethod byte
type DialOptions ¶ added in v0.13.47
type DialOptions struct { ConnectTimeout time.Duration Identity string CallerId string AppData []byte }
func (DialOptions) GetConnectTimeout ¶ added in v0.13.47
func (d DialOptions) GetConnectTimeout() time.Duration
type DialResult ¶
func UnmarshalDialResult ¶
func UnmarshalDialResult(msg *channel.Message) (*DialResult, error)
type DomainName ¶ added in v0.17.0
type DomainName string
func (DomainName) Match ¶ added in v0.17.0
func (dn DomainName) Match(hostname string) int
type Identifiable ¶
type Identifiable interface {
Id() uint32
}
type InterceptDialOptions ¶ added in v0.19.0
type InterceptV1Config ¶ added in v0.17.0
type InterceptV1Config struct { Addresses []ZitiAddress PortRanges []*PortRange Protocols []string SourceIp *string DialOptions *InterceptDialOptions `json:"dialOptions"` Service *rest_model.ServiceDetail }
func (*InterceptV1Config) Match ¶ added in v0.17.0
func (intercept *InterceptV1Config) Match(network, hostname string, port uint16) int
Match returns the matching score of the given target address against this intercept. A negative one (-1) is returned if no match is found. If the address is matched, a 32bit integer with upper bits set to the hostname match and lower bits to port match.
type ListenOptions ¶
type ListenOptions struct { Cost uint16 Precedence Precedence ConnectTimeout time.Duration MaxConnections int Identity string IdentitySecret string BindUsingEdgeIdentity bool ManualStart bool }
func (*ListenOptions) GetConnectTimeout ¶
func (options *ListenOptions) GetConnectTimeout() time.Duration
func (*ListenOptions) String ¶
func (options *ListenOptions) String() string
type MsgChannel ¶
type MsgChannel struct { channel.Channel // contains filtered or unexported fields }
func NewEdgeMsgChannel ¶
func NewEdgeMsgChannel(ch channel.Channel, connId uint32) *MsgChannel
func (*MsgChannel) Id ¶
func (ec *MsgChannel) Id() uint32
func (*MsgChannel) NextMsgId ¶ added in v0.15.0
func (ec *MsgChannel) NextMsgId() uint32
func (*MsgChannel) SendState ¶
func (ec *MsgChannel) SendState(msg *channel.Message) error
func (*MsgChannel) SetWriteDeadline ¶
func (ec *MsgChannel) SetWriteDeadline(t time.Time) error
func (*MsgChannel) TraceMsg ¶
func (ec *MsgChannel) TraceMsg(source string, msg *channel.Message)
func (*MsgChannel) WriteTraced ¶
type MsgEvent ¶
func UnmarshalMsgEvent ¶
func (*MsgEvent) GetLoggerFields ¶
func (*MsgEvent) GetSequence ¶
type MsgMux ¶
type MsgMux interface { channel.TypedReceiveHandler channel.CloseHandler AddMsgSink(sink MsgSink) error RemoveMsgSink(sink MsgSink) RemoveMsgSinkById(sinkId uint32) Close() GetNextId() uint32 }
func NewCowMapMsgMux ¶ added in v0.15.0
func NewCowMapMsgMux() MsgMux
type Precedence ¶
type Precedence byte
type RouterClient ¶ added in v0.15.5
type RouterClient interface { Connect(service *rest_model.ServiceDetail, session *rest_model.SessionDetail, options *DialOptions) (Conn, error) Listen(service *rest_model.ServiceDetail, session *rest_model.SessionDetail, options *ListenOptions) (Listener, error) }
type RouterConn ¶
type ServiceConn ¶ added in v0.12.0
type SessionListener ¶ added in v0.13.2
type SessionListener interface { Listener GetCurrentSession() *rest_model.SessionDetail SetConnectionChangeHandler(func(conn []Listener)) SetErrorEventHandler(func(error)) GetErrorEventHandler() func(error) }
type TraceRouteResult ¶ added in v0.15.105
type ZitiAddress ¶ added in v0.17.0
type ZitiAddress struct {
// contains filtered or unexported fields
}
func NewZitiAddress ¶ added in v0.17.0
func NewZitiAddress(str string) (*ZitiAddress, error)
func (*ZitiAddress) Matches ¶ added in v0.17.0
func (self *ZitiAddress) Matches(v any) int
func (*ZitiAddress) UnmarshalText ¶ added in v0.17.0
func (self *ZitiAddress) UnmarshalText(data []byte) error
Click to show internal directories.
Click to hide internal directories.