source: npl/internetserver/poptop_ppp/patches/ppp-2.4.2-pcap.patch @ e1b2384

perl-5.22
Last change on this file since e1b2384 was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[c5c522c]1--- ppp-2.4.2/pppd/options.c.pcap       2004-01-13 05:02:07.000000000 +0100
2+++ ppp-2.4.2/pppd/options.c    2004-09-15 11:39:34.832772935 +0200
3@@ -56,7 +56,6 @@
4 #endif
5 #ifdef PPP_FILTER
6 #include <pcap.h>
7-#include <pcap-int.h>  /* XXX: To get struct pcap */
8 #endif
9 
10 #include "pppd.h"
11@@ -122,7 +121,6 @@
12 #ifdef PPP_FILTER
13 struct bpf_program pass_filter;/* Filter program for packets to pass */
14 struct bpf_program active_filter; /* Filter program for link-active pkts */
15-pcap_t  pc;                    /* Fake struct pcap so we can compile expr */
16 #endif
17 
18 char *current_option;          /* the name of the option being parsed */
19@@ -1439,12 +1437,18 @@
20 setpassfilter(argv)
21     char **argv;
22 {
23-    pc.linktype = DLT_PPP;
24-    pc.snapshot = PPP_HDRLEN;
25+    pcap_t* pc = pcap_open_dead (DLT_PPP, PPP_HDRLEN);
26+    if (!pc) {
27+        option_error("error in pass-filter expression: pcap_open_dead failed\n");
28+       return 0;
29+    }
30 
31-    if (pcap_compile(&pc, &pass_filter, *argv, 1, netmask) == 0)
32+    if (pcap_compile(pc, &pass_filter, *argv, 1, netmask) == 0) {
33+        pcap_close(pc);
34        return 1;
35-    option_error("error in pass-filter expression: %s\n", pcap_geterr(&pc));
36+    }
37+    option_error("error in pass-filter expression: %s\n", pcap_geterr(pc));
38+    pcap_close(pc);
39     return 0;
40 }
41 
42@@ -1455,12 +1459,18 @@
43 setactivefilter(argv)
44     char **argv;
45 {
46-    pc.linktype = DLT_PPP;
47-    pc.snapshot = PPP_HDRLEN;
48+    pcap_t* pc = pcap_open_dead (DLT_PPP, PPP_HDRLEN);
49+    if (!pc) {
50+        option_error("error in pass-filter expression: pcap_open_dead failed\n");
51+       return 0;
52+    }
53 
54-    if (pcap_compile(&pc, &active_filter, *argv, 1, netmask) == 0)
55+    if (pcap_compile(pc, &active_filter, *argv, 1, netmask) == 0) {
56+        pcap_close(pc);
57        return 1;
58-    option_error("error in active-filter expression: %s\n", pcap_geterr(&pc));
59+    }
60+    option_error("error in active-filter expression: %s\n", pcap_geterr(pc));
61+    pcap_close(pc);
62     return 0;
63 }
64 #endif
Note: See TracBrowser for help on using the repository browser.