forked from osmocom/wireshark
Don't close the currently loaded capture file in capture_start(), do so
in its callers; when starting a capture with "wireshark -k", there's no capture file to close, and closing it might be provoking some UI actions that cause crashes on Windows. Don't copy the list of selected interfaces to the list of capture interfaces in capture_start(), either, do that in the callers; we were already doing that in one place and, in one of the remaining cases, namely "wireshark -k", we should do so only if no capture interfaces were supplied on the command line. (I.e., the set of interfaces on which we want to capture depends on where in the UI the capture is being started.) svn path=/trunk/; revision=41491
This commit is contained in:
parent
6f3ee54d62
commit
681c29c5d5
10
capture.c
10
capture.c
|
@ -138,13 +138,7 @@ capture_start(capture_options *capture_opts)
|
|||
guint i;
|
||||
GString *source = g_string_new("");
|
||||
|
||||
if (capture_opts->state != CAPTURE_STOPPED)
|
||||
return FALSE;
|
||||
capture_opts->state = CAPTURE_PREPARING;
|
||||
|
||||
/* close the currently loaded capture file */
|
||||
cf_close(capture_opts->cf);
|
||||
collect_ifaces(capture_opts);
|
||||
g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_MESSAGE, "Capture Start ...");
|
||||
#ifdef _WIN32
|
||||
if (capture_opts->ifaces->len < 2) {
|
||||
|
@ -654,6 +648,10 @@ capture_input_closed(capture_options *capture_opts, gchar *msg)
|
|||
if (capture_opts->ifaces->len == 0) {
|
||||
collect_ifaces(capture_opts);
|
||||
}
|
||||
|
||||
/* close the currently loaded capture file */
|
||||
cf_close(capture_opts->cf);
|
||||
|
||||
capture_start(capture_opts);
|
||||
} else {
|
||||
/* We're not doing a capture any more, so we don't have a save file. */
|
||||
|
|
|
@ -4126,6 +4126,17 @@ capture_start_confirmed(void)
|
|||
/* XXX - we might need to init other pref data as well... */
|
||||
menu_auto_scroll_live_changed(auto_scroll_live);
|
||||
|
||||
/* XXX - can this ever happen? */
|
||||
if (global_capture_opts.state != CAPTURE_STOPPED)
|
||||
return;
|
||||
|
||||
/* close the currently loaded capture file */
|
||||
cf_close(global_capture_opts.cf);
|
||||
|
||||
/* Copy the selected interfaces to the set of interfaces to use for
|
||||
this capture. */
|
||||
collect_ifaces(&global_capture_opts);
|
||||
|
||||
if (capture_start(&global_capture_opts)) {
|
||||
/* The capture succeeded, which means the capture filter syntax is
|
||||
valid; add this capture filter to the recent capture filter list. */
|
||||
|
|
|
@ -3031,6 +3031,12 @@ main(int argc, char *argv[])
|
|||
/* "-k" was specified; start a capture. */
|
||||
show_main_window(TRUE);
|
||||
check_and_warn_user_startup(cf_name);
|
||||
|
||||
/* If no user interfaces were specified on the command line,
|
||||
copy the list of selected interfaces to the set of interfaces
|
||||
to use for this capture. */
|
||||
if (global_capture_opts.ifaces->len == 0)
|
||||
collect_ifaces(&global_capture_opts);
|
||||
if (capture_start(&global_capture_opts)) {
|
||||
/* The capture started. Open stat windows; we do so after creating
|
||||
the main window, to avoid GTK warnings, and after successfully
|
||||
|
|
Loading…
Reference in New Issue