![]() |
ResolveData() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
| Private Function |
Declared in: RealTimeTraceRouteSocket.h |
Declaration
static void ResolveData(
LPVOID lpData);
DescriptionOur thread for DNS queries
Function Body
try
{
//Get the data
std::auto_ptr<ResolveThreadData> pData((ResolveThreadData*)lpData);
//Our ID
unsigned short usID;
//Adjust flag
BOOL bAdjust;
//Copy the data
TraceRouteData aData;
{
//Lock the data
CCriticalAutoRelease aRelease(pData->pData->pCSection.get(),TRUE);
//Copy it
aData=*pData->pData;
}
//Check the hops
if (aData.ucTTL>=mhMaxHops)
{
//Adjust the resolvers
pData->pClass->AdjustResolvers(-1);
//Dns is done
pData->pClass->DNSDone();
//Exit
return;
}
else if (!aData.ucTTL)
usID=rand()%60000+mhMaxHops;
else
usID=aData.ucTTL;
//Do we need to adjust
bAdjust=TRUE;
//Resolve it
//Do we have the dns
if (aData.pDNS)
if (aData.pDNS->GetDNSEntry(aData.aReplyingAddress,
usID,
(LPVOID)pData->pData))
bAdjust=FALSE;
else
ReportStaticError(CRealTimeTraceRouteSocket_Class,"ResolveData","Missing DNS information!");
//Adjust the resolvers
if (bAdjust)
{
//Adjust it
pData->pClass->AdjustResolvers(-1);
//Dns is done
pData->pClass->DNSDone();
}
}
ERROR_HANDLER_STATIC(CRealTimeTraceRouteSocket_Class,"ResolveData")
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. |