Hello, Scott

>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.

Yes, LAN detection process checks all interfaces now.
It pings it's own class-C ranges on start-up. And it is supposed to ping
all newly sniffed class-C ranges on StartPing(PING_ON_NEW_DEVICE_DISCOVERY).
The problem is that the sniffer would work at all. I wonder if anybody has
ever seen it work?

I found some info on the pcap lib used in the CSnifferThread class:
http://www.vspu.ac.ru/en/man2html?pcap?3
It says:
pcap_lookupdev() returns a pointer to a network device suitable for use with
pcap_open_live() and pcap_lookupnet().

Which should be understood only as returns a pointer to only ONE (active)
network device, not array.

In file snifferthread.cpp there is a function CreateAdapterNameList which
treats it as a null-separated chain of names.

  temp = (WCHAR *)device;
  while (*temp != 0 )
  {
    wcscpy((WCHAR *)adapterName, temp);
    temp += wcslen(temp);
    temp++;
    m_iAdapterNum++;
  }

Is that right? I would not mind this if it had worked. But
I tested it on two machines (2000 and W98) and in both cases I had
m_iAdapterNum == 0. Later on, if I force the SnifferThreadFunction
to be called, it makes a call to
pcap_t* devHandle = p_pcap_open_live(device,BUFSIZ,1,0,errbuf);
and errbuf contains the following error text:
"Error opening adapter. The system cannot find the file specified".

-Igor

Reply via email to