freewrt_1_0
freewrt_2_0
| Line | |
|---|
| 1 | /*
|
|---|
| 2 | * Taken from fli4l 3.0
|
|---|
| 3 | * Make sure you compile it against the same libpcap version used in OpenWrt
|
|---|
| 4 | */
|
|---|
| 5 |
|
|---|
| 6 | #include <stdlib.h>
|
|---|
| 7 | #include <sys/types.h>
|
|---|
| 8 | #include <sys/time.h>
|
|---|
| 9 | #include <string.h>
|
|---|
| 10 |
|
|---|
| 11 | #include <linux/types.h>
|
|---|
| 12 | #include <linux/ppp_defs.h>
|
|---|
| 13 |
|
|---|
| 14 | #include <pcap.h>
|
|---|
| 15 | #include <pcap-bpf.h>
|
|---|
| 16 |
|
|---|
| 17 | int main (int argc, char ** argv)
|
|---|
| 18 | {
|
|---|
| 19 | pcap_t *pc; /* Fake struct pcap so we can compile expr */
|
|---|
| 20 | struct bpf_program filter; /* Filter program for link-active pkts */
|
|---|
| 21 | u_int32_t netmask=0;
|
|---|
| 22 |
|
|---|
| 23 | int dflag = 3;
|
|---|
| 24 | if (argc == 4)
|
|---|
| 25 | {
|
|---|
| 26 | if (!strcmp (argv[1], "-d"))
|
|---|
| 27 | {
|
|---|
| 28 | dflag = atoi (argv[2]);
|
|---|
| 29 | argv += 2;
|
|---|
| 30 | argc -=2;
|
|---|
| 31 | }
|
|---|
| 32 | }
|
|---|
| 33 | if (argc != 2)
|
|---|
| 34 | {
|
|---|
| 35 | printf ("usage; %s [ -d <debug_level> ] expression\n", argv[0]);
|
|---|
| 36 | return 1;
|
|---|
| 37 | }
|
|---|
| 38 |
|
|---|
| 39 | pc = pcap_open_dead(DLT_PPP_PPPD, PPP_HDRLEN);
|
|---|
| 40 | if (pcap_compile(pc, &filter, argv[1], 1, netmask) == 0)
|
|---|
| 41 | {
|
|---|
| 42 | printf ("#\n# Expression: %s\n#\n", argv[1]);
|
|---|
| 43 | bpf_dump (&filter, dflag);
|
|---|
| 44 | return 0;
|
|---|
| 45 | }
|
|---|
| 46 | else
|
|---|
| 47 | {
|
|---|
| 48 | printf("error in active-filter expression: %s\n", pcap_geterr(pc));
|
|---|
| 49 | }
|
|---|
| 50 | return 1;
|
|---|
| 51 | }
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.