aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/libpcap.c
diff options
context:
space:
mode:
authorOlivier Abad <oabad@noos.fr>2000-07-30 16:54:12 +0000
committerOlivier Abad <oabad@noos.fr>2000-07-30 16:54:12 +0000
commit9348644164a96c1a43e81ee80a9431adb05451f7 (patch)
treeadcbd3c7de6a664de0eb9eef34bce72866a25166 /wiretap/libpcap.c
parent3d80db01df0b54fa0b84f265fd5421dca69d5f37 (diff)
Support for capturing packet data from a pipe (a FIFO, or standard input).
capture.c : - modified capture() to try to open an interface as a pipe if pcap_open_live() failed, and then read data in libpcap format from this pipe ; - add new functions used by capture() : pipe_open_live() and pipe_dispatch() which are equivalents to the pcap_ functions. libpcap.[ch] : - moved the MAGIC and headers definitions from libpcap.c to libpcap.h because capture() now needs it. svn path=/trunk/; revision=2181
Diffstat (limited to 'wiretap/libpcap.c')
-rw-r--r--wiretap/libpcap.c64
1 files changed, 1 insertions, 63 deletions
diff --git a/wiretap/libpcap.c b/wiretap/libpcap.c
index 25ed5466ed..c12a4b34e1 100644
--- a/wiretap/libpcap.c
+++ b/wiretap/libpcap.c
@@ -1,6 +1,6 @@
/* libpcap.c
*
- * $Id: libpcap.c,v 1.36 2000/07/26 06:04:32 guy Exp $
+ * $Id: libpcap.c,v 1.37 2000/07/30 16:54:11 oabad Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@@ -33,73 +33,11 @@
/* See source to the "libpcap" library for information on the "libpcap"
file format. */
-/* Magic numbers in "libpcap" files.
-
- "libpcap" file records are written in the byte order of the host that
- writes them, and the reader is expected to fix this up.
-
- PCAP_MAGIC is the magic number, in host byte order; PCAP_SWAPPED_MAGIC
- is a byte-swapped version of that.
-
- PCAP_MODIFIED_MAGIC is for Alexey Kuznetsov's modified "libpcap"
- format, as generated on Linux systems that have a "libpcap" with
- his patches, at
-
- http://ftp.sunet.se/pub/os/Linux/ip-routing/lbl-tools/
-
- applied; PCAP_SWAPPED_MODIFIED_MAGIC is the byte-swapped version. */
-#define PCAP_MAGIC 0xa1b2c3d4
-#define PCAP_SWAPPED_MAGIC 0xd4c3b2a1
-#define PCAP_MODIFIED_MAGIC 0xa1b2cd34
-#define PCAP_SWAPPED_MODIFIED_MAGIC 0x34cdb2a1
-
/* On some systems, the FDDI MAC addresses are bit-swapped. */
#if !defined(ultrix) && !defined(__alpha) && !defined(__bsdi__)
#define BIT_SWAPPED_MAC_ADDRS
#endif
-/* "libpcap" file header (minus magic number). */
-struct pcap_hdr {
- guint16 version_major; /* major version number */
- guint16 version_minor; /* minor version number */
- gint32 thiszone; /* GMT to local correction */
- guint32 sigfigs; /* accuracy of timestamps */
- guint32 snaplen; /* max length of captured packets, in octets */
- guint32 network; /* data link type */
-};
-
-/* "libpcap" record header. */
-struct pcaprec_hdr {
- guint32 ts_sec; /* timestamp seconds */
- guint32 ts_usec; /* timestamp microseconds */
- guint32 incl_len; /* number of octets of packet saved in file */
- guint32 orig_len; /* actual length of packet */
-};
-
-/* "libpcap" record header for Alexey's patched version. */
-struct pcaprec_modified_hdr {
- struct pcaprec_hdr hdr; /* the regular header */
- guint32 ifindex; /* index, in *capturing* machine's list of
- interfaces, of the interface on which this
- packet came in. */
- guint16 protocol; /* Ethernet packet type */
- guint8 pkt_type; /* broadcast/multicast/etc. indication */
- guint8 pad; /* pad to a 4-byte boundary */
-};
-
-/* "libpcap" record header for Alexey's patched version in its ss990915
- incarnation; this version shows up in SuSE Linux 6.3. */
-struct pcaprec_ss990915_hdr {
- struct pcaprec_hdr hdr; /* the regular header */
- guint32 ifindex; /* index, in *capturing* machine's list of
- interfaces, of the interface on which this
- packet came in. */
- guint16 protocol; /* Ethernet packet type */
- guint8 pkt_type; /* broadcast/multicast/etc. indication */
- guint8 cpu1, cpu2; /* SMP debugging gunk? */
- guint8 pad[3]; /* pad to a 4-byte boundary */
-};
-
static int libpcap_read(wtap *wth, int *err);
static void adjust_header(wtap *wth, struct pcaprec_hdr *hdr);
static void libpcap_close(wtap *wth);