My suggestion is to use pcap_next_ex instead of pcap_loop/pcap_breakloop to receive packets. It's much more straightforward to use.
Have a nice day GV ----- Original Message ----- From: "Srivats P" <[email protected]> To: <[email protected]> Sent: Sunday, November 01, 2009 9:33 AM Subject: [Winpcap-users] pcap_loop()/pcap_breakloop() problem > Hi, > > I want to start/stop a pkt capture based on user triggers. > > Towards this end, I do a pcap_open_live() at init - > > capHandle = pcap_open_live(port->dev->name, 65535, > PCAP_OPENFLAG_PROMISCUOUS, -1, errbuf); > > On the start trigger, I start a thread which essentially just calls > pcap_loop() - > > dumpHandle = pcap_dump_open(capHandle, capFile.fileName()); > ret = pcap_loop(capHandle, -1, pcap_dump, (uchar*) dumpHandle); > > On the stop trigger, I call pcap_breakloop() - > > pcap_breakloop(capHandle); > > My problem is that sometimes (not always) on the start trigger when I > call pcap_loop(), it exits immediately with -2. As per the > documentation this may happen when the last call to pcap_loop() > returns a positive number and the breakloop flag is not reset - but in > my case pcap_loop() never returns a positive number 'coz the 'cnt' > passed to pcap_loop() is -1. So pcap_loop() always returns -2. But the > next invocation of pcap_loop() via the 'start' trigger may exit > immediately without doing any capture! > > Is there any other way to reset the breakloop flag? Or someway to > identify that I need to call pcap_loop() once to reset the flag before > calling it again for the actual start of capture? > > Or (most likely) maybe I'm doing something incorrectly? > > Regards, > Srivats > _______________________________________________ > Winpcap-users mailing list > [email protected] > https://www.winpcap.org/mailman/listinfo/winpcap-users _______________________________________________ Winpcap-users mailing list [email protected] https://www.winpcap.org/mailman/listinfo/winpcap-users
