Noble Connect
Add relays and punchthrough to Mirror or UNet
NobleConnect.Turn.AttributeAddressFamily Class Reference

An attribute that holds on ip AddressFamily an for use in allocation requests More...

Inherits NobleConnect.Stun.Attribute.

Public Member Functions

 AttributeAddressFamily (AttributeType attributeType, AddressFamily family)
 Construct an AttributeAddressFamily of the provided AttributeType using the provided AddressFamily More...
 
override void SerializeValues (BufferView buffer, ReadOnlyByteArray transactionID)
 Serializing values to payload as byte array More...
 
override ushort GetValueSize ()
 Get the serialized size of the attribute values More...
 
- Public Member Functions inherited from NobleConnect.Stun.Attribute
 Attribute (AttributeType type)
 Construct an Attribute of the provided AttributeType More...
 
 Attribute (AttributeType type, ref int offset)
 
void Serialize (BufferView buffer, ReadOnlyByteArray transactionID)
 Convert this attribute to a bunch of bytes and add them to the provided buffer More...
 
ushort GetSize ()
 

Public Attributes

readonly AddressFamily family = 0
 The transfer protocol More...
 
- Public Attributes inherited from NobleConnect.Stun.Attribute
readonly AttributeType attributeType
 The AttributeType of this Attribute More...
 

Additional Inherited Members

- Static Public Member Functions inherited from NobleConnect.Stun.Attribute
static ushort DeserializeLength (byte[] buffer, ref int offset)
 Read the Attribute length from a byte array. More...
 
static ushort GetNumPaddingBytes (int length)
 Calculate padding based on length More...
 
- Static Public Attributes inherited from NobleConnect.Stun.Attribute
const int HEADER_SIZE = 4
 

Detailed Description

An attribute that holds on ip AddressFamily an for use in allocation requests

The REQUESTED-ADDRESS-FAMILY attribute is used by clients to request the allocation of a specific address type from a server.

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Family | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Family: there are two values defined for this field 0x01 for IPv4 addresses and 0x02 for IPv6 addresses. Reserved: the 24 bits in the Reserved field MUST be set to zero

Constructor & Destructor Documentation

◆ AttributeAddressFamily()

NobleConnect.Turn.AttributeAddressFamily.AttributeAddressFamily ( AttributeType  attributeType,
AddressFamily  family 
)

Construct an AttributeAddressFamily of the provided AttributeType using the provided AddressFamily

This is called when constructing an Attribute to send to a Stun server.

Parameters
attributeType
protocol

Member Function Documentation

◆ GetValueSize()

override ushort NobleConnect.Turn.AttributeAddressFamily.GetValueSize ( )
virtual

Get the serialized size of the attribute values

Returns
4

Reimplemented from NobleConnect.Stun.Attribute.

◆ SerializeValues()

override void NobleConnect.Turn.AttributeAddressFamily.SerializeValues ( BufferView  buffer,
ReadOnlyByteArray  transactionID 
)
virtual

Serializing values to payload as byte array

Four bytes long. First byte is the encoded address damily. The rest are 0.

Reimplemented from NobleConnect.Stun.Attribute.

Member Data Documentation

◆ family

readonly AddressFamily NobleConnect.Turn.AttributeAddressFamily.family = 0

The transfer protocol