]> The Tcpdump Group git mirrors - libpcap/commitdiff
Add a "pcap_close_common()" routine which can be used as the close
authorguy <guy>
Tue, 19 Oct 2004 07:06:11 +0000 (07:06 +0000)
committerguy <guy>
Tue, 19 Oct 2004 07:06:11 +0000 (07:06 +0000)
routine for some pcap-XXX.c files and can be called by the close routine
in other pcap-XXX.c files.

pcap-bpf.c
pcap-dlpi.c
pcap-int.h
pcap-linux.c
pcap-nit.c
pcap-pf.c
pcap-snit.c
pcap-snoop.c
pcap.c

index febae779c6d9ca3b93bf9ce2c9e17b4df28c985a..8d71df61ab67aca7bd08bc7e7b37f761c8aaba72 100644 (file)
@@ -20,7 +20,7 @@
  */
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/pcap-bpf.c,v 1.80 2004-10-05 07:23:39 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap-bpf.c,v 1.81 2004-10-19 07:06:11 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -545,15 +545,6 @@ bpf_open(pcap_t *p, char *errbuf)
        return (fd);
 }
 
-static void
-pcap_close_bpf(pcap_t *p)
-{
-       if (p->buffer != NULL)
-               free(p->buffer);
-       if (p->fd >= 0)
-               close(p->fd);
-}
-
 /*
  * We include the OS's <net/bpf.h>, not our "pcap-bpf.h", so we probably
  * don't get DLT_DOCSIS defined.
@@ -978,7 +969,7 @@ pcap_open_live(const char *device, int snaplen, int promisc, int to_ms,
        p->getnonblock_op = pcap_getnonblock_fd;
        p->setnonblock_op = pcap_setnonblock_fd;
        p->stats_op = pcap_stats_bpf;
-       p->close_op = pcap_close_bpf;
+       p->close_op = pcap_close_common;
 
        return (p);
  bad:
index 8e16906cb1b1001cada26ecd78b481897713e002..9a4cb313577aaaf4bd6fd886b91f85ade154148d 100644 (file)
@@ -62,7 +62,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/pcap-dlpi.c,v 1.107 2004-07-22 20:18:38 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap-dlpi.c,v 1.108 2004-10-19 07:06:12 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -432,10 +432,7 @@ pcap_inject_dlpi(pcap_t *p, const void *buf, size_t size)
 static void
 pcap_close_dlpi(pcap_t *p)
 {
-       if (p->buffer != NULL)
-               free(p->buffer);
-       if (p->fd >= 0)
-               close(p->fd);
+       pcap_close_common(p);
        if (p->send_fd >= 0)
                close(p->send_fd);
 }
index 0a78e8413d01a34995cbf19ad8d6a3e79fb8ac15..d481f02831a7f7b80a224dd9ced94d7fe8bfba07 100644 (file)
@@ -30,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * @(#) $Header: /tcpdump/master/libpcap/pcap-int.h,v 1.64 2004-04-07 18:41:00 guy Exp $ (LBL)
+ * @(#) $Header: /tcpdump/master/libpcap/pcap-int.h,v 1.65 2004-10-19 07:06:12 guy Exp $ (LBL)
  */
 
 #ifndef pcap_int_h
@@ -260,6 +260,8 @@ int pcap_getnonblock_fd(pcap_t *, char *);
 int    pcap_setnonblock_fd(pcap_t *p, int, char *);
 #endif
 
+void   pcap_close_common(pcap_t *);
+
 /*
  * Internal interfaces for "pcap_findalldevs()".
  *
index 3e0e37bd9a7e26f1d7aed8c36ff0988f06332f4c..3daa661ed22ed29cada7631204cc0fb53a778377 100644 (file)
@@ -27,7 +27,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/pcap-linux.c,v 1.109 2004-09-06 01:23:17 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap-linux.c,v 1.110 2004-10-19 07:06:12 guy Exp $ (LBL)";
 #endif
 
 /*
@@ -1644,10 +1644,7 @@ static void      pcap_close_linux( pcap_t *handle )
        if (handle->md.device != NULL)
                free(handle->md.device);
        handle->md.device = NULL;
-       if (handle->buffer != NULL)
-               free(handle->buffer);
-       if (handle->fd >= 0)
-               close(handle->fd);
+       pcap_close_common(handle);
 }
 
 /*
index 7517f9e98c52021fc7ef31206d03b6c85947de8e..6a8d318699c346ff9b2d78e1170bedf6b1ee81f1 100644 (file)
@@ -20,7 +20,7 @@
  */
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/pcap-nit.c,v 1.56 2004-03-23 19:18:06 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap-nit.c,v 1.57 2004-10-19 07:06:13 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -241,12 +241,9 @@ nit_setflags(int fd, int promisc, int to_ms, char *ebuf)
 static void
 pcap_close_nit(pcap_t *p)
 {
-       if (p->buffer != NULL)
-               free(p->buffer);
+       pcap_close_common(p);
        if (p->device != NULL)
                free(p->device);
-       if (p->fd >= 0)
-               close(p->fd);
 }
 
 pcap_t *
index 3a59083f4d3829ad105921191ef8e3a0ff02c7e4..ddd20abd9273ab75ae652f62b2e82d08a504e74a 100644 (file)
--- a/pcap-pf.c
+++ b/pcap-pf.c
@@ -24,7 +24,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/pcap-pf.c,v 1.87 2004-03-23 19:18:06 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap-pf.c,v 1.88 2004-10-19 07:06:13 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -279,15 +279,6 @@ pcap_stats_pf(pcap_t *p, struct pcap_stat *ps)
        return (0);
 }
 
-static void
-pcap_close_pf(pcap_t *p)
-{
-       if (p->buffer != NULL)
-               free(p->buffer);
-       if (p->fd >= 0)
-               close(p->fd);
-}
-
 /*
  * We include the OS's <net/bpf.h>, not our "pcap-bpf.h", so we probably
  * don't get DLT_DOCSIS defined.
@@ -501,7 +492,7 @@ your system may not be properly configured; see the packetfilter(4) man page\n",
        p->getnonblock_op = pcap_getnonblock_fd;
        p->setnonblock_op = pcap_setnonblock_fd;
        p->stats_op = pcap_stats_pf;
-       p->close_op = pcap_close_pf;
+       p->close_op = pcap_close_common;
 
        return (p);
  bad:
index 3b0801edb3ceb94af7457f1455014eb722056ae4..447f343fa3ed96ad12202c5f2b3db8c5e3b3cb9f 100644 (file)
@@ -25,7 +25,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/pcap-snit.c,v 1.71 2004-03-23 19:18:06 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap-snit.c,v 1.72 2004-10-19 07:06:13 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -261,15 +261,6 @@ nit_setflags(int fd, int promisc, int to_ms, char *ebuf)
        return (0);
 }
 
-static void
-pcap_close_snit(pcap_t *p)
-{
-       if (p->buffer != NULL)
-               free(p->buffer);
-       if (p->fd >= 0)
-               close(p->fd);
-}
-
 pcap_t *
 pcap_open_live(const char *device, int snaplen, int promisc, int to_ms,
     char *ebuf)
@@ -410,7 +401,7 @@ pcap_open_live(const char *device, int snaplen, int promisc, int to_ms,
        p->getnonblock_op = pcap_getnonblock_fd;
        p->setnonblock_op = pcap_setnonblock_fd;
        p->stats_op = pcap_stats_snit;
-       p->close_op = pcap_close_snit;
+       p->close_op = pcap_close_common;
 
        return (p);
  bad:
index 18e4b6d2933b10da514302a338cb3b92f96b5921..7a27b10b174b5406e198f85ffecd91fcb4e57472 100644 (file)
@@ -20,7 +20,7 @@
  */
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/pcap-snoop.c,v 1.53 2004-04-07 18:33:29 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap-snoop.c,v 1.54 2004-10-19 07:06:14 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -193,15 +193,6 @@ pcap_stats_snoop(pcap_t *p, struct pcap_stat *ps)
        return (0);
 }
 
-static void
-pcap_close_snoop(pcap_t *p)
-{
-       if (p->buffer != NULL)
-               free(p->buffer);
-       if (p->fd >= 0)
-               close(p->fd);
-}
-
 /* XXX can't disable promiscuous */
 pcap_t *
 pcap_open_live(const char *device, int snaplen, int promisc, int to_ms,
@@ -392,7 +383,7 @@ pcap_open_live(const char *device, int snaplen, int promisc, int to_ms,
        p->getnonblock_op = pcap_getnonblock_fd;
        p->setnonblock_op = pcap_setnonblock_fd;
        p->stats_op = pcap_stats_snoop;
-       p->close_op = pcap_close_snoop;
+       p->close_op = pcap_close_common;
 
        return (p);
  bad:
diff --git a/pcap.c b/pcap.c
index d72eca900c6db839c64087f15f7a51cd14227841..7bf337449951164f59c252f4434e41c7deb7c360 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.74 2004-03-24 19:50:54 mcr Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.75 2004-10-19 07:06:14 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -679,6 +679,15 @@ pcap_stats_dead(pcap_t *p, struct pcap_stat *ps)
        return (-1);
 }
 
+void
+pcap_close_common(pcap_t *p)
+{
+       if (p->buffer != NULL)
+               free(p->buffer);
+       if (p->fd >= 0)
+               close(p->fd);
+}
+
 static void
 pcap_close_dead(pcap_t *p)
 {