123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- .\" Copyright (c) 1994, 1996, 1997
- .\" The Regents of the University of California. All rights reserved.
- .\"
- .\" Redistribution and use in source and binary forms, with or without
- .\" modification, are permitted provided that: (1) source code distributions
- .\" retain the above copyright notice and this paragraph in its entirety, (2)
- .\" distributions including binary code include the above copyright notice and
- .\" this paragraph in its entirety in the documentation or other materials
- .\" provided with the distribution, and (3) all advertising materials mentioning
- .\" features or use of this software display the following acknowledgement:
- .\" ``This product includes software developed by the University of California,
- .\" Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
- .\" the University nor the names of its contributors may be used to endorse
- .\" or promote products derived from this software without specific prior
- .\" written permission.
- .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- .\"
- .TH PCAP_SETNONBLOCK 3PCAP "18 October 2014"
- .SH NAME
- pcap_setnonblock, pcap_getnonblock \- set or get the state of
- non-blocking mode on a capture device
- .SH SYNOPSIS
- .nf
- .ft B
- #include <pcap/pcap.h>
- .ft
- .LP
- .nf
- .ft B
- char errbuf[PCAP_ERRBUF_SIZE];
- .ft
- .LP
- .ft B
- int pcap_setnonblock(pcap_t *p, int nonblock, char *errbuf);
- int pcap_getnonblock(pcap_t *p, char *errbuf);
- .ft
- .fi
- .SH DESCRIPTION
- .B pcap_setnonblock()
- puts a capture handle into ``non-blocking'' mode, or takes it out
- of ``non-blocking'' mode, depending on whether the
- .I nonblock
- argument is non-zero or zero. It has no effect on ``savefiles''.
- If there is an error, \-1 is returned and
- .I 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
- .B pcap_dispatch()
- will, if no packets are currently available to be read, return 0
- immediately rather than blocking waiting for packets to arrive.
- .B pcap_loop()
- and
- .B pcap_next()
- will not work in ``non-blocking'' mode.
- .PP
- When first activated with
- .B pcap_activate()
- or opened with
- .B pcap_open_live() ,
- a capture handle is not in ``non-blocking mode''; a call to
- .B pcap_setnonblock()
- is required in order to put it into ``non-blocking'' mode.
- .SH RETURN VALUE
- .B pcap_getnonblock()
- returns the current ``non-blocking'' state of the capture descriptor; it
- always returns 0 on ``savefiles''.
- If there is an error, \-1 is returned and
- .I errbuf
- is filled in with an appropriate error message.
- .PP
- .I errbuf
- is assumed to be able to hold at least
- .B PCAP_ERRBUF_SIZE
- chars.
- .SH SEE ALSO
- pcap(3PCAP), pcap_loop(3PCAP), pcap_next_ex(3PCAP), pcap_geterr(3PCAP)
|