![]() |
ParseAnswers() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
| Private Function |
Declared in: DNSAnswers.h |
Declaration
unsigned short ParseAnswers(
const char *pBuffer,
const char* pOriginalBuffer);
DescriptionParse the answer
Function Body
try
{
//Let's start
//Get number of answers
int iAnswers;
iAnswers=m_aDNSHeader.usARCount+
m_aDNSHeader.usANCount+
m_aDNSHeader.usNSCount;
for (int iCount=0;iCount<iAnswers;++iCount)
{
//Our answer
CDNSAnswer aAnswer;
//Try to parse it
unsigned short usParseSize;
usParseSize=aAnswer.ParseBuffer(pBuffer,
pOriginalBuffer);
if (!usParseSize)
{
//Report it
ReportError("ParseAnswers","Failed to parse answer!");
//Exit
return 0;
}
//Set the answer type
CDNSAnswer::DnsHeaderType aAnswerType;
if (iCount<m_aDNSHeader.usANCount)
aAnswerType=CDNSAnswer::dhAnswer;
else if (iCount<m_aDNSHeader.usANCount+
m_aDNSHeader.usNSCount)
aAnswerType=CDNSAnswer::dhAuthoritive;
else
aAnswerType=CDNSAnswer::dhAdditional;
//Set it at the class
aAnswer.SetAnswerType(aAnswerType);
//Add it to the vector
m_aAnswers.push_back(aAnswer);
//Increase the buffer size
pBuffer+=usParseSize;
}
//Done
return pBuffer-pOriginalBuffer;
}
ERROR_HANDLER_RETURN("ParseAnswers",0)
See Also
This web site was generated
using Surveyor V4.50.811.1. Click
here
for more information. |
Site content copyright © 2003 Komodia LTD.. See the About page for additional notices. This page last updated: 24 Feb 2003. |