diff --git a/capture_opts.c b/capture_opts.c index 4d63ba4d12..51ce4b7bd4 100644 --- a/capture_opts.c +++ b/capture_opts.c @@ -1206,7 +1206,7 @@ void collect_ifaces(capture_options *capture_opts) { guint i; - interface_t device; + interface_t *device; interface_options interface_opts; /* Empty out the existing list of interfaces. */ @@ -1215,23 +1215,23 @@ collect_ifaces(capture_options *capture_opts) /* Now fill the list up again. */ for (i = 0; i < capture_opts->all_ifaces->len; i++) { - device = g_array_index(capture_opts->all_ifaces, interface_t, i); - if (!device.hidden && device.selected) { - interface_opts.name = g_strdup(device.name); - interface_opts.descr = g_strdup(device.display_name); - interface_opts.console_display_name = g_strdup(device.name); - interface_opts.linktype = device.active_dlt; - interface_opts.cfilter = g_strdup(device.cfilter); - interface_opts.timestamp_type = g_strdup(device.timestamp_type); - 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; + device = &g_array_index(capture_opts->all_ifaces, interface_t, i); + if (!device->hidden && device->selected) { + interface_opts.name = g_strdup(device->name); + interface_opts.descr = g_strdup(device->display_name); + interface_opts.console_display_name = g_strdup(device->name); + interface_opts.linktype = device->active_dlt; + interface_opts.cfilter = g_strdup(device->cfilter); + interface_opts.timestamp_type = g_strdup(device->timestamp_type); + 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; #ifdef HAVE_EXTCAP - interface_opts.extcap = g_strdup(device.if_info.extcap); + interface_opts.extcap = g_strdup(device->if_info.extcap); interface_opts.extcap_fifo = NULL; interface_opts.extcap_userdata = NULL; - interface_opts.extcap_args = device.external_cap_args_settings; + interface_opts.extcap_args = device->external_cap_args_settings; interface_opts.extcap_pid = INVALID_EXTCAP_PID; if (interface_opts.extcap_args) g_hash_table_ref(interface_opts.extcap_args); @@ -1245,25 +1245,25 @@ collect_ifaces(capture_options *capture_opts) interface_opts.extcap_control_out = NULL; #endif #ifdef CAN_SET_CAPTURE_BUFFER_SIZE - interface_opts.buffer_size = device.buffer; + interface_opts.buffer_size = device->buffer; #endif #ifdef HAVE_PCAP_CREATE - interface_opts.monitor_mode = device.monitor_mode_enabled; + interface_opts.monitor_mode = device->monitor_mode_enabled; #endif #ifdef HAVE_PCAP_REMOTE interface_opts.src_type = CAPTURE_IFREMOTE; - interface_opts.remote_host = g_strdup(device.remote_opts.remote_host_opts.remote_host); - interface_opts.remote_port = g_strdup(device.remote_opts.remote_host_opts.remote_port); - interface_opts.auth_type = device.remote_opts.remote_host_opts.auth_type; - interface_opts.auth_username = g_strdup(device.remote_opts.remote_host_opts.auth_username); - interface_opts.auth_password = g_strdup(device.remote_opts.remote_host_opts.auth_password); - interface_opts.datatx_udp = device.remote_opts.remote_host_opts.datatx_udp; - interface_opts.nocap_rpcap = device.remote_opts.remote_host_opts.nocap_rpcap; - interface_opts.nocap_local = device.remote_opts.remote_host_opts.nocap_local; + interface_opts.remote_host = g_strdup(device->remote_opts.remote_host_opts.remote_host); + interface_opts.remote_port = g_strdup(device->remote_opts.remote_host_opts.remote_port); + interface_opts.auth_type = device->remote_opts.remote_host_opts.auth_type; + interface_opts.auth_username = g_strdup(device->remote_opts.remote_host_opts.auth_username); + interface_opts.auth_password = g_strdup(device->remote_opts.remote_host_opts.auth_password); + interface_opts.datatx_udp = device->remote_opts.remote_host_opts.datatx_udp; + interface_opts.nocap_rpcap = device->remote_opts.remote_host_opts.nocap_rpcap; + interface_opts.nocap_local = device->remote_opts.remote_host_opts.nocap_local; #endif #ifdef HAVE_PCAP_SETSAMPLING - interface_opts.sampling_method = device.remote_opts.sampling_method; - interface_opts.sampling_param = device.remote_opts.sampling_param; + interface_opts.sampling_method = device->remote_opts.sampling_method; + interface_opts.sampling_param = device->remote_opts.sampling_param; #endif g_array_append_val(capture_opts->ifaces, interface_opts); } else { diff --git a/summary.c b/summary.c index ee0cbb3e2f..0fd6b8d6ba 100644 --- a/summary.c +++ b/summary.c @@ -203,7 +203,7 @@ void summary_fill_in_capture(capture_file *cf,capture_options *capture_opts, summary_tally *st) { iface_options iface; - interface_t device; + interface_t *device; guint i; if (st->ifaces->len == 0) { @@ -211,17 +211,17 @@ summary_fill_in_capture(capture_file *cf,capture_options *capture_opts, summary_ * XXX - do this only if we have a live capture. */ for (i = 0; i < capture_opts->all_ifaces->len; i++) { - device = g_array_index(capture_opts->all_ifaces, interface_t, i); - if (!device.selected) { + device = &g_array_index(capture_opts->all_ifaces, interface_t, i); + if (!device->selected) { continue; } - iface.cfilter = g_strdup(device.cfilter); - iface.name = g_strdup(device.name); - iface.descr = g_strdup(device.display_name); + iface.cfilter = g_strdup(device->cfilter); + iface.name = g_strdup(device->name); + iface.descr = g_strdup(device->display_name); iface.drops_known = cf->drops_known; iface.drops = cf->drops; - iface.snap = device.snaplen; - iface.encap_type = wtap_pcap_encap_to_wtap_encap(device.active_dlt); + iface.snap = device->snaplen; + iface.encap_type = wtap_pcap_encap_to_wtap_encap(device->active_dlt); g_array_append_val(st->ifaces, iface); } } diff --git a/ui/capture.c b/ui/capture.c index 67282f70a3..0612d3cba6 100644 --- a/ui/capture.c +++ b/ui/capture.c @@ -641,7 +641,7 @@ capture_stat_start(capture_options *capture_opts) { if_stat_cache_t *sc = NULL; if_stat_cache_item_t *sc_item; guint i; - interface_t device; + interface_t *device; /* Fire up dumpcap. */ /* @@ -670,11 +670,11 @@ capture_stat_start(capture_options *capture_opts) { /* Initialize the cache */ for (i = 0; i < capture_opts->all_ifaces->len; i++) { - device = g_array_index(capture_opts->all_ifaces, interface_t, i); - if (device.type != IF_PIPE) { + device = &g_array_index(capture_opts->all_ifaces, interface_t, i); + if (device->type != IF_PIPE) { sc_item = (if_stat_cache_item_t *)g_malloc0(sizeof(if_stat_cache_item_t)); - g_assert(device.if_info.name); - sc_item->name = g_strdup(device.if_info.name); + g_assert(device->if_info.name); + sc_item->name = g_strdup(device->if_info.name); sc->cache_list = g_list_append(sc->cache_list, sc_item); } } diff --git a/ui/iface_lists.c b/ui/iface_lists.c index bf02dc6765..103dd8d25a 100644 --- a/ui/iface_lists.c +++ b/ui/iface_lists.c @@ -435,7 +435,7 @@ hide_interface(gchar* new_hide) { gchar *tok; guint i; - interface_t device; + interface_t *device; gboolean found = FALSE; GList *hidden_devices = NULL, *entry; if (new_hide != NULL) { @@ -444,13 +444,13 @@ hide_interface(gchar* new_hide) } } for (i = 0; i < global_capture_opts.all_ifaces->len; i++) { - device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); found = FALSE; for (entry = hidden_devices; entry != NULL; entry = g_list_next(entry)) { - if (strcmp((char *)entry->data, device.name)==0) { - device.hidden = TRUE; - if (device.selected) { - device.selected = FALSE; + if (strcmp((char *)entry->data, device->name)==0) { + device->hidden = TRUE; + if (device->selected) { + device->selected = FALSE; global_capture_opts.num_selected--; } found = TRUE; @@ -458,10 +458,8 @@ hide_interface(gchar* new_hide) } } if (!found) { - device.hidden = FALSE; + device->hidden = FALSE; } - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, i); - g_array_insert_val(global_capture_opts.all_ifaces, i, device); } g_list_free(hidden_devices); g_free(new_hide); @@ -470,22 +468,19 @@ hide_interface(gchar* new_hide) void update_local_interfaces(void) { - interface_t device; + interface_t *device; gchar *descr; guint i; for (i = 0; i < global_capture_opts.all_ifaces->len; i++) { - device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - device.type = capture_dev_user_linktype_find(device.name); - g_free (device.display_name); - descr = capture_dev_user_descr_find(device.name); - device.display_name = get_iface_display_name(descr, &device.if_info); + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + device->type = capture_dev_user_linktype_find(device->name); + g_free(device->display_name); + descr = capture_dev_user_descr_find(device->name); + device->display_name = get_iface_display_name(descr, &device->if_info); g_free (descr); - device.hidden = prefs_is_capture_device_hidden(device.name); - fill_from_ifaces(&device); - - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, i); - g_array_insert_val(global_capture_opts.all_ifaces, i, device); + device->hidden = prefs_is_capture_device_hidden(device->name); + fill_from_ifaces(device); } } #endif /* HAVE_LIBPCAP */ diff --git a/ui/qt/capture_filter_syntax_worker.cpp b/ui/qt/capture_filter_syntax_worker.cpp index 2132f50897..a578643b50 100644 --- a/ui/qt/capture_filter_syntax_worker.cpp +++ b/ui/qt/capture_filter_syntax_worker.cpp @@ -89,19 +89,19 @@ void CaptureFilterSyntaxWorker::start() { } for (guint if_idx = 0; if_idx < global_capture_opts.all_ifaces->len; if_idx++) { - interface_t device; + interface_t *device; - device = g_array_index(global_capture_opts.all_ifaces, interface_t, if_idx); - if (!device.locked && device.selected) { + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, if_idx); + if (!device->locked && device->selected) { #ifdef HAVE_EXTCAP - if (device.if_info.extcap == NULL || strlen(device.if_info.extcap) == 0) { + if (device->if_info.extcap == NULL || strlen(device->if_info.extcap) == 0) { #endif - if (device.active_dlt >= DLT_USER0 && device.active_dlt <= DLT_USER15) { + if (device->active_dlt >= DLT_USER0 && device->active_dlt <= DLT_USER15) { // Capture filter for DLT_USER is unknown state = SyntaxLineEdit::Deprecated; err_str = "Unable to check capture filter"; } else { - active_dlts.insert(device.active_dlt); + active_dlts.insert(device->active_dlt); } #ifdef HAVE_EXTCAP } else { @@ -146,11 +146,11 @@ void CaptureFilterSyntaxWorker::start() { // If it's already invalid, don't bother to check extcap if (state != SyntaxLineEdit::Invalid) { foreach (guint extcapif, active_extcap.toList()) { - interface_t device; + interface_t *device; gchar *error = NULL; - device = g_array_index(global_capture_opts.all_ifaces, interface_t, extcapif); - extcap_filter_status status = extcap_verify_capture_filter(device.name, filter.toUtf8().constData(), &error); + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, extcapif); + extcap_filter_status status = extcap_verify_capture_filter(device->name, filter.toUtf8().constData(), &error); if (status == EXTCAP_FILTER_VALID) { DEBUG_SYNTAX_CHECK("unknown", "known good"); } else if (status == EXTCAP_FILTER_INVALID) { diff --git a/ui/qt/capture_interfaces_dialog.cpp b/ui/qt/capture_interfaces_dialog.cpp index 9938fef49f..72cb2eba6f 100644 --- a/ui/qt/capture_interfaces_dialog.cpp +++ b/ui/qt/capture_interfaces_dialog.cpp @@ -247,22 +247,16 @@ void CaptureInterfacesDialog::updateGlobalDeviceSelections() while (*iter) { QString device_name = (*iter)->data(col_interface_, Qt::UserRole).value(); for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (device_name.compare(QString().fromUtf8(device.name)) == 0) { - if (!device.locked) { + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (device_name.compare(QString().fromUtf8(device->name)) == 0) { + if (!device->locked) { if ((*iter)->isSelected()) { - device.selected = TRUE; + device->selected = TRUE; global_capture_opts.num_selected++; } else { - device.selected = FALSE; + device->selected = FALSE; } - device.locked = TRUE; - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, i); - g_array_insert_val(global_capture_opts.all_ifaces, i, device); - - device.locked = FALSE; - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, i); - g_array_insert_val(global_capture_opts.all_ifaces, i, device); + device->locked = FALSE; } break; } @@ -284,10 +278,10 @@ void CaptureInterfacesDialog::updateFromGlobalDeviceSelections() while (*iter) { QString device_name = (*iter)->data(col_interface_, Qt::UserRole).value(); for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (device_name.compare(QString().fromUtf8(device.name)) == 0) { - if ((bool)device.selected != (*iter)->isSelected()) { - (*iter)->setSelected(device.selected); + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (device_name.compare(QString().fromUtf8(device->name)) == 0) { + if ((bool)device->selected != (*iter)->isSelected()) { + (*iter)->setSelected(device->selected); } break; } diff --git a/ui/qt/capture_preferences_frame.cpp b/ui/qt/capture_preferences_frame.cpp index 0028902565..24804ed765 100644 --- a/ui/qt/capture_preferences_frame.cpp +++ b/ui/qt/capture_preferences_frame.cpp @@ -71,7 +71,7 @@ void CapturePreferencesFrame::showEvent(QShowEvent *) void CapturePreferencesFrame::updateWidgets() { #ifdef HAVE_LIBPCAP - interface_t device; + interface_t *device; QString default_device_string; if (prefs_get_string_value(pref_device_, pref_stashed)) { @@ -87,20 +87,20 @@ void CapturePreferencesFrame::updateWidgets() wsApp->refreshLocalInterfaces(); } for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); /* Continue if capture device is hidden */ - if (device.hidden) { + if (device->hidden) { continue; } - // InterfaceTree matches against device.name when selecting the + // InterfaceTree matches against device->name when selecting the // default interface, so add it here if needed. On Windows this // means that we show the user a big ugly UUID-laden device path. - // We might be able to work around that by passing device.name as + // We might be able to work around that by passing device->name as // the userData argument to addItem instead. - QString item_text = device.display_name; - if (!item_text.contains(device.name)) { - item_text.append(QString(" (%1)").arg(device.name)); + QString item_text = device->display_name; + if (!item_text.contains(device->name)) { + item_text.append(QString(" (%1)").arg(device->name)); } ui->defaultInterfaceComboBox->addItem(item_text); } diff --git a/ui/qt/compiled_filter_output.cpp b/ui/qt/compiled_filter_output.cpp index 1d27d5a48d..e709adf80f 100644 --- a/ui/qt/compiled_filter_output.cpp +++ b/ui/qt/compiled_filter_output.cpp @@ -84,12 +84,12 @@ void CompiledFilterOutput::compileFilter() foreach (QString interfaces, intList_) { for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (interfaces.compare(device.display_name)) { + if (interfaces.compare(device->display_name)) { continue; } else { - pcap_t *pd = pcap_open_dead(device.active_dlt, WTAP_MAX_PACKET_SIZE_STANDARD); + pcap_t *pd = pcap_open_dead(device->active_dlt, WTAP_MAX_PACKET_SIZE_STANDARD); if (pd == NULL) break; g_mutex_lock(pcap_compile_mtx); diff --git a/ui/qt/extcap_options_dialog.cpp b/ui/qt/extcap_options_dialog.cpp index 99e9b5743c..c70f5531bb 100644 --- a/ui/qt/extcap_options_dialog.cpp +++ b/ui/qt/extcap_options_dialog.cpp @@ -83,7 +83,7 @@ ExtcapOptionsDialog::ExtcapOptionsDialog(QWidget *parent) : ExtcapOptionsDialog * ExtcapOptionsDialog::createForDevice(QString &dev_name, QWidget *parent) { - interface_t device; + interface_t *device; ExtcapOptionsDialog * resultDialog = NULL; bool dev_found = false; guint if_idx; @@ -93,8 +93,8 @@ ExtcapOptionsDialog * ExtcapOptionsDialog::createForDevice(QString &dev_name, QW for (if_idx = 0; if_idx < global_capture_opts.all_ifaces->len; if_idx++) { - device = g_array_index(global_capture_opts.all_ifaces, interface_t, if_idx); - if (dev_name.compare(QString(device.name)) == 0 && device.if_info.type == IF_EXTCAP) + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, if_idx); + if (dev_name.compare(QString(device->name)) == 0 && device->if_info.type == IF_EXTCAP) { dev_found = true; break; @@ -108,7 +108,7 @@ ExtcapOptionsDialog * ExtcapOptionsDialog::createForDevice(QString &dev_name, QW resultDialog->device_name = QString(dev_name); resultDialog->device_idx = if_idx; - resultDialog->setWindowTitle(wsApp->windowTitleString(tr("Interface Options") + ": " + device.display_name)); + resultDialog->setWindowTitle(wsApp->windowTitleString(tr("Interface Options") + ": " + device->display_name)); resultDialog->updateWidgets(); @@ -316,11 +316,11 @@ void ExtcapOptionsDialog::on_buttonBox_rejected() void ExtcapOptionsDialog::on_buttonBox_helpRequested() { - interface_t device; + interface_t *device; QString interface_help = NULL; - device = g_array_index(global_capture_opts.all_ifaces, interface_t, device_idx); - interface_help = QString(extcap_get_help_for_ifname(device.name)); + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, device_idx); + interface_help = QString(extcap_get_help_for_ifname(device->name)); /* The extcap interface didn't provide an help. Let's go with the default */ if (interface_help.isEmpty()) { wsApp->helpTopicAction(HELP_EXTCAP_OPTIONS_DIALOG); @@ -343,7 +343,7 @@ void ExtcapOptionsDialog::on_buttonBox_helpRequested() { QMessageBox::warning(this, tr("Extcap Help cannot be found"), QString(tr("The help for the extcap interface %1 cannot be found. Given file: %2")) - .arg(device.name).arg(help_url.path()), + .arg(device->name).arg(help_url.path()), QMessageBox::Ok); } @@ -352,11 +352,9 @@ void ExtcapOptionsDialog::on_buttonBox_helpRequested() bool ExtcapOptionsDialog::saveOptionToCaptureInfo() { GHashTable * ret_args; - interface_t device; - - device = g_array_index(global_capture_opts.all_ifaces, interface_t, device_idx); - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, device_idx); + interface_t *device; + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, device_idx); ret_args = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); ExtcapArgumentList::const_iterator iter; @@ -381,12 +379,9 @@ bool ExtcapOptionsDialog::saveOptionToCaptureInfo() g_hash_table_insert(ret_args, call_string, value_string ); } - if (device.external_cap_args_settings != NULL) - g_hash_table_unref(device.external_cap_args_settings); - device.external_cap_args_settings = ret_args; - - g_array_insert_val(global_capture_opts.all_ifaces, device_idx, device); - + if (device->external_cap_args_settings != NULL) + g_hash_table_unref(device->external_cap_args_settings); + device->external_cap_args_settings = ret_args; return true; } diff --git a/ui/qt/interface_toolbar.cpp b/ui/qt/interface_toolbar.cpp index ffddf28f50..fed9cb919b 100644 --- a/ui/qt/interface_toolbar.cpp +++ b/ui/qt/interface_toolbar.cpp @@ -951,20 +951,20 @@ void InterfaceToolbar::interfaceListChanged() for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (device.hidden) + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (device->hidden) continue; - if (interface_.keys().contains(device.name)) + if (interface_.keys().contains(device->name)) { - ui->interfacesComboBox->addItem(device.name); - if (selected_ifname.compare(device.name) == 0) + ui->interfacesComboBox->addItem(device->name); + if (selected_ifname.compare(device->name) == 0) { // Keep selected interface #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) - ui->interfacesComboBox->setCurrentText(device.name); + ui->interfacesComboBox->setCurrentText(device->name); #else - int new_index = ui->interfacesComboBox->findText(device.name); + int new_index = ui->interfacesComboBox->findText(device->name); if (new_index >= 0) { ui->interfacesComboBox->setCurrentIndex(new_index); diff --git a/ui/qt/main_welcome.cpp b/ui/qt/main_welcome.cpp index 30c13f656e..3d8fde8cd9 100644 --- a/ui/qt/main_welcome.cpp +++ b/ui/qt/main_welcome.cpp @@ -289,26 +289,24 @@ void MainWelcome::appInitialized() void MainWelcome::captureFilterTextEdited(const QString capture_filter) { if (global_capture_opts.num_selected > 0) { - interface_t device; + interface_t *device; for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (!device.selected) { + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (!device->selected) { continue; } - // if (device.active_dlt == -1) { - // simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "The link type of interface %s was not specified.", device.name); + // if (device->active_dlt == -1) { + // simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "The link type of interface %s was not specified.", device->name); // continue; /* Programming error: somehow managed to select an "unsupported" entry */ // } - g_array_remove_index(global_capture_opts.all_ifaces, i); - g_free(device.cfilter); + g_free(device->cfilter); if (capture_filter.isEmpty()) { - device.cfilter = NULL; + device->cfilter = NULL; } else { - device.cfilter = qstring_strdup(capture_filter); + device->cfilter = qstring_strdup(capture_filter); } - g_array_insert_val(global_capture_opts.all_ifaces, i, device); - // update_filter_string(device.name, filter_text); + // update_filter_string(device->name, filter_text); } } } diff --git a/ui/qt/manage_interfaces_dialog.cpp b/ui/qt/manage_interfaces_dialog.cpp index d36d5521a0..5d48bdbe09 100644 --- a/ui/qt/manage_interfaces_dialog.cpp +++ b/ui/qt/manage_interfaces_dialog.cpp @@ -458,12 +458,10 @@ void ManageInterfacesDialog::remoteAccepted() while(*it) { for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if ((*it)->text(col_r_host_dev_).compare(device.name)) + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if ((*it)->text(col_r_host_dev_).compare(device->name)) continue; - device.hidden = ((*it)->checkState(col_r_show_) == Qt::Checked ? false : true); - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, i); - g_array_insert_val(global_capture_opts.all_ifaces, i, device); + device->hidden = ((*it)->checkState(col_r_show_) == Qt::Checked ? false : true); } ++it; } @@ -481,11 +479,11 @@ void ManageInterfacesDialog::on_remoteList_itemClicked(QTreeWidgetItem *item, in } for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (!device.local) { - if (item->text(col_r_host_dev_).compare(device.name)) + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (!device->local) { + if (item->text(col_r_host_dev_).compare(device->name)) continue; - device.hidden = (item->checkState(col_r_show_) == Qt::Checked ? false : true); + device->hidden = (item->checkState(col_r_show_) == Qt::Checked ? false : true); } } } @@ -498,8 +496,8 @@ void ManageInterfacesDialog::on_delRemote_clicked() } for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (item->text(col_r_host_dev_).compare(device.remote_opts.remote_host_opts.remote_host)) + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (item->text(col_r_host_dev_).compare(device->remote_opts.remote_host_opts.remote_host)) continue; global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, i); } @@ -516,22 +514,22 @@ void ManageInterfacesDialog::on_addRemote_clicked() void ManageInterfacesDialog::showRemoteInterfaces() { guint i; - interface_t device; + interface_t *device; QTreeWidgetItem *item = NULL; // We assume that remote interfaces are grouped by host. for (i = 0; i < global_capture_opts.all_ifaces->len; i++) { QTreeWidgetItem *child; - device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (!device.local) { - if (!item || item->text(col_r_host_dev_).compare(device.remote_opts.remote_host_opts.remote_host) != 0) { + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (!device->local) { + if (!item || item->text(col_r_host_dev_).compare(device->remote_opts.remote_host_opts.remote_host) != 0) { item = new QTreeWidgetItem(ui->remoteList); - item->setText(col_r_host_dev_, device.remote_opts.remote_host_opts.remote_host); + item->setText(col_r_host_dev_, device->remote_opts.remote_host_opts.remote_host); item->setExpanded(true); } child = new QTreeWidgetItem(item); - child->setCheckState(col_r_show_, device.hidden ? Qt::Unchecked : Qt::Checked); - child->setText(col_r_host_dev_, QString(device.name)); + child->setCheckState(col_r_show_, device->hidden ? Qt::Unchecked : Qt::Checked); + child->setText(col_r_host_dev_, QString(device->name)); } } } @@ -539,19 +537,19 @@ void ManageInterfacesDialog::showRemoteInterfaces() void ManageInterfacesDialog::on_remoteSettings_clicked() { guint i = 0; - interface_t device; + interface_t *device; QTreeWidgetItem* item = ui->remoteList->currentItem(); if (!item) { return; } for (i = 0; i < global_capture_opts.all_ifaces->len; i++) { - device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (!device.local) { - if (item->text(col_r_host_dev_).compare(device.name)) { + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (!device->local) { + if (item->text(col_r_host_dev_).compare(device->name)) { continue; } else { - RemoteSettingsDialog *dlg = new RemoteSettingsDialog(this, &device); + RemoteSettingsDialog *dlg = new RemoteSettingsDialog(this, device); dlg->show(); break; } @@ -562,19 +560,17 @@ void ManageInterfacesDialog::on_remoteSettings_clicked() void ManageInterfacesDialog::setRemoteSettings(interface_t *iface) { for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (!device.local) { - if (strcmp(iface->name, device.name)) { + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (!device->local) { + if (strcmp(iface->name, device->name)) { continue; } - device.remote_opts.remote_host_opts.nocap_rpcap = iface->remote_opts.remote_host_opts.nocap_rpcap; - device.remote_opts.remote_host_opts.datatx_udp = iface->remote_opts.remote_host_opts.datatx_udp; + device->remote_opts.remote_host_opts.nocap_rpcap = iface->remote_opts.remote_host_opts.nocap_rpcap; + device->remote_opts.remote_host_opts.datatx_udp = iface->remote_opts.remote_host_opts.datatx_udp; #ifdef HAVE_PCAP_SETSAMPLING - device.remote_opts.sampling_method = iface->remote_opts.sampling_method; - device.remote_opts.sampling_param = iface->remote_opts.sampling_param; + device->remote_opts.sampling_method = iface->remote_opts.sampling_method; + device->remote_opts.sampling_param = iface->remote_opts.sampling_param; #endif //HAVE_PCAP_SETSAMPLING - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, i); - g_array_insert_val(global_capture_opts.all_ifaces, i, device); } } } diff --git a/ui/qt/models/interface_tree_cache_model.cpp b/ui/qt/models/interface_tree_cache_model.cpp index 0937dbcde6..3c1a6aa7d8 100644 --- a/ui/qt/models/interface_tree_cache_model.cpp +++ b/ui/qt/models/interface_tree_cache_model.cpp @@ -160,9 +160,9 @@ void InterfaceTreeCacheModel::save() for(unsigned int idx = 0; idx < global_capture_opts.all_ifaces->len; idx++) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, idx); + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, idx); - if (! device.name ) + if (! device->name ) continue; /* Try to load a saved value row for this index */ @@ -184,10 +184,10 @@ void InterfaceTreeCacheModel::save() if ( col == IFTREE_COL_HIDDEN ) { - device.hidden = saveValue.toBool(); + device->hidden = saveValue.toBool(); } #ifdef HAVE_EXTCAP - else if ( device.if_info.type == IF_EXTCAP ) + else if ( device->if_info.type == IF_EXTCAP ) { /* extcap interfaces do not have the following columns. * ATTENTION: all generic columns must be added, BEFORE this @@ -196,12 +196,12 @@ void InterfaceTreeCacheModel::save() #endif else if ( col == IFTREE_COL_PROMISCUOUSMODE ) { - device.pmode = saveValue.toBool(); + device->pmode = saveValue.toBool(); } #ifdef HAVE_PCAP_CREATE else if ( col == IFTREE_COL_MONITOR_MODE ) { - device.monitor_mode_enabled = saveValue.toBool(); + device->monitor_mode_enabled = saveValue.toBool(); } #endif else if ( col == IFTREE_COL_SNAPLEN ) @@ -209,40 +209,36 @@ void InterfaceTreeCacheModel::save() int iVal = saveValue.toInt(); if ( iVal != WTAP_MAX_PACKET_SIZE_STANDARD ) { - device.has_snaplen = true; - device.snaplen = iVal; + device->has_snaplen = true; + device->snaplen = iVal; } else { - device.has_snaplen = false; - device.snaplen = WTAP_MAX_PACKET_SIZE_STANDARD; + device->has_snaplen = false; + device->snaplen = WTAP_MAX_PACKET_SIZE_STANDARD; } } #ifdef CAN_SET_CAPTURE_BUFFER_SIZE else if ( col == IFTREE_COL_BUFFERLEN ) { - device.buffer = saveValue.toInt(); + device->buffer = saveValue.toInt(); } #endif - - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, idx); - g_array_insert_val(global_capture_opts.all_ifaces, idx, device); - ++it; } } QVariant content = getColumnContent(idx, IFTREE_COL_HIDDEN, Qt::CheckStateRole); if ( content.isValid() && static_cast(content.toInt()) == Qt::Unchecked ) - prefStorage[&prefs.capture_devices_hide] << QString(device.name); + prefStorage[&prefs.capture_devices_hide] << QString(device->name); content = getColumnContent(idx, IFTREE_COL_INTERFACE_COMMENT); if ( content.isValid() && content.toString().size() > 0 ) - prefStorage[&prefs.capture_devices_descr] << QString("%1(%2)").arg(device.name).arg(content.toString()); + prefStorage[&prefs.capture_devices_descr] << QString("%1(%2)").arg(device->name).arg(content.toString()); bool allowExtendedColumns = true; #ifdef HAVE_EXTCAP - if ( device.if_info.type == IF_EXTCAP ) + if ( device->if_info.type == IF_EXTCAP ) allowExtendedColumns = false; #endif if ( allowExtendedColumns ) @@ -251,13 +247,13 @@ void InterfaceTreeCacheModel::save() if ( content.isValid() ) { bool value = static_cast(content.toInt()) == Qt::Checked; - prefStorage[&prefs.capture_devices_pmode] << QString("%1(%2)").arg(device.name).arg(value ? 1 : 0); + prefStorage[&prefs.capture_devices_pmode] << QString("%1(%2)").arg(device->name).arg(value ? 1 : 0); } #ifdef HAVE_PCAP_CREATE content = getColumnContent(idx, IFTREE_COL_MONITOR_MODE, Qt::CheckStateRole); if ( content.isValid() && static_cast(content.toInt()) == Qt::Checked ) - prefStorage[&prefs.capture_devices_monitor_mode] << QString(device.name); + prefStorage[&prefs.capture_devices_monitor_mode] << QString(device->name); #endif content = getColumnContent(idx, IFTREE_COL_SNAPLEN); @@ -265,9 +261,9 @@ void InterfaceTreeCacheModel::save() { int value = content.toInt(); prefStorage[&prefs.capture_devices_snaplen] << - QString("%1:%2(%3)").arg(device.name). - arg(device.has_snaplen ? 1 : 0). - arg(device.has_snaplen ? value : WTAP_MAX_PACKET_SIZE_STANDARD); + QString("%1:%2(%3)").arg(device->name). + arg(device->has_snaplen ? 1 : 0). + arg(device->has_snaplen ? value : WTAP_MAX_PACKET_SIZE_STANDARD); } #ifdef CAN_SET_CAPTURE_BUFFER_SIZE @@ -278,7 +274,7 @@ void InterfaceTreeCacheModel::save() if ( value != -1 ) { prefStorage[&prefs.capture_devices_buffersize] << - QString("%1(%2)").arg(device.name). + QString("%1(%2)").arg(device->name). arg(value); } } diff --git a/ui/qt/models/interface_tree_model.cpp b/ui/qt/models/interface_tree_model.cpp index 7acda1340e..0f8cd29a1c 100644 --- a/ui/qt/models/interface_tree_model.cpp +++ b/ui/qt/models/interface_tree_model.cpp @@ -121,7 +121,7 @@ QVariant InterfaceTreeModel::data(const QModelIndex &index, int role) const if ( interfacesLoaded ) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, row); + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, row); /* Data for display in cell */ if ( role == Qt::DisplayRole ) @@ -129,55 +129,55 @@ QVariant InterfaceTreeModel::data(const QModelIndex &index, int role) const /* Only the name is being displayed */ if ( col == IFTREE_COL_NAME ) { - return QString(device.display_name); + return QString(device->display_name); } else if ( col == IFTREE_COL_INTERFACE_NAME ) { - return QString(device.name); + return QString(device->name); } else if ( col == IFTREE_COL_PIPE_PATH ) { - return QString(device.if_info.name); + return QString(device->if_info.name); } else if ( col == IFTREE_COL_CAPTURE_FILTER ) { - if ( device.cfilter && strlen(device.cfilter) > 0 ) - return html_escape(QString(device.cfilter)); + if ( device->cfilter && strlen(device->cfilter) > 0 ) + return html_escape(QString(device->cfilter)); } #ifdef HAVE_EXTCAP else if ( col == IFTREE_COL_EXTCAP_PATH ) { - return QString(device.if_info.extcap); + return QString(device->if_info.extcap); } #endif else if ( col == IFTREE_COL_SNAPLEN ) { - return device.has_snaplen ? QString::number(device.snaplen) : DefaultNumericValue; + return device->has_snaplen ? QString::number(device->snaplen) : DefaultNumericValue; } #ifdef CAN_SET_CAPTURE_BUFFER_SIZE else if ( col == IFTREE_COL_BUFFERLEN ) { - return QString::number(device.buffer); + return QString::number(device->buffer); } #endif else if ( col == IFTREE_COL_TYPE ) { - return QVariant::fromValue((int)device.if_info.type); + return QVariant::fromValue((int)device->if_info.type); } else if ( col == IFTREE_COL_INTERFACE_COMMENT ) { - QString comment = gchar_free_to_qstring(capture_dev_user_descr_find(device.name)); + QString comment = gchar_free_to_qstring(capture_dev_user_descr_find(device->name)); if ( comment.length() > 0 ) return comment; else - return QString(device.if_info.vendor_description); + return QString(device->if_info.vendor_description); } else if ( col == IFTREE_COL_DLT ) { - QString linkname = QObject::tr("DLT %1").arg(device.active_dlt); - for (GList *list = device.links; list != NULL; list = g_list_next(list)) { + QString linkname = QObject::tr("DLT %1").arg(device->active_dlt); + for (GList *list = device->links; list != NULL; list = g_list_next(list)) { link_row *linkr = (link_row*)(list->data); - if (linkr->dlt != -1 && linkr->dlt == device.active_dlt) { + if (linkr->dlt != -1 && linkr->dlt == device->active_dlt) { linkname = linkr->name; break; } @@ -196,16 +196,16 @@ QVariant InterfaceTreeModel::data(const QModelIndex &index, int role) const if ( col == IFTREE_COL_HIDDEN ) { /* Hidden is a de-selection, therefore inverted logic here */ - return device.hidden ? Qt::Unchecked : Qt::Checked; + return device->hidden ? Qt::Unchecked : Qt::Checked; } else if ( col == IFTREE_COL_PROMISCUOUSMODE ) { - return device.pmode ? Qt::Checked : Qt::Unchecked; + return device->pmode ? Qt::Checked : Qt::Unchecked; } #ifdef HAVE_PCAP_CREATE else if ( col == IFTREE_COL_MONITOR_MODE ) { - return device.monitor_mode_enabled ? Qt::Checked : Qt::Unchecked; + return device->monitor_mode_enabled ? Qt::Checked : Qt::Unchecked; } #endif } @@ -214,12 +214,12 @@ QVariant InterfaceTreeModel::data(const QModelIndex &index, int role) const { if ( col == IFTREE_COL_STATS ) { - if ( points.contains(device.name) ) - return qVariantFromValue(points[device.name]); + if ( points.contains(device->name) ) + return qVariantFromValue(points[device->name]); } else if ( col == IFTREE_COL_HIDDEN ) { - return QVariant::fromValue((bool)device.hidden); + return QVariant::fromValue((bool)device->hidden); } } #ifdef HAVE_EXTCAP @@ -228,7 +228,7 @@ QVariant InterfaceTreeModel::data(const QModelIndex &index, int role) const { if ( col == IFTREE_COL_EXTCAP ) { - if ( device.if_info.type == IF_EXTCAP ) + if ( device->if_info.type == IF_EXTCAP ) return QIcon(StockIcon("x-capture-options")); } } @@ -322,8 +322,8 @@ QVariant InterfaceTreeModel::getColumnContent(int idx, int col, int role) #ifdef HAVE_PCAP_REMOTE bool InterfaceTreeModel::isRemote(int idx) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, idx); - if ( device.remote_opts.src_type == CAPTURE_IFREMOTE ) + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, idx); + if ( device->remote_opts.src_type == CAPTURE_IFREMOTE ) return true; return false; } @@ -352,20 +352,20 @@ QVariant InterfaceTreeModel::toolTipForInterface(int idx) const if ( ! global_capture_opts.all_ifaces || global_capture_opts.all_ifaces->len <= (guint) idx) return QVariant(); - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, idx); + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, idx); QString tt_str = "

"; - if ( device.no_addresses > 0 ) + if ( device->no_addresses > 0 ) { tt_str += QString("%1: %2") - .arg(device.no_addresses > 1 ? tr("Addresses") : tr("Address")) - .arg(html_escape(device.addresses)) + .arg(device->no_addresses > 1 ? tr("Addresses") : tr("Address")) + .arg(html_escape(device->addresses)) .replace('\n', ", "); } #ifdef HAVE_EXTCAP - else if ( device.if_info.type == IF_EXTCAP ) + else if ( device->if_info.type == IF_EXTCAP ) { - tt_str = QString(tr("Extcap interface: %1")).arg(get_basename(device.if_info.extcap)); + tt_str = QString(tr("Extcap interface: %1")).arg(get_basename(device->if_info.extcap)); } #endif else @@ -374,7 +374,7 @@ QVariant InterfaceTreeModel::toolTipForInterface(int idx) const } tt_str += "
"; - QString cfilter = device.cfilter; + QString cfilter = device->cfilter; if ( cfilter.isEmpty() ) { tt_str += tr("No capture filter"); @@ -413,9 +413,9 @@ void InterfaceTreeModel::updateStatistic(unsigned int idx) if ( ! global_capture_opts.all_ifaces || global_capture_opts.all_ifaces->len <= (guint) idx ) return; - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, idx); + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, idx); - if ( device.if_info.type == IF_PIPE ) + if ( device->if_info.type == IF_PIPE ) return; if ( !stat_cache_ ) @@ -430,20 +430,17 @@ void InterfaceTreeModel::updateStatistic(unsigned int idx) struct pcap_stat stats; diff = 0; - if ( capture_stats(stat_cache_, device.name, &stats) ) + if ( capture_stats(stat_cache_, device->name, &stats) ) { - if ( (int)(stats.ps_recv - device.last_packets) >= 0 ) + if ( (int)(stats.ps_recv - device->last_packets) >= 0 ) { - diff = stats.ps_recv - device.last_packets; - device.packet_diff = diff; + diff = stats.ps_recv - device->last_packets; + device->packet_diff = diff; } - device.last_packets = stats.ps_recv; - - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, idx); - g_array_insert_val(global_capture_opts.all_ifaces, idx, device); + device->last_packets = stats.ps_recv; } - points[device.name].append(diff); + points[device->name].append(diff); emit dataChanged(index(idx, IFTREE_COL_STATS), index(idx, IFTREE_COL_STATS)); #else Q_UNUSED(idx) @@ -456,9 +453,9 @@ void InterfaceTreeModel::getPoints(int idx, PointList *pts) if ( ! global_capture_opts.all_ifaces || global_capture_opts.all_ifaces->len <= (guint) idx ) return; - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, idx); - if ( points.contains(device.name) ) - pts->append(points[device.name]); + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, idx); + if ( points.contains(device->name) ) + pts->append(points[device->name]); #else Q_UNUSED(idx) Q_UNUSED(pts) @@ -471,9 +468,9 @@ QItemSelection InterfaceTreeModel::selectedDevices() #ifdef HAVE_LIBPCAP for( int idx = 0; idx < rowCount(); idx++ ) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, idx); + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, idx); - if ( device.selected ) + if ( device->selected ) { QModelIndex selectIndex = index(idx, 0); mySelection.merge( @@ -514,27 +511,21 @@ bool InterfaceTreeModel::updateSelectedDevices(QItemSelection sourceSelection) for ( unsigned int idx = 0; idx < global_capture_opts.all_ifaces->len; idx++ ) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, idx); - if ( !device.locked ) + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, idx); + if ( !device->locked ) { if ( selectedIndices.contains(idx) ) { - if (! device.selected ) + if (! device->selected ) selectionHasChanged = true; - device.selected = TRUE; + device->selected = TRUE; global_capture_opts.num_selected++; } else { - if ( device.selected ) + if ( device->selected ) selectionHasChanged = true; - device.selected = FALSE; + device->selected = FALSE; } - device.locked = TRUE; - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, idx); - g_array_insert_val(global_capture_opts.all_ifaces, idx, device); - - device.locked = FALSE; - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, idx); - g_array_insert_val(global_capture_opts.all_ifaces, idx, device); + device->locked = FALSE; } } #else diff --git a/ui/qt/widgets/capture_filter_edit.cpp b/ui/qt/widgets/capture_filter_edit.cpp index a771e38809..78f60def27 100644 --- a/ui/qt/widgets/capture_filter_edit.cpp +++ b/ui/qt/widgets/capture_filter_edit.cpp @@ -256,13 +256,13 @@ QPair CaptureFilterEdit::getSelectedFilter() int selected_devices = 0; for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { - interface_t device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (device.selected) { + interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (device->selected) { selected_devices++; if (selected_devices == 1) { - user_filter = device.cfilter; + user_filter = device->cfilter; } else { - if (user_filter.compare(device.cfilter)) { + if (user_filter.compare(device->cfilter)) { filter_conflict = true; } } diff --git a/ui/qt/wireshark_application.cpp b/ui/qt/wireshark_application.cpp index e0fb241143..d6d46f38d5 100644 --- a/ui/qt/wireshark_application.cpp +++ b/ui/qt/wireshark_application.cpp @@ -1026,12 +1026,12 @@ iface_mon_event_cb(const char *iface, int up) { int present = 0; guint ifs, j; - interface_t device; + interface_t *device; interface_options interface_opts; for (ifs = 0; ifs < global_capture_opts.all_ifaces->len; ifs++) { - device = g_array_index(global_capture_opts.all_ifaces, interface_t, ifs); - if (strcmp(device.name, iface) == 0) { + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, ifs); + if (strcmp(device->name, iface) == 0) { present = 1; if (!up) { /* @@ -1041,7 +1041,7 @@ iface_mon_event_cb(const char *iface, int up) */ for (j = 0; j < global_capture_opts.ifaces->len; j++) { interface_opts = g_array_index(global_capture_opts.ifaces, interface_options, j); - if (strcmp(interface_opts.name, device.name) == 0) { + if (strcmp(interface_opts.name, device->name) == 0) { g_array_remove_index(global_capture_opts.ifaces, j); } } diff --git a/wireshark-qt.cpp b/wireshark-qt.cpp index 19687f65b5..40edbea0a5 100644 --- a/wireshark-qt.cpp +++ b/wireshark-qt.cpp @@ -737,15 +737,15 @@ int main(int argc, char *qt_argv[]) /* Get the list of link-layer types for the capture devices. */ if_capabilities_t *caps; guint i; - interface_t device; + interface_t *device; for (i = 0; i < global_capture_opts.all_ifaces->len; i++) { int if_caps_queries = caps_queries; - device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (device.selected) { + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (device->selected) { #if defined(HAVE_PCAP_CREATE) - caps = capture_get_if_capabilities(device.name, device.monitor_mode_supported, NULL, &err_str, main_window_update); + caps = capture_get_if_capabilities(device->name, device->monitor_mode_supported, NULL, &err_str, main_window_update); #else - caps = capture_get_if_capabilities(device.name, FALSE, NULL, &err_str,main_window_update); + caps = capture_get_if_capabilities(device->name, FALSE, NULL, &err_str,main_window_update); #endif if (caps == NULL) { cmdarg_err("%s", err_str); @@ -754,7 +754,7 @@ int main(int argc, char *qt_argv[]) goto clean_exit; } if (caps->data_link_types == NULL) { - cmdarg_err("The capture device \"%s\" has no data link types.", device.name); + cmdarg_err("The capture device \"%s\" has no data link types.", device->name); ret_val = INVALID_LINK_TYPE; goto clean_exit; } @@ -762,10 +762,10 @@ int main(int argc, char *qt_argv[]) create_console(); #endif /* _WIN32 */ #if defined(HAVE_PCAP_CREATE) - if (device.monitor_mode_supported) + if (device->monitor_mode_supported) if_caps_queries |= CAPS_MONITOR_MODE; #endif - capture_opts_print_if_capabilities(caps, device.name, if_caps_queries); + capture_opts_print_if_capabilities(caps, device->name, if_caps_queries); #ifdef _WIN32 destroy_console(); #endif /* _WIN32 */ @@ -794,14 +794,12 @@ int main(int argc, char *qt_argv[]) if ((global_capture_opts.num_selected == 0) && (prefs.capture_device != NULL)) { guint i; - interface_t device; + interface_t *device; for (i = 0; i < global_capture_opts.all_ifaces->len; i++) { - device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); - if (!device.hidden && strcmp(device.display_name, prefs.capture_device) == 0) { - device.selected = TRUE; + device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i); + if (!device->hidden && strcmp(device->display_name, prefs.capture_device) == 0) { + device->selected = TRUE; global_capture_opts.num_selected++; - global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, i); - g_array_insert_val(global_capture_opts.all_ifaces, i, device); break; } }