forked from osmocom/wireshark
Fix extcap interface capture with tshark
Extcap parameters must be saved when doing the interface number/name matching, otherwise extcap program is not launched and pipe is not created Change-Id: Iaa0c9ad145049ee6e7a285dfca904ceb0baf417f Reviewed-on: https://code.wireshark.org/review/8017 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
This commit is contained in:
parent
2e8d8e12cd
commit
3a220ed25d
|
@ -498,12 +498,20 @@ capture_opts_add_iface_opt(capture_options *capture_opts, const char *optarg_str
|
||||||
/* fallback to the interface name */
|
/* fallback to the interface name */
|
||||||
interface_opts.console_display_name = g_strdup(if_info->name);
|
interface_opts.console_display_name = g_strdup(if_info->name);
|
||||||
}
|
}
|
||||||
|
interface_opts.if_type = if_info->type;
|
||||||
|
#ifdef HAVE_EXTCAP
|
||||||
|
interface_opts.extcap = g_strdup(if_info->extcap);
|
||||||
|
#endif
|
||||||
free_interface_list(if_list);
|
free_interface_list(if_list);
|
||||||
} else if (capture_opts->capture_child) {
|
} else if (capture_opts->capture_child) {
|
||||||
/* In Wireshark capture child mode, thus proper device name is supplied. */
|
/* In Wireshark capture child mode, thus proper device name is supplied. */
|
||||||
/* No need for trying to match it for friendly names. */
|
/* No need for trying to match it for friendly names. */
|
||||||
interface_opts.name = g_strdup(optarg_str_p);
|
interface_opts.name = g_strdup(optarg_str_p);
|
||||||
interface_opts.console_display_name = g_strdup(optarg_str_p);
|
interface_opts.console_display_name = g_strdup(optarg_str_p);
|
||||||
|
interface_opts.if_type = capture_opts->default_options.if_type;
|
||||||
|
#ifdef HAVE_EXTCAP
|
||||||
|
interface_opts.extcap = g_strdup(capture_opts->default_options.extcap);
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Retrieve the interface list so that we can search for the
|
* Retrieve the interface list so that we can search for the
|
||||||
|
@ -541,6 +549,10 @@ capture_opts_add_iface_opt(capture_options *capture_opts, const char *optarg_str
|
||||||
} else {
|
} else {
|
||||||
interface_opts.console_display_name = g_strdup(if_info->name);
|
interface_opts.console_display_name = g_strdup(if_info->name);
|
||||||
}
|
}
|
||||||
|
interface_opts.if_type = if_info->type;
|
||||||
|
#ifdef HAVE_EXTCAP
|
||||||
|
interface_opts.extcap = g_strdup(if_info->extcap);
|
||||||
|
#endif
|
||||||
matched = TRUE;
|
matched = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -551,6 +563,10 @@ capture_opts_add_iface_opt(capture_options *capture_opts, const char *optarg_str
|
||||||
/* exact match - use the friendly name for display */
|
/* exact match - use the friendly name for display */
|
||||||
interface_opts.name = g_strdup(if_info->name);
|
interface_opts.name = g_strdup(if_info->name);
|
||||||
interface_opts.console_display_name = g_strdup(if_info->friendly_name);
|
interface_opts.console_display_name = g_strdup(if_info->friendly_name);
|
||||||
|
interface_opts.if_type = if_info->type;
|
||||||
|
#ifdef HAVE_EXTCAP
|
||||||
|
interface_opts.extcap = g_strdup(if_info->extcap);
|
||||||
|
#endif
|
||||||
matched = TRUE;
|
matched = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -571,6 +587,10 @@ capture_opts_add_iface_opt(capture_options *capture_opts, const char *optarg_str
|
||||||
/* prefix match - use the friendly name for display */
|
/* prefix match - use the friendly name for display */
|
||||||
interface_opts.name = g_strdup(if_info->name);
|
interface_opts.name = g_strdup(if_info->name);
|
||||||
interface_opts.console_display_name = g_strdup(if_info->friendly_name);
|
interface_opts.console_display_name = g_strdup(if_info->friendly_name);
|
||||||
|
interface_opts.if_type = if_info->type;
|
||||||
|
#ifdef HAVE_EXTCAP
|
||||||
|
interface_opts.extcap = g_strdup(if_info->extcap);
|
||||||
|
#endif
|
||||||
matched = TRUE;
|
matched = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -586,11 +606,19 @@ capture_opts_add_iface_opt(capture_options *capture_opts, const char *optarg_str
|
||||||
*/
|
*/
|
||||||
interface_opts.name = g_strdup(optarg_str_p);
|
interface_opts.name = g_strdup(optarg_str_p);
|
||||||
interface_opts.console_display_name = g_strdup(optarg_str_p);
|
interface_opts.console_display_name = g_strdup(optarg_str_p);
|
||||||
|
interface_opts.if_type = capture_opts->default_options.if_type;
|
||||||
|
#ifdef HAVE_EXTCAP
|
||||||
|
interface_opts.extcap = g_strdup(capture_opts->default_options.extcap);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
free_interface_list(if_list);
|
free_interface_list(if_list);
|
||||||
} else {
|
} else {
|
||||||
interface_opts.name = g_strdup(optarg_str_p);
|
interface_opts.name = g_strdup(optarg_str_p);
|
||||||
interface_opts.console_display_name = g_strdup(optarg_str_p);
|
interface_opts.console_display_name = g_strdup(optarg_str_p);
|
||||||
|
interface_opts.if_type = capture_opts->default_options.if_type;
|
||||||
|
#ifdef HAVE_EXTCAP
|
||||||
|
interface_opts.extcap = g_strdup(capture_opts->default_options.extcap);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -604,9 +632,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.has_snaplen = capture_opts->default_options.has_snaplen;
|
||||||
interface_opts.linktype = capture_opts->default_options.linktype;
|
interface_opts.linktype = capture_opts->default_options.linktype;
|
||||||
interface_opts.promisc_mode = capture_opts->default_options.promisc_mode;
|
interface_opts.promisc_mode = capture_opts->default_options.promisc_mode;
|
||||||
interface_opts.if_type = capture_opts->default_options.if_type;
|
|
||||||
#ifdef HAVE_EXTCAP
|
#ifdef HAVE_EXTCAP
|
||||||
interface_opts.extcap = g_strdup(capture_opts->default_options.extcap);
|
|
||||||
interface_opts.extcap_fifo = g_strdup(capture_opts->default_options.extcap_fifo);
|
interface_opts.extcap_fifo = g_strdup(capture_opts->default_options.extcap_fifo);
|
||||||
interface_opts.extcap_args = NULL;
|
interface_opts.extcap_args = NULL;
|
||||||
interface_opts.extcap_pid = INVALID_EXTCAP_PID;
|
interface_opts.extcap_pid = INVALID_EXTCAP_PID;
|
||||||
|
|
Loading…
Reference in New Issue