[Winpcap-users] pcap_next_ex() not receiving packets

Gianluca Varenni gianluca.varenni at cacetech.com
Tue Jul 1 16:43:48 GMT 2008


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
GV
  ----- Original Message ----- 
  From: Ryan Fowler 
  To: winpcap-users at winpcap.org 
  Sent: Tuesday, July 01, 2008 6:47 AM
  Subject: [Winpcap-users] pcap_next_ex() not receiving packets


  Hi,

   

  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 example:

   

        /* 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 */

        pcap_freealldevs(alldevs);

   

  And later on:

   

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

        {

              if(res == 0)

              {

                    /* Timeout elapsed */

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

                    continue;

              }

  //.

        }

   

   

  Ryan Fowler
  Software Engineer

  Thomson Reuters 



------------------------------------------------------------------------------


  _______________________________________________
  Winpcap-users mailing list
  Winpcap-users at winpcap.org
  https://www.winpcap.org/mailman/listinfo/winpcap-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.winpcap.org/pipermail/winpcap-users/attachments/20080701/779699f9/attachment-0001.htm


More information about the Winpcap-users mailing list