PTLib Version 2.12.9

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Attributes | List of all members
PSTUNMessage Class Reference

`#include <pstun.h>`

Inheritance diagram for PSTUNMessage:
[legend]
Collaboration diagram for PSTUNMessage:
[legend]

## Public Types
enum | MsgType { BindingRequest = 0x0001, BindingResponse = 0x0101, BindingError = 0x0111, SharedSecretRequest = 0x0002, SharedSecretResponse = 0x0102, SharedSecretError = 0x0112, Allocate = 0x0003, AllocateResponse = 0x0103, AllocateError = 0x0113, Refresh = 0x0004, Send = 0x0006, Data = 0x0007, CreatePermission = 0x0008, ChannelBind = 0x0009 }

## Public Member Functions
| PSTUNMessage ()
| PSTUNMessage (MsgType newType, const BYTE *id=NULL)
void | SetType (MsgType newType, const BYTE *id=NULL)
MsgType | GetType () const
const BYTE * | GetTransactionID () const
const PSTUNMessageHeader * | operator-> () const
PSTUNAttribute * | GetFirstAttribute () const
bool | Validate ()
bool | Validate (const PSTUNMessage &request)
PSTUNAttribute * | AddAttribute (const PSTUNAttribute &attribute)
PSTUNAttribute * | SetAttribute (const PSTUNAttribute &attribute)
PSTUNAttribute * | FindAttribute (PSTUNAttribute::Types type) const
template<class Type >
Type * | FindAttributeOfType (PSTUNAttribute::Types type) const
bool | Read (PUDPSocket &socket)
bool | Write (PUDPSocket &socket) const
bool | Poll (PUDPSocket &socket, const PSTUNMessage &request, PINDEX pollRetries)
bool | IsRFC5389 () const
const PIPSocketAddressAndPort | GetSourceAddressAndPort () const
void | InsertMessageIntegrity (BYTE *credentialsHash, PINDEX credentialsHashLen)
void | InsertMessageIntegrity (BYTE *credentialsHash, PINDEX credentialsHashLen, PSTUNMessageIntegrity *mi)
bool | CheckMessageIntegrity (BYTE *credentialsHash, PINDEX credentialsHashLen)
void | CalculateMessageIntegrity (BYTE *credentialsHash, PINDEX credentialsHashLen, PSTUNMessageIntegrity *mi, BYTE *hmac)
Public Member Functions inherited from PBYTEArray
template<typename T >
const T & | GetAs (PINDEX offset=0)
| Function to cast block of memory in PBYTEArray to another structure. More...
| PBYTEArray (PINDEX initialSize=0)
| Construct a new dynamic array of unsigned chars. More...
| PBYTEArray (BYTE const *buffer, PINDEX length, PBoolean dynamic=true)
| Construct a new dynamic array of unsigned chars. More...
| PBYTEArray (PContainerReference &reference_)
virtual void | PrintOn (ostream &strm) const
| Print the array. More...
virtual void | ReadFrom (istream &strm)
| Read the array. More...
virtual PObject * | Clone () const
| Clone the object. More...
Public Member Functions inherited from PBaseArray< BYTE >
| PBaseArray (PINDEX initialSize=0)
| Construct a new dynamic array of elements of the specified type. More...
| PBaseArray (BYTEconst *buffer, PINDEX length, PBoolean dynamic=true)
| Construct a new dynamic array of elements of the specified type. More...
PBoolean | SetAt (PINDEX index, BYTEval)
| Set the specific element in the array. More...
BYTE | GetAt (PINDEX index) const
| Get a value from the array. More...
void | Attach (const BYTE *buffer, PINDEX bufferSize)
| Attach a pointer to a static block to the base array type. More...
BYTE * | GetPointer (PINDEX minSize=0)
| Get a pointer to the internal array and assure that it is of at least the specified size. More...
BYTE | operator[] (PINDEX index) const
| Get a value from the array. More...
BYTE & | operator[] (PINDEX index)
| Get a reference to value from the array. More...
| operator BYTEconst * () const
| Get a pointer to the internal array. More...
PBoolean | Concatenate (const PBaseArray &array)
| Concatenate one array to the end of this array. More...
Public Member Functions inherited from PAbstractArray
| PAbstractArray (PINDEX elementSizeInBytes, PINDEX initialSize=0)
| Create a new dynamic array of `initalSize` elements of `elementSizeInBytes` bytes each. More...
| PAbstractArray (PINDEX elementSizeInBytes, const void *buffer, PINDEX bufferSizeInElements, PBoolean dynamicAllocation)
| Create a new dynamic array of `bufferSizeInElements` elements of `elementSizeInBytes` bytes each. More...
virtual Comparison | Compare (const PObject &obj) const
| Get the relative rank of the two arrays. More...
virtual PBoolean | SetSize (PINDEX newSize)
| Set the size of the array in elements. More...
void | Attach (const void *buffer, PINDEX bufferSize)
| Attach a pointer to a static block to the base array type. More...
void * | GetPointer (PINDEX minSize=1)
| Get a pointer to the internal array and assure that it is of at least the specified size. More...
PBoolean | Concatenate (const PAbstractArray &array)
| Concatenate one array to the end of this array. More...
Public Member Functions inherited from PContainer
| PContainer (PINDEX initialSize=0)
| Create a new unique container. More...
| PContainer (const PContainer &cont)
| Create a new refernce to container. More...
PContainer & | operator= (const PContainer &cont)
| Assign one container reference to another. More...
virtual | ~PContainer ()
| Destroy the container class. More...
virtual PINDEX | GetSize () const
| Get the current size of the container. More...
PBoolean | SetMinSize (PINDEX minSize)
| Set the minimum size of container. More...
virtual PBoolean | IsEmpty () const
| Determine if the container is empty. More...
PBoolean | IsUnique () const
| Determine if container is unique reference. More...
virtual PBoolean | MakeUnique ()
| Make this instance to be the one and only reference to the container contents. More...
Public Member Functions inherited from PObject
unsigned | GetTraceContextIdentifier () const
| Get PTRACE context identifier. More...
void | SetTraceContextIdentifier (unsigned id)
void | GetTraceContextIdentifier (PObject &obj)
void | GetTraceContextIdentifier (PObject *obj)
void | SetTraceContextIdentifier (const PObject &obj)
void | SetTraceContextIdentifier (const PObject *obj)
virtual | ~PObject ()
template<class CLS >
CLS * | CloneAs () const
| As for Clone() but converts to specified type. More...
virtual PINDEX | HashFunction () const
| This function yields a hash value required by the `PDictionary` class. More...
virtual const char * | GetClass (unsigned ancestor=0) const
| Get the current dynamic type of the object instance. More...
PBoolean | IsClass (const char *cls) const
virtual PBoolean | InternalIsDescendant (const char *clsName) const
| Determine if the dynamic type of the current instance is a descendent of the specified class. More...
__inline const PObject * | PTraceObjectInstance () const
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const
| Determine the byte wise comparison of two objects. More...
bool | operator== (const PObject &obj) const
| Compare the two objects. More...
bool | operator!= (const PObject &obj) const
| Compare the two objects. More...
bool | operator< (const PObject &obj) const
| Compare the two objects. More...
bool | operator> (const PObject &obj) const
| Compare the two objects. More...
bool | operator<= (const PObject &obj) const
| Compare the two objects. More...
bool | operator>= (const PObject &obj) const
| Compare the two objects. More...

## Protected Attributes
PIPSocketAddressAndPort | m_sourceAddressAndPort
bool | m_isRFC5389

## Additional Inherited Members
Static Public Member Functions inherited from PObject
static const char * | Class ()
| Get the name of the class as a C string. More...
static __inline const PObject * | PTraceObjectInstance (const char *)
static __inline const PObject * | PTraceObjectInstance (const PObject *obj)
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
| Internal function caled from CompareObjectMemoryDirect() More...
Protected Member Functions inherited from PBaseArray< BYTE >
| PBaseArray (PContainerReference &reference_)
virtual void | PrintElementOn (ostream &stream, PINDEX index) const
Friends inherited from PObject

## Member Enumeration Documentation

enum PSTUNMessage::MsgType

Enumerator
BindingRequest |
BindingResponse |
BindingError |
SharedSecretRequest |
SharedSecretResponse |
SharedSecretError |
Allocate |
AllocateResponse |
AllocateError |
Refresh |
Send |
Data |
CreatePermission |
ChannelBind |

## Constructor & Destructor Documentation

PSTUNMessage::PSTUNMessage | ( |  | ) |

PSTUNMessage::PSTUNMessage | ( | MsgType | newType,
|  | const BYTE * | id = `NULL`
| ) |  |

## Member Function Documentation

PSTUNAttribute* PSTUNMessage::AddAttribute | ( | const PSTUNAttribute & | attribute | ) |

void PSTUNMessage::CalculateMessageIntegrity | ( | BYTE * | credentialsHash,
|  | PINDEX | credentialsHashLen,
|  | PSTUNMessageIntegrity * | mi,
|  | BYTE * | hmac
| ) |  |

bool PSTUNMessage::CheckMessageIntegrity | ( | BYTE * | credentialsHash,
|  | PINDEX | credentialsHashLen
| ) |  |

PSTUNAttribute* PSTUNMessage::FindAttribute | ( | PSTUNAttribute::Types | type | ) | const

template<class Type >

Type* PSTUNMessage::FindAttributeOfType | ( | PSTUNAttribute::Types | type | ) | const
| inline

PSTUNAttribute* PSTUNMessage::GetFirstAttribute | ( |  | ) | const

const PIPSocketAddressAndPort PSTUNMessage::GetSourceAddressAndPort | ( |  | ) | const
| inline

const BYTE* PSTUNMessage::GetTransactionID | ( |  | ) | const

MsgType PSTUNMessage::GetType | ( |  | ) | const

void PSTUNMessage::InsertMessageIntegrity | ( | BYTE * | credentialsHash,
|  | PINDEX | credentialsHashLen
| ) |  |

void PSTUNMessage::InsertMessageIntegrity | ( | BYTE * | credentialsHash,
|  | PINDEX | credentialsHashLen,
|  | PSTUNMessageIntegrity * | mi
| ) |  |

bool PSTUNMessage::IsRFC5389 | ( |  | ) | const
| inline

const PSTUNMessageHeader* PSTUNMessage::operator-> | ( |  | ) | const
| inline

bool PSTUNMessage::Poll | ( | PUDPSocket & | socket,
|  | const PSTUNMessage & | request,
|  | PINDEX | pollRetries
| ) |  |

bool PSTUNMessage::Read | ( | PUDPSocket & | socket | ) |

PSTUNAttribute* PSTUNMessage::SetAttribute | ( | const PSTUNAttribute & | attribute | ) |

void PSTUNMessage::SetType | ( | MsgType | newType,
|  | const BYTE * | id = `NULL`
| ) |  |

bool PSTUNMessage::Validate | ( |  | ) |

bool PSTUNMessage::Validate | ( | const PSTUNMessage & | request | ) |

bool PSTUNMessage::Write | ( | PUDPSocket & | socket | ) | const

## Member Data Documentation

bool PSTUNMessage::m_isRFC5389
| protected

PIPSocketAddressAndPort PSTUNMessage::m_sourceAddressAndPort
| protected

The documentation for this class was generated from the following file:

- pstun.h