[Winpcap-users] pcap_next_ex() not receiving packets

Ryan Fowler ryan.fowler at thomsonreuters.com
Wed Jul 2 07:14:15 GMT 2008

The filter is "ether dst FF:02:FF:FF:FF:FF".  But setting to promiscuous
mode solved it.





PS. Now I just need to read more about promiscuous mode so I don't make
that mistake again...


From: winpcap-users-bounces at winpcap.org
[mailto:winpcap-users-bounces at winpcap.org] On Behalf Of Gianluca Varenni
Sent: 01 July 2008 17:44
To: winpcap-users at winpcap.org
Subject: Re: [Winpcap-users] pcap_next_ex() not receiving packets


Which capture filter do you use? Also, do you capture any packet if you
set promiscuous mode on (setting the promiscuous parameter of
pcap_open_live to 1)?


Have a nice day


	----- Original Message ----- 

	From: Ryan Fowler <mailto:ryan.fowler at thomsonreuters.com>  

	To: winpcap-users at winpcap.org 

	Sent: Tuesday, July 01, 2008 6:47 AM

	Subject: [Winpcap-users] pcap_next_ex() not receiving packets




	I am trying to receive packets using pcap_next_ex(), but for
some reason I keep getting a timeout.  I know that packets are coming
into the machine because I can see them via WinDump.  The odd part is
that when I run WinDump concurrently with my test application, I start
to see packets in the test app (as well as in WinDump).  But without
WinDump, I get no packets on the test app at all.


	I am guessing that there is something I need to do to "start"
the packet driver capturing, although I thought that's what
pcap_open_live does, so I'm not quite sure on that.


	My code so far is a fairly liberal sampling of the pktdump_ex


	      /* Open the adapter */

	      if ((m_pSessionHandle =
pcap_open_live(m_pReceiveDevice->name,    // name of the device

	                                    65536,      // 65536 means
the whole packet will be captured.

	                                    0,    // non promiscuous
mode (nonzero means promiscuous)

	                                    1000,       // read timeout

	                                    errbuf      // error
buffer)) == NULL)


	                        // Error code



	      std::cout << "Filter: " << m_strFilter << std::endl;

	      if ( !m_strFilter.empty() )


	            bpf_u_int32 NetMask = 0;

	            struct bpf_program fcode;


	            //compile the filter

	            if(pcap_compile(m_pSessionHandle, &fcode,
const_cast<char*>(m_strFilter.c_str()), 1, NetMask) < 0)


	                  // Error code



	            //set the filter

	            if(pcap_setfilter(m_pSessionHandle, &fcode)<0)


	                  // Error code




	      /* At this point, we don't need the device list any more.
Free it */



	And later on:


	      while((res = pcap_next_ex( m_pSessionHandle, &header,
&pkt_data)) >= 0)


	            if(res == 0)


	                  /* Timeout elapsed */

	                  OutputDebugString(L"No packets!\n");







	Ryan Fowler
	Software Engineer

	Thomson Reuters 


	Winpcap-users mailing list
	Winpcap-users at winpcap.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.winpcap.org/pipermail/winpcap-users/attachments/20080702/51272ac1/attachment-0001.htm

More information about the Winpcap-users mailing list