#include <pcap-stdinc.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>
#include "pcap-int.h"
Go to the source code of this file.
Data Structures | |
struct | dlt_choice |
struct | pkt_for_fakecallback |
struct | singleton |
Defines | |
#define | DLT_CHOICE(code) { #code, code } |
#define | DLT_CHOICE_SENTINEL { NULL, 0 } |
Functions | |
int | pcap_dispatch (pcap_t *p, int cnt, pcap_handler callback, u_char *user) |
Deprecated | |
int | pcap_loop (pcap_t *p, int cnt, pcap_handler callback, u_char *user) |
Deprecated | |
void | pcap_oneshot (u_char *userData, const struct pcap_pkthdr *h, const u_char *pkt) |
const u_char * | pcap_next (pcap_t *p, struct pcap_pkthdr *h) |
Discouraged, use pcap_next_ex() instead. Returns the next available packet. | |
void | pcap_fakecallback (u_char *userData, const struct pcap_pkthdr *h, const u_char *pkt) |
int | pcap_next_ex (pcap_t *p, struct pcap_pkthdr **pkt_header, u_char **pkt_data) |
Read a packet from an interface or from an offline capture. | |
int | pcap_datalink (pcap_t *p) |
Returns the link layer of an adapter. | |
int | pcap_list_datalinks (pcap_t *p, int **dlt_buffer) |
int | pcap_set_datalink (pcap_t *p, int dlt) |
int | pcap_strcasecmp (const char *s1, const char *s2) |
int | pcap_datalink_name_to_val (const char *name) |
const char * | pcap_datalink_val_to_name (int dlt) |
int | pcap_snapshot (pcap_t *p) |
Returns the dimension of the packet portion (in bytes) that is delivered to the application. | |
int | pcap_is_swapped (pcap_t *p) |
returns true if the current savefile uses a different byte order than the current system. | |
int | pcap_major_version (pcap_t *p) |
returns the major version number of the pcap library used to write the savefile. | |
int | pcap_minor_version (pcap_t *p) |
returns the minor version number of the pcap library used to write the savefile. | |
FILE * | pcap_file (pcap_t *p) |
Discouraged, use pcap_dump() instead. Returns the stdio stream of an offile capture. | |
int | pcap_fileno (pcap_t *p) |
Discouraged: it returns the file descriptor of a capture device. | |
void | pcap_perror (pcap_t *p, char *prefix) |
prints the text of the last pcap library error on stderr, prefixed by prefix. | |
char * | pcap_geterr (pcap_t *p) |
returns the error text pertaining to the last pcap library error. | |
int | pcap_getnonblock (pcap_t *p, char *errbuf) |
Gets the "non-blocking" state of an interface. | |
int | pcap_setnonblock (pcap_t *p, int nonblock, char *errbuf) |
Switches between blocking and nonblocking mode. | |
char * | pcap_win32strerror (void) |
char * | pcap_strerror (int errnum) |
pcap_strerror() is provided in case strerror() isn't available. | |
pcap_t * | pcap_open_dead (int linktype, int snaplen) |
Deprecated | |
void | pcap_close (pcap_t *p) |
closes the files associated with p and deallocates resources. | |
Variables | |
const char | rcsid [] |
dlt_choice | dlt_choices [] |
const u_char | charmap [] |
|
|
|
|
|
closes the files associated with p and deallocates resources.
Definition at line 657 of file pcap.c. References PacketCloseAdapter(), pcap_close_remote(), and pcap_freecode(). Referenced by add_or_find_if(), daemon_endcapture(), daemon_opensource(), daemon_serviceloop(), daemon_startcapture(), pcap_compile_nopcap(), pcap_findalldevs_ex(), pcap_opensource_remote(), and pcap_startcapture_remote(). |
|
Returns the link layer of an adapter. pcap_datalink() returns the link layer type; link layer types it can return include:
Definition at line 209 of file pcap.c. Referenced by pcap_compile(). |
|
Definition at line 413 of file pcap.c. References dlt_choice::dlt, dlt_choices, dlt_choice::name, and pcap_strcasecmp(). |
|
Definition at line 426 of file pcap.c. References dlt_choice::dlt, dlt_choices, and dlt_choice::name. Referenced by pcap_set_datalink(). |
|
Deprecated
pcap_dispatch() is used to collect and process packets. cnt specifies the maximum number of packets to process before returning. This is not a minimum number; when reading a live capture, only one bufferful of packets is read at a time, so fewer than cnt packets may be processed. A cnt of -1 processes all the packets received in one buffer when reading a live capture, or all the packets in the file when reading a "savefile". callback specifies a routine to be called with three arguments: a u_char pointer which is passed in from pcap_dispatch(), a pointer packet data. The number of packets read is returned. 0 is returned if no packets were read from a live capture (if, for example, they were discarded because they didn't pass the packet filter, or if, on platforms that support a read timeout that starts before any packets arrive, the timeout expires before any packets arrive, or if the file descriptor for the capture device is in non-blocking mode and no packets were available to be read) or if no more packets are available in a "savefile." A return of -1 indicates an error in which case pcap_perror() or pcap_geterr() may be used to display the error text.
Definition at line 69 of file pcap.c. References pcap_offline_read(), and pcap_read(). Referenced by pcap_next(). |
|
Definition at line 139 of file pcap.c. References pkt_for_fakecallback::hdr, and pkt_for_fakecallback::pkt. |
|
Discouraged, use pcap_dump() instead. pcap_file() returns the standard I/O stream of the "savefile", if a "savefile" was opened with pcap_open_offline(), or NULL, if a network device was opened with pcap_open_live().
|
|
Discouraged: it returns the file descriptor of a capture device. pcap_fileno() returns the file descriptor number from which captured packets are read, if a network device was opened with pcap_open_live(), or -1, if a "savefile" was opened with pcap_open_offline().
|
|
returns the error text pertaining to the last pcap library error.
Definition at line 491 of file pcap.c. Referenced by bpf_error(), and daemon_thrdatamain(). |
|
Gets the "non-blocking" state of an interface. 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 errbuf is filled in with an appropriate error message.
Definition at line 502 of file pcap.c. References pcap_strerror(), and snprintf. |
|
returns true if the current savefile uses a different byte order than the current system.
|
|
Definition at line 215 of file pcap.c. References pcap_strerror(), and snprintf. |
|
Deprecated
pcap_loop() is similar to pcap_dispatch() except it keeps reading packets until cnt packets are processed or an error occurs. It does not return when live read timeouts occur. Rather, specifying a non-zero read timeout to pcap_open_live() and then calling pcap_dispatch() allows the reception and processing of any packets that arrive when the timeout occurs. A negative cnt causes pcap_loop() to loop forever (or at least until an error occur s).
Definition at line 78 of file pcap.c. References n, pcap_offline_read(), and pcap_read(). Referenced by main(). |
|
returns the major version number of the pcap library used to write the savefile.
|
|
returns the minor version number of the pcap library used to write the savefile.
|
|
Discouraged, use pcap_next_ex() instead. pcap_next() reads the next packet (by calling pcap_dispatch() with a cnt of 1) and returns a u_char pointer to the data in that packet. (The pcap_pkthdr struct for that packet is not supplied.)
Definition at line 119 of file pcap.c. References singleton::hdr, pcap_dispatch(), and singleton::pkt. |
|
Read a packet from an interface or from an offline capture. This function is used to retrieve the next available packet, bypassing the callback method traditionally provided by libpcap. pcap_next_ex fills the pkt_header and pkt_data parameters (see pcap_handler()) with the pointers to the header and to the data of the next captured packet. The return value can be:
Definition at line 148 of file pcap.c. References pkt_for_fakecallback::hdr, pcap_offline_read(), pcap_read(), pcap_read_nocb_remote(), pcap_startcapture_remote(), and pkt_for_fakecallback::pkt. Referenced by daemon_thrdatamain(), and main(). |
|
Definition at line 111 of file pcap.c. References singleton::hdr, and singleton::pkt. |
|
Deprecated
pcap_open_dead() is used for creating a pcap_t structure to use when calling the other functions in libpcap. It is typically used when just using libpcap for compiling BPF code.
Definition at line 638 of file pcap.c. References pcap_t. Referenced by pcap_compile_nopcap(). |
|
prints the text of the last pcap library error on stderr, prefixed by prefix.
|
|
Definition at line 246 of file pcap.c. References pcap_datalink_val_to_name(), pcap_set_datalink_platform(), and snprintf. |
|
Switches between blocking and nonblocking mode. pcap_setnonblock() puts a capture descriptor, opened with pcap_open_live(), into "non-blocking" mode, or takes it out of "non-blocking" mode, depending on whether the nonblock argument is non-zero or zero. It has no effect on "savefiles". If there is an error, -1 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() will, if no packets are currently available to be read, return 0 immediately rather than blocking waiting for packets to arrive. pcap_loop() and pcap_next() will not work in "non-blocking" mode.
Definition at line 532 of file pcap.c. References PacketSetReadTimeout(), pcap_strerror(), pcap_win32strerror(), and snprintf. |
|
Returns the dimension of the packet portion (in bytes) that is delivered to the application. pcap_snapshot() returns the snapshot length specified when pcap_open_live was called.
Definition at line 438 of file pcap.c. Referenced by pcap_compile(). |
|
Definition at line 400 of file pcap.c. References charmap, s1, and s2. Referenced by pcap_datalink_name_to_val(). |
|
pcap_strerror() is provided in case strerror() isn't available.
Definition at line 621 of file pcap.c. References snprintf. Referenced by add_addr_to_iflist(), add_or_find_if(), daemon_AuthUserPwd(), daemon_checkauth(), daemon_unpackapplyfilter(), main_active(), main_passive(), pcap_dump_open(), pcap_findalldevs_ex(), pcap_getnonblock(), pcap_list_datalinks(), pcap_open_live(), pcap_open_offline(), pcap_opensource_remote(), pcap_remoteact_accept(), pcap_setnonblock(), pcap_startcapture_remote(), and rpcap_deseraddr(). |
|
Definition at line 594 of file pcap.c. References errbuf, and PCAP_ERRBUF_SIZE. Referenced by pcap_open_live(), pcap_setfilter(), pcap_setnonblock(), pcap_stats(), and pcap_stats_ex(). |
|
Definition at line 332 of file pcap.c. Referenced by pcap_strcasecmp(). |
|
Initial value: { DLT_CHOICE(DLT_ARCNET), DLT_CHOICE(DLT_ARCNET_LINUX), DLT_CHOICE(DLT_EN10MB), DLT_CHOICE(DLT_SLIP), DLT_CHOICE(DLT_SLIP_BSDOS), DLT_CHOICE(DLT_NULL), DLT_CHOICE(DLT_LOOP), DLT_CHOICE(DLT_PPP), DLT_CHOICE(DLT_C_HDLC), DLT_CHOICE(DLT_PPP_SERIAL), DLT_CHOICE(DLT_PPP_ETHER), DLT_CHOICE(DLT_PPP_BSDOS), DLT_CHOICE(DLT_FDDI), DLT_CHOICE(DLT_IEEE802), DLT_CHOICE(DLT_IEEE802_11), DLT_CHOICE(DLT_PRISM_HEADER), DLT_CHOICE(DLT_IEEE802_11_RADIO), DLT_CHOICE(DLT_ATM_RFC1483), DLT_CHOICE(DLT_ATM_CLIP), DLT_CHOICE(DLT_SUNATM), DLT_CHOICE(DLT_RAW), DLT_CHOICE(DLT_LINUX_SLL), DLT_CHOICE(DLT_LTALK), DLT_CHOICE(DLT_IP_OVER_FC), DLT_CHOICE(DLT_FRELAY), DLT_CHOICE_SENTINEL } Definition at line 298 of file pcap.c. Referenced by pcap_datalink_name_to_val(), and pcap_datalink_val_to_name(). |
|
Initial value:
"@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.45 2003/01/23 07:24:52 guy Exp $ (LBL)"
|
documentation. Copyright (c) 2002-2003 Politecnico di Torino. All rights reserved.