Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

NetBSD 6.1.5 - man page for pcap_breakloop (netbsd section 3)


       pcap_breakloop - force a pcap_dispatch() or pcap_loop() call to return

       #include <pcap/pcap.h>

       void pcap_breakloop(pcap_t *);

       pcap_breakloop()  sets  a  flag	that  will force pcap_dispatch() or pcap_loop() to return
       rather than looping; they will return the number of packets that have  been  processed  so
       far, or -2 if no packets have been processed so far.

       This  routine  is safe to use inside a signal handler on UNIX or a console control handler
       on Windows, as it merely sets a flag that is checked within the loop.

       The flag is checked in loops reading packets from the OS - a signal  by	itself	will  not
       necessarily  terminate  those  loops  -	as  well  as in loops processing a set of packets
       returned by the OS.  Note that if you are catching signals on UNIX  systems  that  support
       restarting  system  calls  after a signal, and calling pcap_breakloop() in the signal han-
       dler, you must specify, when catching those signals,  that  system  calls  should  NOT  be
       restarted  by that signal.  Otherwise, if the signal interrupted a call reading packets in
       a live capture, when your signal handler returns after calling pcap_breakloop(), the  call
       will  be restarted, and the loop will not terminate until more packets arrive and the call

       Note also that, in a multi-threaded application, if one thread  is  blocked  in	pcap_dis-
       patch(), pcap_loop(), pcap_next(), or pcap_next_ex(), a call to pcap_breakloop() in a dif-
       ferent thread will not unblock that thread; you will need to use whatever mechanism the OS
       provides  for breaking a thread out of blocking calls in order to unblock the thread, such
       as thread cancellation in systems that support POSIX threads.

       Note that pcap_next() and pcap_next_ex() will, on some  platforms,  loop  reading  packets
       from the OS; that loop will not necessarily be terminated by a signal, so pcap_breakloop()
       should be used to terminate packet processing even if  pcap_next()  or  pcap_next_ex()  is
       being used.

       pcap_breakloop() does not guarantee that no further packets will be processed by pcap_dis-
       patch() or pcap_loop() after it is called; at most one more packet might be processed.

       If -2 is returned from pcap_dispatch() or pcap_loop(), the flag is cleared,  so	a  subse-
       quent call will resume reading packets.	If a positive number is returned, the flag is not
       cleared, so a subsequent call will return -2 and clear the flag.

       pcap(3), pcap_loop(3), pcap_next_ex(3)

					   5 April 2008 			PCAP_BREAKLOOP(3)

All times are GMT -4. The time now is 12:07 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password