Hello Scott. Several days ago I wrote > Yes, LAN detection process checks all interfaces now. Sorry, that wasn't right. The question turns out to be complex, than I thought in the beginning. Only now I can say that above is right.
Now Kaboodle checks all interfaces and keeps track of which class-C ranges are the "active ranges". Each interface describes by the structure *ST_NETWORK_INTERFACE_INFO*. That structure has a member *bool bIsActive*, it's a binary flag, which identifies is active interface or no. Kaboodle keeps an array of above structures in the static member *CSearchNetworkManager::m_ArNetworkInterfaceInfo*, it's a MFC CArray. Another source code parts can access to above data via public static functions of the class CSearchNetworkManager: 1 - *int GetCountNetInterfaceInfo()*, this function returns the count of network interfaces; 2 - *bool GetNetInterfaceInfo( int iIndex, ST_NETWORK_INTERFACE_INFO& rNetInterfaceInfo)*, this function returns in the rNetInterfaceInfo the structure ST_NETWORK_INTERFACE_INFO, a parameter *int iIndex* is a zero based index of interface. Kaboodle fills the list of above interfaces (the member m_ArNetworkInterfaceInfo) by the static function *void CSearchNetworkManager::AddAllNetworkInterfaceInfo()*. That function calls by the constructor of CSearchNetworkManager. All my changes are in the CVS server. - Igor ----- Original Message ----- From: "Scott C. Best" <[EMAIL PROTECTED]> To: "Igor Kotelevsky" <[EMAIL PROTECTED]> Cc: "Kaboodle-devel" <[EMAIL PROTECTED]> Sent: Thursday, September 19, 2002 11:30 AM Subject: Re: Sniffer > Igor: > So just to confirm...the LAN detection process checks > all interfaces now, and it now keeps track of which class-C ranges > are the "active ranges"? Please let me know if/when these changes > are in the CVS server. > > thanks, > Scott > > On Wed, 18 Sep 2002, Igor Kotelevsky wrote: > > > Hello, Scott > > > > >Igor: > > >Yes, we should skip using subnet masks and return > > >again to hard coded 254 IPs. Except, if Kaboodle sniffs an > > >"alien host" (ie, a device with an IP address out of the > > >Kaboodle PC's subnet range), it should ping that alien's > > >class-C range as well. > > > > I rolled back and I use now IP addresses as DWORD and not CString. > > Sniffer does not work. I debugged and I saw: > > > > CSnifferThread::EthernetFrameSniffer() > > { > > device = p_pcap_lookupdev(errbuf); > > /* > > device== > > 0000 > > ev?ce\Packet-{7E49453E-EA3B-438E-B178-A66A15D8D515} > > 0000... > > */ > > //... > > CreateAdapterNameList(device); > > } > > > > device has four zero bytes in the beginning. Then comes some readable name. > > Then CreateAdapterNameList(device) is called with the leading zeros in the > > argument. > > > > BOOL CSnifferThread::CreateAdapterNameList(char *device) > > { > > temp = (WCHAR *)device; > > while (*temp != 0 ) > > { > > //... > > temp++; > > m_iAdapterNum++; > > } > > } > > > > Here cycle while never works because the first WCHAR is zero. > > I removed the leading zeros. > > > > -Igor > > > > > > ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Kaboodle-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kaboodle-devel