diff options
author | Ulf Lamping <ulf.lamping@web.de> | 2005-12-06 00:07:13 +0000 |
---|---|---|
committer | Ulf Lamping <ulf.lamping@web.de> | 2005-12-06 00:07:13 +0000 |
commit | 7e3a24418c8e8ccd91047deb280de9d72758d57d (patch) | |
tree | 18566adb70c9255a53d2418117833708cfa9a640 /capture-pcap-util.h | |
parent | a6f33f1d052192581fe1be6b5b006aa608a07611 (diff) |
rename pcap-....c/.h files to capture-pcap-....c/.h
this way, the capture prefix will "logically" group the files together and file browsers will also group them
we may want to move the files into a subdir capture later
svn path=/trunk/; revision=16691
Diffstat (limited to 'capture-pcap-util.h')
-rw-r--r-- | capture-pcap-util.h | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/capture-pcap-util.h b/capture-pcap-util.h new file mode 100644 index 0000000000..d9cd527364 --- /dev/null +++ b/capture-pcap-util.h @@ -0,0 +1,120 @@ +/* capture-pcap-util.h + * Utility definitions for packet capture + * + * $Id$ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@ethereal.com> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __PCAP_UTIL_H__ +#define __PCAP_UTIL_H__ + +#ifdef HAVE_LIBPCAP + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include <epan/address.h> + +/* + * XXX - this is also the traditional default snapshot size in + * tcpdump - but, if IPv6 is enabled, it defaults to 96, to get an + * IPv6 header + TCP + 22 extra bytes. + * + * Some libpcap versions for particular capture devices might happen + * to impose a minimum, but it's not always 68. + */ +#define MIN_PACKET_SIZE 68 /* minimum amount of packet data we can read */ + +#define MAX_WIN_IF_NAME_LEN 511 + +/* + * The list of interfaces returned by "get_interface_list()" is + * a list of these structures. + */ +typedef struct { + char *name; + char *description; + GSList *ip_addr; /* containing address values */ + gboolean loopback; +} if_info_t; + +/* + * An address in the "ip_addr" list. + */ +typedef struct { + address_type type; + union { + guint32 ip4_addr; + guint8 ip6_addr[16]; + } ip_addr; +} if_addr_t; + +GList *get_interface_list(int *err, char *err_str); + +/* Error values from "get_interface_list()". */ +#define CANT_GET_INTERFACE_LIST 0 /* error getting list */ +#define NO_INTERFACES_FOUND 1 /* list is empty */ + +void free_interface_list(GList *if_list); + +/* + * Get an error message string for a CANT_GET_INTERFACE_LIST error from + * "get_interface_list()". + */ +gchar *cant_get_if_list_error_message(const char *err_str); + +/* + * The list of data link types returned by "get_pcap_linktype_list()" is + * a list of these structures. + */ +typedef struct { + int dlt; + char *name; + char *description; +} data_link_info_t; + +int get_pcap_linktype(pcap_t *pch, char *devname); +GList *get_pcap_linktype_list(char *devname, char *err_buf); +void free_pcap_linktype_list(GList *linktype_list); +const char *set_pcap_linktype(pcap_t *pch, char *devname, int dlt); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* HAVE_LIBPCAP */ + +/* + * Append to a GString an indication of the version of libpcap/WinPcap + * with which we were compiled, if we were, or an indication that we + * weren't compiled with libpcap/WinPcap, if we weren't. + */ +extern void get_compiled_pcap_version(GString *str); + +/* + * Append to a GString an indication of the version of libpcap/WinPcap + * with which we're running, or an indication that we're not running + * with libpcap/WinPcap, if we were compiled with libpcap/WinPcap, + * or nothing, if we weren't compiled with libpcap/WinPcap. + */ +extern void get_runtime_pcap_version(GString *str); + +#endif /* __PCAP_UTIL_H__ */ |