![]() |
ParseAnswers() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Private Function |
Declared in: DNSAnswers.h |
unsigned short ParseAnswers( const char *pBuffer, const char* pOriginalBuffer);
Parse the answer
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)
![]() |
Site content copyright © 2003 Komodia LTD.. See the About page for additional notices. This page last updated: 24 Feb 2003. |