]> The Tcpdump Group git mirrors - libpcap/commitdiff
Pick up changes from NetBSD:
authorguy <guy>
Mon, 11 Jun 2007 10:04:24 +0000 (10:04 +0000)
committerguy <guy>
Mon, 11 Jun 2007 10:04:24 +0000 (10:04 +0000)
    several files:

date: 2006/02/27 15:53:24;  author: drochner;  state: Exp;
avoid shadowing globals, for WARNS=2

date: 2006/02/27 15:55:30;  author: drochner;  state: Exp;
minor constification, good for WARNS=3 now

date: 2006/02/27 15:57:17;  author: drochner;  state: Exp;
NetBSD adaption:

...

-const pcap_strerror() for consistency

    gencode.c:

date: 2006/04/26 09:24:33;  author: tron;  state: Exp;
Add missing "const" keywords to match declarations in "pcap.h".

date: 2006/10/15 19:27:21;  author: christos;  state: Exp;
add a volatile variable to prevent vfork/longjmp clobbering.

    optimize.c:

date: 2006/05/17 17:48:36;  author: drochner;  state: Exp;
Make the optimizer use unsigned numbers as the kernel does.
While it is not agreed on that purely unsigned arithmetics is nice,
different behaviour of optimized and unoptimized code is less desirable.

    pcap-bpf.c:

date: 2006/02/27 15:51:38;  author: drochner;  state: Exp;
pull in from NetBSD's libpcap: use cloning bpf device on NetBSD

Have the configure script check for paths.h, so that we can include it
only if we have it, and use the cloning BPF device only if we're on
NetBSD *and* _PATH_BPF is defined (hopefully this will keep us from
using it on versions of NetBSD that don't have a cloning BPF device; if,
in the future, other OSes with BPF get cloning BPF devices, we can make
this work for them as well).

16 files changed:
bpf_image.c
config.h.in
configure
configure.in
gencode.c
gencode.h
grammar.y
inet.c
nametoaddr.c
optimize.c
pcap-bpf.c
pcap.3
pcap.c
pcap/pcap.h
savefile.c
scanner.l

index 06c0b6ea75bc5d1b0aeb98dc5ebe65ef08331b16..6485825b18e05183f01a04b177769dd22dee43e9 100644 (file)
@@ -21,7 +21,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/bpf_image.c,v 1.26 2003-11-15 23:23:57 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/bpf_image.c,v 1.27 2007-06-11 10:04:24 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -43,7 +43,7 @@ bpf_image(p, n)
        int n;
 {
        int v;
-       char *fmt, *op;
+       const char *fmt, *op;
        static char image[256];
        char operand[64];
 
index 4bcd46d96455555f39fed51ee8dbc7e7b225d5ff..ca0b706d8756b01770cbe72f77f6739b561a1ac7 100644 (file)
@@ -56,6 +56,9 @@
 /* if there's an os_proto.h */
 #undef HAVE_OS_PROTO_H
 
+/* Define to 1 if you have the <paths.h> header file. */
+#undef HAVE_PATHS_H
+
 /* define if you have a /proc/net/dev */
 #undef HAVE_PROC_NET_DEV
 
index 17749f97df74e44ce9ce9bc1628e892dacb56c35..0867f32a320a5c5ab23d08773e3547d4966d46c4 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 1.134 .
+# From configure.in Revision: 1.135 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.59.
 #
@@ -3518,7 +3518,8 @@ done
 
 
 
-for ac_header in sys/ioccom.h sys/sockio.h limits.h
+
+for ac_header in sys/ioccom.h sys/sockio.h limits.h paths.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
index f85ec1e4b74e3692138b345315cc1cb9a58f572b..038d5216ebc8267469b44dbe41dffdbfeaf5ac30 100644 (file)
@@ -1,4 +1,4 @@
-dnl @(#) $Header: /tcpdump/master/libpcap/configure.in,v 1.134 2007-02-08 06:02:42 guy Exp $ (LBL)
+dnl @(#) $Header: /tcpdump/master/libpcap/configure.in,v 1.135 2007-06-11 10:04:24 guy Exp $ (LBL)
 dnl
 dnl Copyright (c) 1994, 1995, 1996, 1997
 dnl    The Regents of the University of California.  All rights reserved.
@@ -6,7 +6,7 @@ dnl
 dnl Process this file with autoconf to produce a configure script.
 dnl
 
-AC_REVISION($Revision: 1.134 $)
+AC_REVISION($Revision: 1.135 $)
 AC_PREREQ(2.50)
 AC_INIT(pcap.c)
 
@@ -26,7 +26,7 @@ dnl in "AC_LBL_FIXINCLUDES" in "aclocal.m4" uses it, so we have to
 dnl test for it and set "HAVE_SYS_IOCCOM_H" if we have it, otherwise
 dnl "AC_LBL_FIXINCLUDES" won't work on some platforms such as Solaris.
 dnl
-AC_CHECK_HEADERS(sys/ioccom.h sys/sockio.h limits.h)
+AC_CHECK_HEADERS(sys/ioccom.h sys/sockio.h limits.h paths.h)
 AC_CHECK_HEADERS(netinet/if_ether.h, , , [#include <sys/types.h>
 #include <sys/socket.h>])
 if test "$ac_cv_header_netinet_if_ether_h" != yes; then
index 63026a49cc56809e0d77f933d883c06f88b472c2..2c8f16d8acf63253e8423fc4e133b12d237ee4ea 100644 (file)
--- a/gencode.c
+++ b/gencode.c
@@ -21,7 +21,7 @@
  */
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/gencode.c,v 1.279 2007-05-30 18:05:21 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/gencode.c,v 1.280 2007-06-11 10:04:24 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -348,9 +348,10 @@ int no_optimize;
 
 int
 pcap_compile(pcap_t *p, struct bpf_program *program,
-            char *buf, int optimize, bpf_u_int32 mask)
+            const char *buf, int optimize, bpf_u_int32 mask)
 {
        extern int n_errors;
+       const char * volatile xbuf = buf;
        int len;
 
        no_optimize = 0;
@@ -372,7 +373,7 @@ pcap_compile(pcap_t *p, struct bpf_program *program,
                return -1;
        }
 
-       lex_init(buf ? buf : "");
+       lex_init(xbuf ? xbuf : "");
        init_linktype(p);
        (void)pcap_parse();
 
@@ -403,7 +404,7 @@ pcap_compile(pcap_t *p, struct bpf_program *program,
 int
 pcap_compile_nopcap(int snaplen_arg, int linktype_arg,
                    struct bpf_program *program,
-            char *buf, int optimize, bpf_u_int32 mask)
+            const char *buf, int optimize, bpf_u_int32 mask)
 {
        pcap_t *p;
        int ret;
@@ -4778,7 +4779,7 @@ gen_scode(name, q)
        bpf_u_int32 **alist;
 #else
        int tproto6;
-       struct sockaddr_in *sin;
+       struct sockaddr_in *sin4;
        struct sockaddr_in6 *sin6;
        struct addrinfo *res, *res0;
        struct in6_addr mask128;
@@ -4918,9 +4919,9 @@ gen_scode(name, q)
                                        if (tproto == Q_IPV6)
                                                continue;
 
-                                       sin = (struct sockaddr_in *)
+                                       sin4 = (struct sockaddr_in *)
                                                res->ai_addr;
-                                       tmp = gen_host(ntohl(sin->sin_addr.s_addr),
+                                       tmp = gen_host(ntohl(sin4->sin_addr.s_addr),
                                                0xffffffff, tproto, dir, q.addr);
                                        break;
                                case AF_INET6:
@@ -4988,12 +4989,9 @@ gen_scode(name, q)
 #ifndef INET6
                return gen_port(port, real_proto, dir);
 #else
-           {
-               struct block *b;
                b = gen_port(port, real_proto, dir);
                gen_or(gen_port6(port, real_proto, dir), b);
                return b;
-           }
 #endif /* INET6 */
 
        case Q_PORTRANGE:
@@ -5032,12 +5030,9 @@ gen_scode(name, q)
 #ifndef INET6
                return gen_portrange(port1, port2, real_proto, dir);
 #else
-           {
-               struct block *b;
                b = gen_portrange(port1, port2, real_proto, dir);
                gen_or(gen_portrange6(port1, port2, real_proto, dir), b);
                return b;
-           }
 #endif /* INET6 */
 
        case Q_GATEWAY:
@@ -5390,16 +5385,16 @@ xfer_to_a(a)
  * for "index".
  */
 struct arth *
-gen_load(proto, index, size)
+gen_load(proto, inst, size)
        int proto;
-       struct arth *index;
+       struct arth *inst;
        int size;
 {
        struct slist *s, *tmp;
        struct block *b;
        int regno = alloc_reg();
 
-       free_reg(index->regno);
+       free_reg(inst->regno);
        switch (size) {
 
        default:
@@ -5436,14 +5431,14 @@ gen_load(proto, index, size)
                 * Load into the X register the offset computed into the
                 * register specifed by "index".
                 */
-               s = xfer_to_x(index);
+               s = xfer_to_x(inst);
 
                /*
                 * Load the item at that offset.
                 */
                tmp = new_stmt(BPF_LD|BPF_IND|size);
                sappend(s, tmp);
-               sappend(index->s, s);
+               sappend(inst->s, s);
                break;
 
        case Q_LINK:
@@ -5470,11 +5465,11 @@ gen_load(proto, index, size)
                 * by "index".
                 */
                if (s != NULL) {
-                       sappend(s, xfer_to_a(index));
+                       sappend(s, xfer_to_a(inst));
                        sappend(s, new_stmt(BPF_ALU|BPF_ADD|BPF_X));
                        sappend(s, new_stmt(BPF_MISC|BPF_TAX));
                } else
-                       s = xfer_to_x(index);
+                       s = xfer_to_x(inst);
 
                /*
                 * Load the item at the sum of the offset we've put in the
@@ -5486,7 +5481,7 @@ gen_load(proto, index, size)
                tmp = new_stmt(BPF_LD|BPF_IND|size);
                tmp->s.k = off_ll;
                sappend(s, tmp);
-               sappend(index->s, s);
+               sappend(inst->s, s);
                break;
 
        case Q_IP:
@@ -5519,11 +5514,11 @@ gen_load(proto, index, size)
                 * by "index".
                 */
                if (s != NULL) {
-                       sappend(s, xfer_to_a(index));
+                       sappend(s, xfer_to_a(inst));
                        sappend(s, new_stmt(BPF_ALU|BPF_ADD|BPF_X));
                        sappend(s, new_stmt(BPF_MISC|BPF_TAX));
                } else
-                       s = xfer_to_x(index);
+                       s = xfer_to_x(inst);
 
                /*
                 * Load the item at the sum of the offset we've put in the
@@ -5536,16 +5531,16 @@ gen_load(proto, index, size)
                tmp = new_stmt(BPF_LD|BPF_IND|size);
                tmp->s.k = off_ll + off_nl;
                sappend(s, tmp);
-               sappend(index->s, s);
+               sappend(inst->s, s);
 
                /*
                 * Do the computation only if the packet contains
                 * the protocol in question.
                 */
                b = gen_proto_abbrev(proto);
-               if (index->b)
-                       gen_and(index->b, b);
-               index->b = b;
+               if (inst->b)
+                       gen_and(inst->b, b);
+               inst->b = b;
                break;
 
        case Q_SCTP:
@@ -5586,12 +5581,12 @@ gen_load(proto, index, size)
                 * fixed-length header preceding the link-layer
                 * header.
                 */
-               sappend(s, xfer_to_a(index));
+               sappend(s, xfer_to_a(inst));
                sappend(s, new_stmt(BPF_ALU|BPF_ADD|BPF_X));
                sappend(s, new_stmt(BPF_MISC|BPF_TAX));
                sappend(s, tmp = new_stmt(BPF_LD|BPF_IND|size));
                tmp->s.k = off_ll + off_nl;
-               sappend(index->s, s);
+               sappend(inst->s, s);
 
                /*
                 * Do the computation only if the packet contains
@@ -5600,12 +5595,12 @@ gen_load(proto, index, size)
                 * only fragment of that datagram.
                 */
                gen_and(gen_proto_abbrev(proto), b = gen_ipfrag());
-               if (index->b)
-                       gen_and(index->b, b);
+               if (inst->b)
+                       gen_and(inst->b, b);
 #ifdef INET6
                gen_and(gen_proto_abbrev(Q_IP), b);
 #endif
-               index->b = b;
+               inst->b = b;
                break;
 #ifdef INET6
        case Q_ICMPV6:
@@ -5613,12 +5608,12 @@ gen_load(proto, index, size)
                /*NOTREACHED*/
 #endif
        }
-       index->regno = regno;
+       inst->regno = regno;
        s = new_stmt(BPF_ST);
        s->s.k = regno;
-       sappend(index->s, s);
+       sappend(inst->s, s);
 
-       return index;
+       return inst;
 }
 
 struct block *
index a7eb65435b41d80f687dd86fdc55e3dcde8b4045..71fc1237fe2f307c31af26c19381ee68f5f0ae0d 100644 (file)
--- a/gencode.h
+++ b/gencode.h
@@ -18,7 +18,7 @@
  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- * @(#) $Header: /tcpdump/master/libpcap/gencode.h,v 1.69 2007-03-11 04:35:24 guy Exp $ (LBL)
+ * @(#) $Header: /tcpdump/master/libpcap/gencode.h,v 1.70 2007-06-11 10:04:25 guy Exp $ (LBL)
  */
 
 /*
@@ -323,7 +323,7 @@ char *sdup(const char *);
 
 struct bpf_insn *icode_to_fcode(struct block *, int *);
 int pcap_parse(void);
-void lex_init(char *);
+void lex_init(const char *);
 void lex_cleanup(void);
 void sappend(struct slist *, struct slist *);
 
index 67b043d145ebf4519bfe52ea9dc47ddcf2538ae0..7f378628d5de0771130154ab2dadc96faa796b7c 100644 (file)
--- a/grammar.y
+++ b/grammar.y
@@ -22,7 +22,7 @@
  */
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/grammar.y,v 1.96 2007-03-11 04:35:24 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/grammar.y,v 1.97 2007-06-11 10:04:25 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -73,7 +73,7 @@ int n_errors = 0;
 static struct qual qerr = { Q_UNDEF, Q_UNDEF, Q_UNDEF, Q_UNDEF };
 
 static void
-yyerror(char *msg)
+yyerror(const char *msg)
 {
        ++n_errors;
        bpf_error("%s", msg);
diff --git a/inet.c b/inet.c
index 4e34c8fff067ed8b2d45f5fc8c22a6b15d1beffb..0373131521b439661086bd31a27bb598171ad584 100644 (file)
--- a/inet.c
+++ b/inet.c
@@ -34,7 +34,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/inet.c,v 1.74 2006-12-30 09:54:57 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/inet.c,v 1.75 2007-06-11 10:04:25 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -606,7 +606,7 @@ pcap_lookupnet(device, netp, maskp, errbuf)
        register char *errbuf;
 {
        register int fd;
-       register struct sockaddr_in *sin;
+       register struct sockaddr_in *sin4;
        struct ifreq ifr;
 
        /*
@@ -656,8 +656,8 @@ pcap_lookupnet(device, netp, maskp, errbuf)
                (void)close(fd);
                return (-1);
        }
-       sin = (struct sockaddr_in *)&ifr.ifr_addr;
-       *netp = sin->sin_addr.s_addr;
+       sin4 = (struct sockaddr_in *)&ifr.ifr_addr;
+       *netp = sin4->sin_addr.s_addr;
        if (ioctl(fd, SIOCGIFNETMASK, (char *)&ifr) < 0) {
                (void)snprintf(errbuf, PCAP_ERRBUF_SIZE,
                    "SIOCGIFNETMASK: %s: %s", device, pcap_strerror(errno));
@@ -665,7 +665,7 @@ pcap_lookupnet(device, netp, maskp, errbuf)
                return (-1);
        }
        (void)close(fd);
-       *maskp = sin->sin_addr.s_addr;
+       *maskp = sin4->sin_addr.s_addr;
        if (*maskp == 0) {
                if (IN_CLASSA(*netp))
                        *maskp = IN_CLASSA_NET;
index fd0d14b1555fbca77c257f9c23d5164a13481f22..0ba6c997f36862a964de270d8fa1f6b2e80b070f 100644 (file)
@@ -24,7 +24,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/nametoaddr.c,v 1.81 2006-10-04 18:09:22 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/nametoaddr.c,v 1.82 2007-06-11 10:04:25 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -276,7 +276,7 @@ pcap_nametoproto(const char *str)
 #include "ethertype.h"
 
 struct eproto {
-       char *s;
+       const char *s;
        u_short p;
 };
 
@@ -388,7 +388,7 @@ __pcap_atodn(const char *s, bpf_u_int32 *addr)
 
        u_int node, area;
 
-       if (sscanf((char *)s, "%d.%d", &area, &node) != 2)
+       if (sscanf(s, "%d.%d", &area, &node) != 2)
                bpf_error("malformed decnet address '%s'", s);
 
        *addr = (area << AREASHIFT) & AREAMASK;
@@ -474,7 +474,7 @@ pcap_ether_hostton(const char *name)
        u_char a[6];
 
        ap = NULL;
-       if (ether_hostton((char *)name, (struct ether_addr *)a) == 0) {
+       if (ether_hostton(name, (struct ether_addr *)a) == 0) {
                ap = (u_char *)malloc(6);
                if (ap != NULL)
                        memcpy((char *)ap, (char *)a, 6);
index 40f8d1a22d540865d23a469fba136bfd236167ea..98094a82d446f830550c6574e36c3c9067772585 100644 (file)
@@ -22,7 +22,7 @@
  */
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/optimize.c,v 1.86 2005-07-31 17:58:24 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/optimize.c,v 1.87 2007-06-11 10:04:25 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -624,7 +624,7 @@ fold_op(s, v0, v1)
        struct stmt *s;
        int v0, v1;
 {
-       bpf_int32 a, b;
+       bpf_u_int32 a, b;
 
        a = vmap[v0].const_val;
        b = vmap[v1].const_val;
@@ -1834,9 +1834,9 @@ intern_blocks(root)
 {
        struct block *p;
        int i, j;
-       int done;
+       int done1; /* don't shadow global */
  top:
-       done = 1;
+       done1 = 1;
        for (i = 0; i < n_blocks; ++i)
                blocks[i]->link = 0;
 
@@ -1860,15 +1860,15 @@ intern_blocks(root)
                if (JT(p) == 0)
                        continue;
                if (JT(p)->link) {
-                       done = 0;
+                       done1 = 0;
                        JT(p) = JT(p)->link;
                }
                if (JF(p)->link) {
-                       done = 0;
+                       done1 = 0;
                        JF(p) = JF(p)->link;
                }
        }
-       if (!done)
+       if (!done1)
                goto top;
 }
 
@@ -2135,7 +2135,7 @@ convert_code_r(p)
            {
                int i;
                int jt, jf;
-               char *ljerr = "%s for block-local relative jump: off=%d";
+               const char *ljerr = "%s for block-local relative jump: off=%d";
 
 #if 0
                printf("code=%x off=%d %x %x\n", src->s.code,
index 0737626690054324f561437a9009d8363669d7d7..6e2047a519b75a21ef66302abf35ce6dfd9ff157 100644 (file)
@@ -20,7 +20,7 @@
  */
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/pcap-bpf.c,v 1.97 2007-03-26 01:38:25 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap-bpf.c,v 1.98 2007-06-11 10:04:25 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -35,6 +35,13 @@ static const char rcsid[] _U_ =
 #include <sys/ioctl.h>
 #include <sys/utsname.h>
 
+#ifdef HAVE_PATHS_H
+#include <paths.h>
+#if defined(__NetBSD__) && defined(_PATH_BPF)
+#define HAVE_CLONING_BPF
+#endif /* __NetBSD__ && _PATH_BPF */
+#endif /* HAVE_PATHS_H */
+
 #include <net/if.h>
 
 #ifdef _AIX
@@ -523,8 +530,12 @@ static inline int
 bpf_open(pcap_t *p, char *errbuf)
 {
        int fd;
+#ifdef HAVE_CLONING_BPF
+       static const char device[] = _PATH_BPF;
+#else
        int n = 0;
        char device[sizeof "/dev/bpf0000000000"];
+#endif
 
 #ifdef _AIX
        /*
@@ -536,6 +547,12 @@ bpf_open(pcap_t *p, char *errbuf)
                return (-1);
 #endif
 
+#ifdef HAVE_CLONING_BPF
+       if ((fd = open(device, O_RDWR)) == -1 &&
+           (errno != EACCES || (fd = open(device, O_RDONLY)) == -1))
+               snprintf(errbuf, PCAP_ERRBUF_SIZE,
+                 "(cannot open device) %s: %s", device, pcap_strerror(errno));
+#else
        /*
         * Go through all the minors and find one that isn't in use.
         */
@@ -566,6 +583,7 @@ bpf_open(pcap_t *p, char *errbuf)
        if (fd < 0)
                snprintf(errbuf, PCAP_ERRBUF_SIZE, "(no devices found) %s: %s",
                    device, pcap_strerror(errno));
+#endif
 
        return (fd);
 }
diff --git a/pcap.3 b/pcap.3
index 5260d397c589623d7036298d671b53d967331991..50ac60301610a98e8eae51b71723039bd8ae1877 100644 (file)
--- a/pcap.3
+++ b/pcap.3
@@ -1,4 +1,4 @@
-.\" @(#) $Header: /tcpdump/master/libpcap/Attic/pcap.3,v 1.74 2006-10-12 07:59:54 guy Exp $
+.\" @(#) $Header: /tcpdump/master/libpcap/Attic/pcap.3,v 1.75 2007-06-11 10:04:25 guy Exp $
 .\"
 .\" Copyright (c) 1994, 1996, 1997
 .\"    The Regents of the University of California.  All rights reserved.
@@ -77,7 +77,7 @@ u_char *sp)
 .ft B
 int pcap_compile(pcap_t *p, struct bpf_program *fp,
 .ti +8
-char *str, int optimize, bpf_u_int32 netmask)
+const char *str, int optimize, bpf_u_int32 netmask)
 int pcap_setfilter(pcap_t *p, struct bpf_program *fp)
 void pcap_freecode(struct bpf_program *)
 int pcap_setdirection(pcap_t *p, pcap_direction_t d)
@@ -116,7 +116,7 @@ int pcap_fileno(pcap_t *p)
 int pcap_get_selectable_fd(pcap_t *p);
 void pcap_perror(pcap_t *p, char *prefix)
 char *pcap_geterr(pcap_t *p)
-char *pcap_strerror(int error)
+const char *pcap_strerror(int error)
 const char *pcap_lib_version(void)
 .ft
 .LP
diff --git a/pcap.c b/pcap.c
index 46ac467adc68d099f342ad7fef84a556b2e96284..7e2fb5d40bb9d519a691c502205009f3e71e6faa 100644 (file)
--- a/pcap.c
+++ b/pcap.c
@@ -33,7 +33,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.104 2006-12-20 03:30:32 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.105 2007-06-11 10:04:25 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -467,8 +467,8 @@ int
 pcap_strcasecmp(const char *s1, const char *s2)
 {
        register const u_char   *cm = charmap,
-                               *us1 = (u_char *)s1,
-                               *us2 = (u_char *)s2;
+                               *us1 = (const u_char *)s1,
+                               *us2 = (const u_char *)s2;
 
        while (cm[*us1] == cm[*us2++])
                if (*us1++ == '\0')
@@ -681,7 +681,7 @@ pcap_win32strerror(void)
 /*
  * Not all systems have strerror().
  */
-char *
+const char *
 pcap_strerror(int errnum)
 {
 #ifdef HAVE_STRERROR
index fafacac80b2572ca31b1c45b3a2ec98ffc86e0e6..066a2cb03d346e294e68756b42f2ae902e4df9ad 100644 (file)
@@ -31,7 +31,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * @(#) $Header: /tcpdump/master/libpcap/pcap/pcap.h,v 1.1 2006-10-04 18:09:22 guy Exp $ (LBL)
+ * @(#) $Header: /tcpdump/master/libpcap/pcap/pcap.h,v 1.2 2007-06-11 10:04:25 guy Exp $ (LBL)
  */
 
 #ifndef lib_pcap_pcap_h
@@ -237,12 +237,12 @@ int       pcap_setnonblock(pcap_t *, int, char *);
 void   pcap_perror(pcap_t *, char *);
 int    pcap_inject(pcap_t *, const void *, size_t);
 int    pcap_sendpacket(pcap_t *, const u_char *, int);
-char   *pcap_strerror(int);
+const char *pcap_strerror(int);
 char   *pcap_geterr(pcap_t *);
-int    pcap_compile(pcap_t *, struct bpf_program *, char *, int,
+int    pcap_compile(pcap_t *, struct bpf_program *, const char *, int,
            bpf_u_int32);
 int    pcap_compile_nopcap(int, int, struct bpf_program *,
-           char *, int, bpf_u_int32);
+           const char *, int, bpf_u_int32);
 void   pcap_freecode(struct bpf_program *);
 int    pcap_datalink(pcap_t *);
 int    pcap_list_datalinks(pcap_t *, int **);
index 471177caa433f2648a3cae5b35d35e0fa0e24e38..c7628c89f30cdc1f1629dffcad8e4200569d1268 100644 (file)
@@ -30,7 +30,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/savefile.c,v 1.157 2007-06-05 18:02:29 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/savefile.c,v 1.158 2007-06-11 10:04:25 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -1374,7 +1374,7 @@ pcap_dump(u_char *user, const struct pcap_pkthdr *h, const u_char *sp)
        sf_hdr.len        = h->len;
        /* XXX we should check the return status */
        (void)fwrite(&sf_hdr, sizeof(sf_hdr), 1, f);
-       (void)fwrite((char *)sp, h->caplen, 1, f);
+       (void)fwrite(sp, h->caplen, 1, f);
 }
 
 static pcap_dumper_t *
index dc5a6615dac322eb55fbe51bac3f2e57ff25d46b..fb9fb06b4aed6190fb7ed9e0ff3704a530d5e0b7 100644 (file)
--- a/scanner.l
+++ b/scanner.l
@@ -22,7 +22,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/scanner.l,v 1.109 2007-03-11 04:35:24 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/scanner.l,v 1.110 2007-06-11 10:04:25 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -364,7 +364,7 @@ tcp-urg                     { yylval.i = 0x20; return NUM; }
 %%
 void
 lex_init(buf)
-       char *buf;
+       const char *buf;
 {
 #ifdef FLEX_SCANNER
        in_buffer = yy_scan_string(buf);