OpenDDS  Snapshot(2023/04/28-20:55)
Classes | Public Member Functions | Public Attributes | List of all members
OpenDDS::STUN::Attribute Struct Reference

#include <Stun.h>

Collaboration diagram for OpenDDS::STUN::Attribute:
Collaboration graph
[legend]

Classes

struct  Err
 

Public Member Functions

 Attribute ()
 
ACE_UINT16 length () const
 

Public Attributes

AttributeType type
 
ACE_INET_Addr mapped_address
 
std::string username
 
union {
   unsigned char   message_integrity [20]
 
   ACE_UINT32   fingerprint
 
   ACE_UINT32   priority
 
   ACE_UINT64   ice_tie_breaker
 
   unsigned char   guid_prefix [sizeof(DCPS::GuidPrefix_t)]
 
}; 
 
struct OpenDDS::STUN::Attribute::Err error
 
std::vector< AttributeTypeunknown_attributes
 
ACE_UINT16 unknown_length
 

Detailed Description

Definition at line 78 of file Stun.h.

Constructor & Destructor Documentation

◆ Attribute()

OpenDDS::STUN::Attribute::Attribute ( )
inline

Definition at line 79 of file Stun.h.

Member Function Documentation

◆ length()

ACE_UINT16 OpenDDS::STUN::Attribute::length ( void  ) const

Definition at line 22 of file Stun.cpp.

References error, OpenDDS::STUN::ERROR_CODE, OpenDDS::STUN::FINGERPRINT, ACE_Addr::get_type(), OpenDDS::STUN::GUID_PREFIX, OpenDDS::STUN::ICE_CONTROLLED, OpenDDS::STUN::ICE_CONTROLLING, OpenDDS::STUN::MAPPED_ADDRESS, mapped_address, OpenDDS::STUN::MESSAGE_INTEGRITY, OpenDDS::STUN::PRIORITY, OpenDDS::STUN::Attribute::Err::reason, type, OpenDDS::STUN::UNKNOWN_ATTRIBUTES, unknown_attributes, unknown_length, OpenDDS::STUN::USE_CANDIDATE, OpenDDS::STUN::USERNAME, username, and OpenDDS::STUN::XOR_MAPPED_ADDRESS.

Referenced by OpenDDS::STUN::Message::append_attribute(), OpenDDS::STUN::Message::compute_fingerprint(), OpenDDS::STUN::Message::compute_message_integrity(), OpenDDS::STUN::make_unknown_attribute(), and OpenDDS::STUN::operator<<().

23 {
24  switch (type) {
25  case MAPPED_ADDRESS:
26 #if ACE_HAS_IPV6
27  if (mapped_address.get_type() == AF_INET6) {
28  return 20;
29  }
30 #endif
31  return 8;
32 
33  case USERNAME:
34  return static_cast<ACE_UINT16>(username.size());
35 
36  case MESSAGE_INTEGRITY:
37  return 20;
38 
39  case ERROR_CODE:
40  return static_cast<ACE_UINT16>(4 + error.reason.size());
41 
42  case UNKNOWN_ATTRIBUTES:
43  return static_cast<ACE_UINT16>(2 * unknown_attributes.size());
44 
45  case XOR_MAPPED_ADDRESS:
46 #if ACE_HAS_IPV6
47  if (mapped_address.get_type() == AF_INET6) {
48  return 20;
49  }
50 #endif
51  return 8;
52 
53  case PRIORITY:
54  return 4;
55 
56  case USE_CANDIDATE:
57  return 0;
58 
59  case FINGERPRINT:
60  return 4;
61 
62  case ICE_CONTROLLED:
63  case ICE_CONTROLLING:
64  return 8;
65 
66  case GUID_PREFIX:
67  return sizeof(DCPS::GuidPrefix_t);
68 
69  default:
70  break;
71  }
72 
73  return unknown_length;
74 }
std::vector< AttributeType > unknown_attributes
Definition: Stun.h:97
int get_type(void) const
std::string username
Definition: Stun.h:84
AttributeType type
Definition: Stun.h:81
octet GuidPrefix_t[12]
Definition: DdsDcpsGuid.idl:19
ACE_UINT16 unknown_length
Definition: Stun.h:99
ACE_INET_Addr mapped_address
Definition: Stun.h:83
struct OpenDDS::STUN::Attribute::Err error

Member Data Documentation

◆ @9

union { ... }

◆ error

struct OpenDDS::STUN::Attribute::Err OpenDDS::STUN::Attribute::error

◆ fingerprint

ACE_UINT32 OpenDDS::STUN::Attribute::fingerprint

Definition at line 87 of file Stun.h.

Referenced by OpenDDS::STUN::operator<<(), and OpenDDS::STUN::operator>>().

◆ guid_prefix

unsigned char OpenDDS::STUN::Attribute::guid_prefix[sizeof(DCPS::GuidPrefix_t)]

◆ ice_tie_breaker

ACE_UINT64 OpenDDS::STUN::Attribute::ice_tie_breaker

◆ mapped_address

ACE_INET_Addr OpenDDS::STUN::Attribute::mapped_address

◆ message_integrity

unsigned char OpenDDS::STUN::Attribute::message_integrity[20]

Definition at line 86 of file Stun.h.

Referenced by OpenDDS::STUN::operator<<(), and OpenDDS::STUN::operator>>().

◆ priority

ACE_UINT32 OpenDDS::STUN::Attribute::priority

◆ type

AttributeType OpenDDS::STUN::Attribute::type

◆ unknown_attributes

std::vector<AttributeType> OpenDDS::STUN::Attribute::unknown_attributes

◆ unknown_length

ACE_UINT16 OpenDDS::STUN::Attribute::unknown_length

Definition at line 99 of file Stun.h.

Referenced by length(), and OpenDDS::STUN::make_unknown_attribute().

◆ username

std::string OpenDDS::STUN::Attribute::username

Definition at line 84 of file Stun.h.

Referenced by length(), OpenDDS::STUN::make_username(), and OpenDDS::STUN::operator<<().


The documentation for this struct was generated from the following files: