![]() |
DNSResolving() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Private Function |
Declared in: TraceRouteSocketReverseDNS.h |
static DWORD DNSResolving( LPVOID lpData);
Thread for DNS
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)
![]() |
Site content copyright © 2003 Komodia LTD.. See the About page for additional notices. This page last updated: 24 Feb 2003. |