]> The Tcpdump Group git mirrors - libpcap/blob - pcap_setfilter.3pcap
Always use offsetof() via <stddef.h>.
[libpcap] / pcap_setfilter.3pcap
1 .\" Copyright (c) 1994, 1996, 1997
2 .\" The Regents of the University of California. All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that: (1) source code distributions
6 .\" retain the above copyright notice and this paragraph in its entirety, (2)
7 .\" distributions including binary code include the above copyright notice and
8 .\" this paragraph in its entirety in the documentation or other materials
9 .\" provided with the distribution, and (3) all advertising materials mentioning
10 .\" features or use of this software display the following acknowledgement:
11 .\" ``This product includes software developed by the University of California,
12 .\" Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
13 .\" the University nor the names of its contributors may be used to endorse
14 .\" or promote products derived from this software without specific prior
15 .\" written permission.
16 .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
17 .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
18 .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19 .\"
20 .TH PCAP_SETFILTER 3PCAP "24 January 2025"
21 .SH NAME
22 pcap_setfilter \- set the filter
23 .SH SYNOPSIS
24 .nf
25 .ft B
26 #include <pcap/pcap.h>
27 .ft
28 .LP
29 .ft B
30 int pcap_setfilter(pcap_t *p, struct bpf_program *fp);
31 .ft
32 .fi
33 .SH DESCRIPTION
34 .BR pcap_setfilter ()
35 is used to specify a filter program.
36 .I fp
37 is a pointer to a
38 .I bpf_program
39 struct, usually the result of a call to
40 .BR \%pcap_compile (3PCAP).
41 .PP
42 If the calls to
43 .BR \%pcap_compile ()
44 and
45 .BR \%pcap_setfilter ()
46 use the same
47 .B pcap_t
48 handle, packet filtering should either work correctly or fail correctly
49 without additional efforts. Otherwise the filter program must have been
50 compiled for the same link-layer header type as the one used by the
51 .B pcap_t
52 handle; also on Linux the filter must not use BPF extensions, see
53 .BR pcap_compile ()
54 for more information.
55 .SH RETURN VALUE
56 .BR pcap_setfilter ()
57 returns
58 .B 0
59 on success,
60 .B PCAP_ERROR_NOT_ACTIVATED
61 if called on a capture handle that has been created but not activated, or
62 .B PCAP_ERROR
63 on other errors. If
64 .B PCAP_ERROR
65 is returned,
66 .BR pcap_geterr (3PCAP)
67 or
68 .BR pcap_perror (3PCAP)
69 may be called with
70 .I p
71 as an argument to fetch or display the error text.
72 .SH SEE ALSO
73 .BR pcap (3PCAP)