Class CRealTimeTraceRouteSocket Base ClassesData ItemsConstructorsDestructorsFunctionsCustom CodeGo to hierarchy chart    Prev page: Custom Code in Source After IncludesNext page: m_aData    Show member index
Class Declared in:
RealTimeTraceRouteSocket.h

'Overview' icon -- Shortcut to top of page. Overview

Copyright (c) 2000-2003 Barak Weichselbaum <barak@komodia.com> All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS `AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Contact info:

Site:                  http://www.komodia.com Main contact:          barak@komodia.com For custom projects, consulting, or other paid services:         sales@komodia.com

Hierarchy Chart Hierarchy Chart

'Base Classes' icon -- Shortcut to top of page. Base Classes

Public base class CPingSocket

'Data Items' icon -- Shortcut to top of page. Data Items

Private data TraceRouteData m_aData[mhMaxHops+1] Our max hops array
Private data IP m_aTracedAddress Address we are tracing
Private data BOOL m_bFinishing We are finishing
Private data BOOL m_bInitialized Are we initialized
Private data BOOL m_bPartialDone Are we partial done ?
Private data BOOL m_bResolveIPs Resolve status
Private data BOOL m_bTraceDone Is our trace done ?
Private data CGenericCriticalSection * m_pCSection Our CS
Private data CGenericCriticalSection * m_pCSectionGeneral Our trace CS
Private data CGenericCriticalSection * m_pCSectionResolve Our resolve CS
Private data CRealTimeDNSManager * m_pManager Our DNS manager
Private data static unsigned short m_sPortStart Our port start
Private data unsigned char m_ucMaxHOP What is the maximum hop
Private data unsigned char m_ucMinHOP What is our minimum target hop
Private data unsigned long m_ulResolvers Our resolvers
Private data unsigned short m_usPortStart Current port start

'Constructors' icon -- Shortcut to top of page. Constructors

Private constructor

CRealTimeDNSManager::CRealTimeDNSManager( CRealTimeTraceRouteSocket* pFather, const std::string strDNSServer, BOOL bTCP )

Public constructor

CRealTimeTraceRouteSocket( std::string sDNSServer, BOOL bDNSTcp, BOOL bMultithreaded=TRUE )

ctor and dtor

'Destructors' icon -- Shortcut to top of page. Destructors

Private destructor

CRealTimeDNSManager::~CRealTimeDNSManager()

Public destructor virtual

~CRealTimeTraceRouteSocket()

'Functions' icon -- Shortcut to top of page. Functions

Private function void

AdjustResolvers( long lAmount )

Adjust the number of resovers
Private function void

CRealTimeDNSManager::OnDNSError( int iErrorCode, LPVOID lpLocalIDData )

Private function void

CRealTimeDNSManager::OnDNSReceive( KomodiaDNS::CDNSAnswers* pAnswers, LPVOID lpLocalIDData )

Private function void

CRealTimeDNSManager::OnDNSTimeout( const KomodiaDNS::CDNSQuery& rQuery, LPVOID lpLocalIDData )

Private function void

DNSDone()

Dns asks if we are done
Public function void

FakeLastRequest()

Fake the last request
Public function const TraceRouteData *

GetData() const

Get the data
Protected function CRealTimeTraceRouteSocket::CRealTimeDNSManager *

GetDNSManager() const

Get the DNS manager
Public function unsigned char

GetMaxHops() const

Get max hops
Private function static unsigned short

GetPortStart()

Allocate start of ID range
Private function unsigned long

GetResolvers() const

Get the number of resovers
Private function void

InvokeTraceDone()

Call the done routines
Protected function virtual BOOL

IsIDOK( unsigned short usID, unsigned short usSequence ) const

Is the ID OK
Public function BOOL

IsInitialized() const

Are we initialized
Public function virtual BOOL

IsTraceDone() const

Is the traced done
Protected function virtual BOOL

OnSocketTimeout()

Timeout indicator
Private function virtual void

PingDoneData( IP aReplyingAddress, unsigned char ucTTL, DWORD dwTimeElapsed, int iDataSize, unsigned short usID, BOOL bTTLExpired )

Our ping data
Private function static void

ResolveData( LPVOID lpData )

Our thread for DNS queries
Public function void

SetResolveStatus( BOOL bResolve )

Enable disable resolve
Protected function virtual void

TraceData( const TraceRouteData* pData, BOOL bResolved )

Resolved DNS data
Protected function virtual void

TraceDataForModify( TraceRouteData* pData, BOOL bResolved )

Data for modification
Protected function virtual void

TraceDone( BOOL bError )

For user to overide trace is done
Public function virtual BOOL

TraceRoute( const std::string& rDestinationAddress, DWORD dwTimeout )

Do a trace
Public function virtual BOOL

TraceRoute( IP aDestinationAddress, DWORD dwTimeout )

'Friends' icon -- Shortcut to top of page. Friends

CRealTimeDNSManager

'Custom Code' icon -- Shortcut to top of page. Custom Code

'Implementation Details' icon -- Shortcut to top of page. Implementation Details

File(s)
C:\dev\Komodia\KomodiaIPUtils\RealTimeTraceRouteSocket.cpp
C:\dev\Komodia\KomodiaIPUtils\RealTimeTraceRouteSocket.h
Header Includes
PingSocket.h     
DNSManager.h     
map     
Source Includes
stdafx.h     for precompiled header directive
RealTimeTraceRouteSocket.h     
ErrorHandlerMacros.h     
ThreadPool.h     
GenericCriticalSection.h     
OSManager.h     
atlbase.h     
Owner
tcpip4
Last Modified
23/02/2003 22:44:51 PM

Get Surveyor!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.