30 "\xb7\xe7\xa7\x01\xbc\x34\xd6\x86\xfa\x87\xdf\xae" 36 "\x93\x2f\xf9\xb1\x51\x26\x3b\x36" 38 "\x65\x76\x74\x6a\x3a\x68\x36\x76\x59\x20\x20\x20" 40 "\x9a\xea\xa7\x0c\xbf\xd8\xcb\x56\x78\x1e\xf2\xb5" 41 "\xb2\xd3\xf2\x49\xc1\xb5\x71\xa2" 66 char szStringValue[100];
78 state = reader.
AddBytes(req, requestsize);
126 for (
size_t chunksize = 1; chunksize <= 30; chunksize++)
132 for (
size_t i = 0; i < 200; i++)
146 size_t bytesread = 0;
147 bool fRandomChunkSizing = (chunksize==0);
153 while (bytesread < msgSize)
155 size_t remaining, toread;
157 if (fRandomChunkSizing)
159 chunksize = (rand() % 17) + 1;
162 remaining = msgSize - bytesread;
163 toread = (remaining > chunksize) ? chunksize : remaining;
const uint16_t STUN_ATTRIBUTE_USERNAME
uint16_t GetMessageType()
HRESULT GetAttributeByType(uint16_t attributeType, StunAttribute *pAttribute)
HRESULT GetBuffer(CRefCountedBuffer *pRefBuffer)
bool HasFingerprintAttribute()
ReaderParseState AddBytes(const uint8_t *pData, uint32_t size)
ReaderParseState GetState()
HRESULT ValidateMessageIntegrityShort(const char *pszPassword)
const uint16_t STUN_ATTRIBUTE_SOFTWARE
const unsigned char c_requestbytes[]
bool IsFingerprintAttributeValid()
StunMessageClass GetMessageClass()
bool HasMessageIntegrityAttribute()
HRESULT TestFixedReadSizes(size_t chunksize)
boost::shared_ptr< CBuffer > CRefCountedBuffer
HRESULT GetStringAttributeByType(uint16_t attributeType, char *pszValue, size_t size)
uint16_t HowManyBytesNeeded()
#define ChkIfA(expr, hrerror)
const uint32_t STUN_HEADER_SIZE