Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

pcap_setnonblock (3pcap)

Name

pcap_setnonblock - ing mode on a capture device

Synopsis

#include <pcap/pcap.h>

char errbuf[PCAP_ERRBUF_SIZE];

int pcap_setnonblock(pcap_t *p, int nonblock, char *errbuf);
int pcap_getnonblock(pcap_t *p, char *errbuf);

Description

PCAP_SETNONBLOCK(3pcap)                                PCAP_SETNONBLOCK(3pcap)



NAME
       pcap_setnonblock, pcap_getnonblock - set or get the state of non-block-
       ing mode on a capture device

SYNOPSIS
       #include <pcap/pcap.h>

       char errbuf[PCAP_ERRBUF_SIZE];

       int pcap_setnonblock(pcap_t *p, int nonblock, char *errbuf);
       int pcap_getnonblock(pcap_t *p, char *errbuf);

DESCRIPTION
       pcap_setnonblock() puts a capture handle into ``non-blocking'' mode, or
       takes  it  out  of ``non-blocking'' mode, depending on whether the non-
       block argument is non-zero or zero.  It has no effect on ``savefiles''.
       If  there  is  an error, PCAP_ERROR is returned and errbuf is filled in
       with an appropriate error message; otherwise, 0 is returned.  In ``non-
       blocking''  mode,  an  attempt to read from the capture descriptor with
       pcap_dispatch(3PCAP) will, if no packets are currently available to  be
       read,  return 0 immediately rather than blocking waiting for packets to
       arrive.  pcap_loop(3PCAP) and pcap_next(3PCAP) will not work in  ``non-
       blocking'' mode.

       When   first   activated   with  pcap_activate(3PCAP)  or  opened  with
       pcap_open_live(3PCAP) , a  capture  handle  is  not  in  ``non-blocking
       mode'';  a  call  to  pcap_setnonblock() is required in order to put it
       into ``non-blocking'' mode.

RETURN VALUE
       pcap_getnonblock() returns the current ``non-blocking''  state  of  the
       capture  descriptor; it always returns 0 on ``savefiles''.  If there is
       an error, PCAP_ERROR is returned and errbuf is filled in with an appro-
       priate error message.

       errbuf is assumed to be able to hold at least PCAP_ERRBUF_SIZE chars.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------------+
       |ATTRIBUTE TYPE |    ATTRIBUTE VALUE     |
       +---------------+------------------------+
       |Availability   | system/library/libpcap |
       +---------------+------------------------+
       |Stability      | Uncommitted            |
       +---------------+------------------------+

SEE ALSO
       pcap(3PCAP), pcap_next_ex(3PCAP), pcap_geterr(3PCAP)



NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source   was   downloaded  from   https://www.tcpdump.org/release/libp-
       cap-1.9.1.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.tcpdump.org/.



                                 25 July 2018          PCAP_SETNONBLOCK(3pcap)