Documentation ¶
Overview ¶
Package protocol implements the NAT Traversal protocol
Package protocol implements the NAT Traversal protocol ¶
Package protocol implements the NAT Traversal protocol ¶
Package protocol implements the NAT Traversal protocol ¶
Package protocol implements the NAT Traversal protocol ¶
Package protocol implements the NAT Traversal protocol ¶
Package protocol implements the NAT Traversal protocol ¶
Package protocol implements the NAT Traversal protocol
Index ¶
- Constants
- type Interface
- type Protocol
- func (protocol *Protocol) Endpoint() nex.EndpointInterface
- func (protocol *Protocol) HandlePacket(packet nex.PacketInterface)
- func (protocol *Protocol) SetEndpoint(endpoint nex.EndpointInterface)
- func (protocol *Protocol) SetHandlerGetRelaySignatureKey(...)
- func (protocol *Protocol) SetHandlerInitiateProbe(...)
- func (protocol *Protocol) SetHandlerReportNATProperties(...)
- func (protocol *Protocol) SetHandlerReportNATTraversalResult(...)
- func (protocol *Protocol) SetHandlerReportNATTraversalResultDetail(...)
- func (protocol *Protocol) SetHandlerRequestProbeInitiation(...)
- func (protocol *Protocol) SetHandlerRequestProbeInitiationExt(...)
Constants ¶
const ( // ProtocolID is the protocol ID for the Message Delivery protocol ProtocolID = 0x3 // MethodRequestProbeInitiation is the method ID for the method RequestProbeInitiation MethodRequestProbeInitiation = 0x1 // MethodInitiateProbe is the method ID for the method InitiateProbe MethodInitiateProbe = 0x2 // MethodRequestProbeInitiationExt is the method ID for the method RequestProbeInitiationExt MethodRequestProbeInitiationExt = 0x3 // MethodReportNATTraversalResult is the method ID for the method ReportNATTraversalResult MethodReportNATTraversalResult = 0x4 // MethodReportNATProperties is the method ID for the method ReportNATProperties MethodReportNATProperties = 0x5 // MethodGetRelaySignatureKey is the method ID for the method GetRelaySignatureKey MethodGetRelaySignatureKey = 0x6 // MethodReportNATTraversalResultDetail is the method ID for the method ReportNATTraversalResultDetail MethodReportNATTraversalResultDetail = 0x7 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Interface ¶
type Interface interface { Endpoint() nex.EndpointInterface SetEndpoint(endpoint nex.EndpointInterface) SetHandlerRequestProbeInitiation(handler func(err error, packet nex.PacketInterface, callID uint32, urlTargetList *types.List[*types.StationURL]) (*nex.RMCMessage, *nex.Error)) SetHandlerInitiateProbe(handler func(err error, packet nex.PacketInterface, callID uint32, urlStationToProbe *types.StationURL) (*nex.RMCMessage, *nex.Error)) SetHandlerRequestProbeInitiationExt(handler func(err error, packet nex.PacketInterface, callID uint32, targetList *types.List[*types.String], stationToProbe *types.String) (*nex.RMCMessage, *nex.Error)) SetHandlerReportNATTraversalResult(handler func(err error, packet nex.PacketInterface, callID uint32, cid *types.PrimitiveU32, result *types.PrimitiveBool, rtt *types.PrimitiveU32) (*nex.RMCMessage, *nex.Error)) SetHandlerReportNATProperties(handler func(err error, packet nex.PacketInterface, callID uint32, natmapping *types.PrimitiveU32, natfiltering *types.PrimitiveU32, rtt *types.PrimitiveU32) (*nex.RMCMessage, *nex.Error)) SetHandlerGetRelaySignatureKey(handler func(err error, packet nex.PacketInterface, callID uint32) (*nex.RMCMessage, *nex.Error)) SetHandlerReportNATTraversalResultDetail(handler func(err error, packet nex.PacketInterface, callID uint32, cid *types.PrimitiveU32, result *types.PrimitiveBool, detail *types.PrimitiveS32, rtt *types.PrimitiveU32) (*nex.RMCMessage, *nex.Error)) }
Interface implements the methods present on the NAT Traversal protocol struct
type Protocol ¶
type Protocol struct { RequestProbeInitiation func(err error, packet nex.PacketInterface, callID uint32, urlTargetList *types.List[*types.StationURL]) (*nex.RMCMessage, *nex.Error) InitiateProbe func(err error, packet nex.PacketInterface, callID uint32, urlStationToProbe *types.StationURL) (*nex.RMCMessage, *nex.Error) RequestProbeInitiationExt func(err error, packet nex.PacketInterface, callID uint32, targetList *types.List[*types.String], stationToProbe *types.String) (*nex.RMCMessage, *nex.Error) ReportNATTraversalResult func(err error, packet nex.PacketInterface, callID uint32, cid *types.PrimitiveU32, result *types.PrimitiveBool, rtt *types.PrimitiveU32) (*nex.RMCMessage, *nex.Error) ReportNATProperties func(err error, packet nex.PacketInterface, callID uint32, natmapping *types.PrimitiveU32, natfiltering *types.PrimitiveU32, rtt *types.PrimitiveU32) (*nex.RMCMessage, *nex.Error) GetRelaySignatureKey func(err error, packet nex.PacketInterface, callID uint32) (*nex.RMCMessage, *nex.Error) ReportNATTraversalResultDetail func(err error, packet nex.PacketInterface, callID uint32, cid *types.PrimitiveU32, result *types.PrimitiveBool, detail *types.PrimitiveS32, rtt *types.PrimitiveU32) (*nex.RMCMessage, *nex.Error) Patches nex.ServiceProtocol PatchedMethods []uint32 // contains filtered or unexported fields }
Protocol stores all the RMC method handlers for the NAT Traversal protocol and listens for requests
func NewProtocol ¶
func NewProtocol() *Protocol
NewProtocol returns a new NAT Traversal NEX protocol
func (*Protocol) Endpoint ¶
func (protocol *Protocol) Endpoint() nex.EndpointInterface
Endpoint returns the endpoint implementing the protocol
func (*Protocol) HandlePacket ¶
func (protocol *Protocol) HandlePacket(packet nex.PacketInterface)
HandlePacket sends the packet to the correct RMC method handler
func (*Protocol) SetEndpoint ¶
func (protocol *Protocol) SetEndpoint(endpoint nex.EndpointInterface)
SetEndpoint sets the endpoint implementing the protocol
func (*Protocol) SetHandlerGetRelaySignatureKey ¶
func (protocol *Protocol) SetHandlerGetRelaySignatureKey(handler func(err error, packet nex.PacketInterface, callID uint32) (*nex.RMCMessage, *nex.Error))
SetHandlerGetRelaySignatureKey sets the handler for the GetRelaySignatureKey method
func (*Protocol) SetHandlerInitiateProbe ¶
func (protocol *Protocol) SetHandlerInitiateProbe(handler func(err error, packet nex.PacketInterface, callID uint32, urlStationToProbe *types.StationURL) (*nex.RMCMessage, *nex.Error))
SetHandlerInitiateProbe sets the handler for the InitiateProbe method
func (*Protocol) SetHandlerReportNATProperties ¶
func (protocol *Protocol) SetHandlerReportNATProperties(handler func(err error, packet nex.PacketInterface, callID uint32, natmapping *types.PrimitiveU32, natfiltering *types.PrimitiveU32, rtt *types.PrimitiveU32) (*nex.RMCMessage, *nex.Error))
SetHandlerReportNATProperties sets the handler for the ReportNATProperties method
func (*Protocol) SetHandlerReportNATTraversalResult ¶
func (protocol *Protocol) SetHandlerReportNATTraversalResult(handler func(err error, packet nex.PacketInterface, callID uint32, cid *types.PrimitiveU32, result *types.PrimitiveBool, rtt *types.PrimitiveU32) (*nex.RMCMessage, *nex.Error))
SetHandlerReportNATTraversalResult sets the handler for the ReportNATTraversalResult method
func (*Protocol) SetHandlerReportNATTraversalResultDetail ¶
func (protocol *Protocol) SetHandlerReportNATTraversalResultDetail(handler func(err error, packet nex.PacketInterface, callID uint32, cid *types.PrimitiveU32, result *types.PrimitiveBool, detail *types.PrimitiveS32, rtt *types.PrimitiveU32) (*nex.RMCMessage, *nex.Error))
SetHandlerReportNATTraversalResultDetail sets the handler for the ReportNATTraversalResultDetail method
func (*Protocol) SetHandlerRequestProbeInitiation ¶
func (protocol *Protocol) SetHandlerRequestProbeInitiation(handler func(err error, packet nex.PacketInterface, callID uint32, urlTargetList *types.List[*types.StationURL]) (*nex.RMCMessage, *nex.Error))
SetHandlerRequestProbeInitiation sets the handler for the RequestProbeInitiation method
func (*Protocol) SetHandlerRequestProbeInitiationExt ¶
func (protocol *Protocol) SetHandlerRequestProbeInitiationExt(handler func(err error, packet nex.PacketInterface, callID uint32, targetList *types.List[*types.String], stationToProbe *types.String) (*nex.RMCMessage, *nex.Error))
SetHandlerRequestProbeInitiationExt sets the handler for the RequestProbeInitiationExt method