![]() |
DNSResolving() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
| Private Function |
Declared in: TraceRouteSocketReverseDNS.h |
Declaration
static DWORD DNSResolving(
LPVOID lpData);
DescriptionThread for DNS
Function Body
try
{
//Get the class
CTraceRouteSocketReverseDNS* pClass;
pClass=(CTraceRouteSocketReverseDNS*)lpData;
//Start iterating the data
TraceRouteVector aData;
pClass->TakeData(aData);
CTraceRouteSocket::TraceRouteVector::const_iterator aIterator=aData.begin();
//Iterate it
while (aIterator!=aData.end())
{
//Save the data
DNSTraceRouteData aDNSData;
aDNSData.aReplyingAddress=aIterator->aReplyingAddress;
aDNSData.bTimeout=aIterator->bTimeout;
aDNSData.dwElapsedTime=aIterator->dwElapsedTime;
aDNSData.ucTTL=aIterator->ucTTL;
//Is it a timeout
if (!aIterator->bTimeout)
{
//Query the DNS
if (!pClass->m_pDNSManager->GetDNSEntry(aDNSData.aReplyingAddress))
ReportStaticError(CTraceRouteSocketReverseDNS_Class,"DNSResolving","Failed to query DNS!");
else
{
//Get the DNS answer
KomodiaDNS::CDNSAnswers* pAnswers;
pAnswers=pClass->m_pDNSManager->Receive();
//Do we have it
if (!pAnswers)
ReportStaticError(CTraceRouteSocketReverseDNS_Class,"DNSResolving","Failed to query DNS!");
else if (pAnswers->IsResolved())
aDNSData.sReverseDNS=pAnswers->GetAnswer();
}
}
//Add the data
pClass->m_aData.push_back(aDNSData);
//Increase the iterator
++aIterator;
}
//Indicate trace is done
pClass->m_bTraceDone=TRUE;
//Call the trace is done
pClass->DNSTraceDone();
//Done
return TRUE;
}
ERROR_HANDLER_STATIC_RETURN(CTraceRouteSocketReverseDNS_Class,"DNSResolving",THREAD_DO_NOTHING_EXIT_VALUE)
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. |