Deleted Added
full compact
pcap.h (109841) pcap.h (127667)
1/* -*- Mode: c; tab-width: 8; indent-tabs-mode: 1; c-basic-offset: 8; -*- */
2/*
3 * Copyright (c) 1993, 1994, 1995, 1996, 1997
4 * The Regents of the University of California. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 17 unchanged lines hidden (view full) ---

26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
1/* -*- Mode: c; tab-width: 8; indent-tabs-mode: 1; c-basic-offset: 8; -*- */
2/*
3 * Copyright (c) 1993, 1994, 1995, 1996, 1997
4 * The Regents of the University of California. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 17 unchanged lines hidden (view full) ---

26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * @(#) $Header: /tcpdump/master/libpcap/pcap.h,v 1.34 2001/12/09 05:10:03 guy Exp $ (LBL)
35 *
36 * $FreeBSD: head/contrib/libpcap/pcap.h 109841 2003-01-26 01:21:53Z fenner $
34 * $FreeBSD: head/contrib/libpcap/pcap.h 127667 2004-03-31 09:15:09Z bms $
35 * @(#) $Header: /tcpdump/master/libpcap/pcap.h,v 1.45.2.4 2004/01/27 22:56:20 guy Exp $ (LBL)
37 */
38
39#ifndef lib_pcap_h
40#define lib_pcap_h
41
36 */
37
38#ifndef lib_pcap_h
39#define lib_pcap_h
40
41#ifdef WIN32
42#include <pcap-stdinc.h>
43#else /* WIN32 */
42#include <sys/types.h>
43#include <sys/time.h>
44#include <sys/types.h>
45#include <sys/time.h>
46#endif /* WIN32 */
44
47
45#include <net/bpf.h>
48#ifndef PCAP_DONT_INCLUDE_PCAP_BPF_H
49#include <pcap-bpf.h>
50#endif
46
47#include <stdio.h>
48
49#ifdef __cplusplus
50extern "C" {
51#endif
52
53#define PCAP_VERSION_MAJOR 2

--- 72 unchanged lines hidden (view full) ---

126
127/*
128 * As returned by the pcap_stats()
129 */
130struct pcap_stat {
131 u_int ps_recv; /* number of packets received */
132 u_int ps_drop; /* number of packets dropped */
133 u_int ps_ifdrop; /* drops by interface XXX not yet supported */
51
52#include <stdio.h>
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
58#define PCAP_VERSION_MAJOR 2

--- 72 unchanged lines hidden (view full) ---

131
132/*
133 * As returned by the pcap_stats()
134 */
135struct pcap_stat {
136 u_int ps_recv; /* number of packets received */
137 u_int ps_drop; /* number of packets dropped */
138 u_int ps_ifdrop; /* drops by interface XXX not yet supported */
139#ifdef WIN32
140 u_int bs_capt; /* number of packets that reach the application */
141#endif /* WIN32 */
134};
135
136/*
137 * Item in a list of interfaces.
138 */
139struct pcap_if {
140 struct pcap_if *next;
141 char *name; /* name to hand to "pcap_open_live()" */
142 char *description; /* textual description of interface, or NULL */
143 struct pcap_addr *addresses;
142};
143
144/*
145 * Item in a list of interfaces.
146 */
147struct pcap_if {
148 struct pcap_if *next;
149 char *name; /* name to hand to "pcap_open_live()" */
150 char *description; /* textual description of interface, or NULL */
151 struct pcap_addr *addresses;
144 u_int flags; /* PCAP_IF_ interface flags */
152 bpf_u_int32 flags; /* PCAP_IF_ interface flags */
145};
146
147#define PCAP_IF_LOOPBACK 0x00000001 /* interface is loopback */
148
149/*
150 * Representation of an interface address.
151 */
152struct pcap_addr {
153 struct pcap_addr *next;
154 struct sockaddr *addr; /* address */
155 struct sockaddr *netmask; /* netmask for that address */
156 struct sockaddr *broadaddr; /* broadcast address for that address */
157 struct sockaddr *dstaddr; /* P2P destination address for that address */
158};
159
160typedef void (*pcap_handler)(u_char *, const struct pcap_pkthdr *,
161 const u_char *);
162
163char *pcap_lookupdev(char *);
153};
154
155#define PCAP_IF_LOOPBACK 0x00000001 /* interface is loopback */
156
157/*
158 * Representation of an interface address.
159 */
160struct pcap_addr {
161 struct pcap_addr *next;
162 struct sockaddr *addr; /* address */
163 struct sockaddr *netmask; /* netmask for that address */
164 struct sockaddr *broadaddr; /* broadcast address for that address */
165 struct sockaddr *dstaddr; /* P2P destination address for that address */
166};
167
168typedef void (*pcap_handler)(u_char *, const struct pcap_pkthdr *,
169 const u_char *);
170
171char *pcap_lookupdev(char *);
164int pcap_lookupnet(char *, bpf_u_int32 *, bpf_u_int32 *, char *);
165pcap_t *pcap_open_live(char *, int, int, int, char *);
172int pcap_lookupnet(const char *, bpf_u_int32 *, bpf_u_int32 *, char *);
173pcap_t *pcap_open_live(const char *, int, int, int, char *);
166pcap_t *pcap_open_dead(int, int);
167pcap_t *pcap_open_offline(const char *, char *);
168void pcap_close(pcap_t *);
169int pcap_loop(pcap_t *, int, pcap_handler, u_char *);
170int pcap_dispatch(pcap_t *, int, pcap_handler, u_char *);
171const u_char*
172 pcap_next(pcap_t *, struct pcap_pkthdr *);
174pcap_t *pcap_open_dead(int, int);
175pcap_t *pcap_open_offline(const char *, char *);
176void pcap_close(pcap_t *);
177int pcap_loop(pcap_t *, int, pcap_handler, u_char *);
178int pcap_dispatch(pcap_t *, int, pcap_handler, u_char *);
179const u_char*
180 pcap_next(pcap_t *, struct pcap_pkthdr *);
181int pcap_next_ex(pcap_t *, struct pcap_pkthdr **, const u_char **);
182void pcap_breakloop(pcap_t *);
173int pcap_stats(pcap_t *, struct pcap_stat *);
174int pcap_setfilter(pcap_t *, struct bpf_program *);
175int pcap_getnonblock(pcap_t *, char *);
176int pcap_setnonblock(pcap_t *, int, char *);
177void pcap_perror(pcap_t *, char *);
178char *pcap_strerror(int);
179char *pcap_geterr(pcap_t *);
180int pcap_compile(pcap_t *, struct bpf_program *, char *, int,
181 bpf_u_int32);
182int pcap_compile_nopcap(int, int, struct bpf_program *,
183 char *, int, bpf_u_int32);
184void pcap_freecode(struct bpf_program *);
185int pcap_datalink(pcap_t *);
186int pcap_list_datalinks(pcap_t *, int **);
187int pcap_set_datalink(pcap_t *, int);
183int pcap_stats(pcap_t *, struct pcap_stat *);
184int pcap_setfilter(pcap_t *, struct bpf_program *);
185int pcap_getnonblock(pcap_t *, char *);
186int pcap_setnonblock(pcap_t *, int, char *);
187void pcap_perror(pcap_t *, char *);
188char *pcap_strerror(int);
189char *pcap_geterr(pcap_t *);
190int pcap_compile(pcap_t *, struct bpf_program *, char *, int,
191 bpf_u_int32);
192int pcap_compile_nopcap(int, int, struct bpf_program *,
193 char *, int, bpf_u_int32);
194void pcap_freecode(struct bpf_program *);
195int pcap_datalink(pcap_t *);
196int pcap_list_datalinks(pcap_t *, int **);
197int pcap_set_datalink(pcap_t *, int);
198int pcap_datalink_name_to_val(const char *);
199const char *pcap_datalink_val_to_name(int);
200const char *pcap_datalink_val_to_description(int);
188int pcap_snapshot(pcap_t *);
189int pcap_is_swapped(pcap_t *);
190int pcap_major_version(pcap_t *);
191int pcap_minor_version(pcap_t *);
192
193/* XXX */
194FILE *pcap_file(pcap_t *);
195int pcap_fileno(pcap_t *);
196
197pcap_dumper_t *pcap_dump_open(pcap_t *, const char *);
201int pcap_snapshot(pcap_t *);
202int pcap_is_swapped(pcap_t *);
203int pcap_major_version(pcap_t *);
204int pcap_minor_version(pcap_t *);
205
206/* XXX */
207FILE *pcap_file(pcap_t *);
208int pcap_fileno(pcap_t *);
209
210pcap_dumper_t *pcap_dump_open(pcap_t *, const char *);
211int pcap_dump_flush(pcap_dumper_t *);
198void pcap_dump_close(pcap_dumper_t *);
199void pcap_dump(u_char *, const struct pcap_pkthdr *, const u_char *);
212void pcap_dump_close(pcap_dumper_t *);
213void pcap_dump(u_char *, const struct pcap_pkthdr *, const u_char *);
214FILE *pcap_dump_file(pcap_dumper_t *);
200
201int pcap_findalldevs(pcap_if_t **, char *);
202void pcap_freealldevs(pcap_if_t *);
203
215
216int pcap_findalldevs(pcap_if_t **, char *);
217void pcap_freealldevs(pcap_if_t *);
218
219const char *pcap_lib_version(void);
220
204/* XXX this guy lives in the bpf tree */
205u_int bpf_filter(struct bpf_insn *, u_char *, u_int, u_int);
206int bpf_validate(struct bpf_insn *f, int len);
207char *bpf_image(struct bpf_insn *, int);
208void bpf_dump(struct bpf_program *, int);
209
221/* XXX this guy lives in the bpf tree */
222u_int bpf_filter(struct bpf_insn *, u_char *, u_int, u_int);
223int bpf_validate(struct bpf_insn *f, int len);
224char *bpf_image(struct bpf_insn *, int);
225void bpf_dump(struct bpf_program *, int);
226
227#ifdef WIN32
228/*
229 * Win32 definitions
230 */
231
232int pcap_setbuff(pcap_t *p, int dim);
233int pcap_setmode(pcap_t *p, int mode);
234int pcap_sendpacket(pcap_t *p, u_char *buf, int size);
235int pcap_setmintocopy(pcap_t *p, int size);
236
237#ifdef WPCAP
238/* Include file with the wpcap-specific extensions */
239#include <Win32-Extensions.h>
240#endif
241
242#define MODE_CAPT 0
243#define MODE_STAT 1
244#define MODE_MON 2
245
246#else
247/*
248 * UN*X definitions
249 */
250
251int pcap_get_selectable_fd(pcap_t *);
252
253#endif /* WIN32 */
254
210#ifdef __cplusplus
211}
212#endif
213
214#endif
255#ifdef __cplusplus
256}
257#endif
258
259#endif