/* libpcap.c
*
- * $Id: libpcap.c,v 1.29 2000/01/09 07:55:48 guy Exp $
+ * $Id: libpcap.c,v 1.33 2000/03/22 07:06:58 guy Exp $
*
* Wiretap Library
- * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu>
+ * Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
#include <stdlib.h>
#include <errno.h>
#include "wtap.h"
-#include "file.h"
+#include "file_wrappers.h"
#include "buffer.h"
#include "libpcap.h"
static int libpcap_read(wtap *wth, int *err);
static void adjust_header(wtap *wth, struct pcaprec_hdr *hdr);
+static void libpcap_close(wtap *wth);
static gboolean libpcap_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const u_char *pd, int *err);
|| pcap_encap[hdr.network] == WTAP_ENCAP_UNKNOWN) {
g_message("pcap: network type %u unknown or unsupported",
hdr.network);
- *err = WTAP_ERR_UNSUPPORTED;
+ *err = WTAP_ERR_UNSUPPORTED_ENCAP;
return -1;
}
wth->capture.pcap->version_major = hdr.version_major;
wth->capture.pcap->version_minor = hdr.version_minor;
wth->subtype_read = libpcap_read;
+ wth->subtype_close = libpcap_close;
wth->file_encap = pcap_encap[hdr.network];
wth->snapshot_length = hdr.snaplen;
}
}
+static void
+libpcap_close(wtap *wth)
+{
+ g_free(wth->capture.pcap);
+}
+
int wtap_pcap_encap_to_wtap_encap(int encap)
{
if (encap < 0 || encap >= NUM_PCAP_ENCAPS)