From 5f78d0f4f1df67c7965248e9b4397e1da0ad48ae Mon Sep 17 00:00:00 2001 From: Roland Knall Date: Wed, 26 Feb 2014 13:14:01 +0100 Subject: [PATCH] Fix ui/iface_lists.c - type attribute is not copied temp is a clone of the local if_info, but the type attribute is not copied correctly Additionally, the if_type member is exposed via the capture options Change-Id: Id53f0dfd1e127921e1b89bbf78cb431ee257a96c Reviewed-on: https://code.wireshark.org/review/404 Reviewed-by: Roland Knall Reviewed-by: Alexis La Goutte --- capture_opts.c | 3 +++ capture_opts.h | 1 + ui/iface_lists.c | 1 + 3 files changed, 5 insertions(+) diff --git a/capture_opts.c b/capture_opts.c index 4ab473a570..172c2d0996 100644 --- a/capture_opts.c +++ b/capture_opts.c @@ -67,6 +67,7 @@ capture_opts_init(capture_options *capture_opts) capture_opts->default_options.snaplen = WTAP_MAX_PACKET_SIZE; capture_opts->default_options.linktype = -1; /* use interface default */ capture_opts->default_options.promisc_mode = TRUE; + capture_opts->default_options.if_type = IF_WIRED; #if defined(_WIN32) || defined(HAVE_PCAP_CREATE) capture_opts->default_options.buffer_size = DEFAULT_CAPTURE_BUFFER_SIZE; #endif @@ -597,6 +598,7 @@ capture_opts_add_iface_opt(capture_options *capture_opts, const char *optarg_str interface_opts.has_snaplen = capture_opts->default_options.has_snaplen; interface_opts.linktype = capture_opts->default_options.linktype; interface_opts.promisc_mode = capture_opts->default_options.promisc_mode; + interface_opts.if_type = capture_opts->default_options.if_type; #if defined(_WIN32) || defined(HAVE_PCAP_CREATE) interface_opts.buffer_size = capture_opts->default_options.buffer_size; #endif @@ -1055,6 +1057,7 @@ collect_ifaces(capture_options *capture_opts) interface_opts.snaplen = device.snaplen; interface_opts.has_snaplen = device.has_snaplen; interface_opts.promisc_mode = device.pmode; + interface_opts.if_type = device.if_info.type; #if defined(_WIN32) || defined(HAVE_PCAP_CREATE) interface_opts.buffer_size = device.buffer; #endif diff --git a/capture_opts.h b/capture_opts.h index 06e8169899..771cdfd69b 100644 --- a/capture_opts.h +++ b/capture_opts.h @@ -147,6 +147,7 @@ typedef struct interface_options_tag { int snaplen; int linktype; gboolean promisc_mode; + interface_type if_type; #if defined(_WIN32) || defined(HAVE_PCAP_CREATE) int buffer_size; #endif diff --git a/ui/iface_lists.c b/ui/iface_lists.c index a55318cf5f..2dcf7498c7 100644 --- a/ui/iface_lists.c +++ b/ui/iface_lists.c @@ -116,6 +116,7 @@ scan_local_interfaces(void (*update_cb)(void)) temp->friendly_name = g_strdup(if_info->friendly_name); temp->vendor_description = g_strdup(if_info->vendor_description); temp->loopback = if_info->loopback; + temp->type = if_info->type; /* Is this interface hidden and, if so, should we include it anyway? */ /* Do we have a user-supplied description? */