diff options
author | Gerald Combs <gerald@wireshark.org> | 2011-02-10 17:09:36 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2011-02-10 17:09:36 +0000 |
commit | fb3055d41a2a6fbcdfd954d4ca2033a3e894bf99 (patch) | |
tree | 8e758df7cca981c9e388d46231e103467322271e /gtk | |
parent | 50e1634f4ccfc3efeb6d0c6c452f9b4070a960e0 (diff) |
Remove a bunch of prototypes in airpcap_dlg.h for functions which are
now static. Make another function static.
svn path=/trunk/; revision=35897
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/airpcap_dlg.c | 826 | ||||
-rw-r--r-- | gtk/airpcap_dlg.h | 178 |
2 files changed, 420 insertions, 584 deletions
diff --git a/gtk/airpcap_dlg.c b/gtk/airpcap_dlg.c index e662139b76..d1c7b04fd9 100644 --- a/gtk/airpcap_dlg.c +++ b/gtk/airpcap_dlg.c @@ -947,6 +947,21 @@ on_edit_key_ok_bt_clicked(GtkWidget *widget _U_, gpointer data) } /* + * Add key window destroy callback + */ +static void +on_add_key_w_destroy(GtkWidget *button _U_, gpointer data) +{ + GtkWidget *airpcap_advanced_w; + + airpcap_advanced_w = GTK_WIDGET(data); + + gtk_widget_set_sensitive(GTK_WIDGET(airpcap_advanced_w),TRUE); + + return; +} + +/* * Callback for the 'Add Key' button. */ static void @@ -1129,21 +1144,6 @@ on_edit_key_w_destroy(GtkWidget *button _U_, gpointer data) } /* - * Add key window destroy callback - */ -static void -on_add_key_w_destroy(GtkWidget *button _U_, gpointer data) -{ - GtkWidget *airpcap_advanced_w; - - airpcap_advanced_w = GTK_WIDGET(data); - - gtk_widget_set_sensitive(GTK_WIDGET(airpcap_advanced_w),TRUE); - - return; -} - -/* * Callback for the 'Remove Key' button. */ static void @@ -1393,7 +1393,7 @@ on_move_key_up_bt_clicked(GtkWidget *button _U_, gpointer key_list) /* * Callback for the 'Move Key Down' button. */ -void +static void on_move_key_down_bt_clicked(GtkWidget *button _U_, gpointer list_view) { tree_view_list_store_move_selection(GTK_TREE_VIEW(list_view), FALSE); @@ -1515,6 +1515,162 @@ update_decryption_mode_list(GtkWidget *cb) g_free(current_text); } + +/* + * Callback for the Wireless Advanced Settings 'Apply' button. + */ +static void +on_advanced_apply_bt_clicked(GtkWidget *button _U_, gpointer data) +{ + /* advenced window */ + GtkWidget *airpcap_advanced_w; + GtkWidget *channel_cb, *channel_offset_cb; + + /* widgets in the toolbar */ + GtkWidget *toolbar, + *toolbar_if_lb, + *toolbar_channel_cb, + *toolbar_channel_offset_cb, + *toolbar_fcs_filter_cb; + + /* retrieve main window */ + airpcap_advanced_w = GTK_WIDGET(data); + + /* Set the channel and offset */ + channel_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_CHANNEL_KEY)); + channel_offset_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_CHANNEL_OFFSET_KEY)); + airpcap_channel_offset_changed_cb(channel_offset_cb, NULL); + airpcap_channel_changed_set_cb(channel_cb, channel_offset_cb); + + + toolbar = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_TOOLBAR_KEY)); + + /* retrieve toolbar info */ + toolbar_if_lb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_INTERFACE_KEY)); + toolbar_channel_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_CHANNEL_KEY)); + toolbar_channel_offset_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_CHANNEL_OFFSET_KEY)); + toolbar_fcs_filter_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_FCS_FILTER_KEY)); + + /* Save the configuration (for all ) */ + airpcap_save_selected_if_configuration(airpcap_if_selected); + + /* Update toolbar (only if airpcap_if_selected is airpcap_if_active)*/ + if ( g_ascii_strcasecmp(airpcap_if_selected->description,airpcap_if_active->description) == 0) + { + gtk_label_set_text(GTK_LABEL(toolbar_if_lb), g_strdup_printf("%s %s\t","Current Wireless Interface: #",airpcap_get_if_string_number(airpcap_if_selected))); + airpcap_update_channel_combo(GTK_WIDGET(toolbar_channel_cb),airpcap_if_selected); + airpcap_update_channel_offset_combo(airpcap_if_selected, airpcap_if_selected->channelInfo.Frequency, toolbar_channel_offset_cb, TRUE); + airpcap_validation_type_combo_set_by_type(toolbar_fcs_filter_cb,airpcap_if_selected->CrcValidationOn); + } +} + +/* + * Callback for the OK button 'clicked' in the Advanced Wireless Settings window. + */ +static void +on_advanced_ok_bt_clicked(GtkWidget *button _U_, gpointer data) +{ + PAirpcapHandle ad = NULL; + gchar ebuf[AIRPCAP_ERRBUF_SIZE]; + + /* Retrieve object data */ + GtkWidget *airpcap_advanced_w = GTK_WIDGET(data); + + if (airpcap_if_selected == NULL) { /* There's not much we can do. */ + gtk_widget_destroy(airpcap_advanced_w); + return; + } + + on_advanced_apply_bt_clicked(button, data); + + /* Stop blinking our LED */ + ad = airpcap_if_open(airpcap_if_selected->name, ebuf); + if (ad) + { + g_source_remove(airpcap_if_selected->tag); + airpcap_if_turn_led_on(ad, 0); + airpcap_if_selected->blinking = FALSE; + airpcap_if_selected->led = TRUE; + airpcap_if_close(ad); + } + + /* Remove GLIB timeout */ + g_source_remove(airpcap_if_selected->tag); + + gtk_widget_destroy(airpcap_advanced_w); +} + +/* + * Callback for the CANCEL button 'clicked' in the Advanced Wireless Settings window. + */ +static void +on_advanced_cancel_bt_clicked(GtkWidget *button _U_, gpointer data) +{ + PAirpcapHandle ad = NULL; + gchar ebuf[AIRPCAP_ERRBUF_SIZE]; + + /* Retrieve object data */ + GtkWidget *airpcap_advanced_w; + GtkWidget *channel_combo; + GtkWidget *capture_combo; + GtkWidget *crc_check; + GtkWidget *wrong_crc_combo; + GtkWidget *blink_bt; + GtkWidget *interface_combo; + GtkWidget *cancel_bt; + GtkWidget *ok_bt; + + /* widgets in the toolbar */ + GtkWidget *toolbar, + *toolbar_if_lb, + *toolbar_channel_cb, + *toolbar_wrong_crc_cb, + *advanced_bt; + + /* Retrieve the GUI object pointers */ + airpcap_advanced_w = GTK_WIDGET(data); + interface_combo = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_INTERFACE_KEY)); + channel_combo = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_CHANNEL_KEY)); + capture_combo = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_LINK_TYPE_KEY)); + crc_check = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_FCS_CHECK_KEY)); + wrong_crc_combo = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_FCS_FILTER_KEY)); + blink_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_BLINK_KEY)); + cancel_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_CANCEL_KEY)); + ok_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_OK_KEY)); + advanced_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_KEY)); + + toolbar = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_TOOLBAR_KEY)); + + /* retrieve toolbar info */ + toolbar_if_lb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_INTERFACE_KEY)); + toolbar_channel_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_CHANNEL_KEY)); + toolbar_wrong_crc_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_FCS_FILTER_KEY)); + + /* Stop blinking ALL leds (go through the airpcap_if_list) */ + if (airpcap_if_selected != NULL) + { + ad = airpcap_if_open(airpcap_if_selected->name, ebuf); + if (ad) + { + g_source_remove(airpcap_if_selected->tag); + airpcap_if_turn_led_on(ad, 0); + airpcap_if_selected->blinking = FALSE; + airpcap_if_selected->led = TRUE; + airpcap_if_close(ad); + } + } + + /* reload the configuration!!! Configuration has not been saved but + the corresponding structure has been modified probably...*/ + if (!airpcap_if_selected->saved) + { + airpcap_load_selected_if_configuration(airpcap_if_selected); + } + + gtk_widget_destroy(airpcap_advanced_w); +} + + /* Called to create the airpcap settings' window */ void display_airpcap_advanced_cb(GtkWidget *w _U_, gpointer data) @@ -1867,157 +2023,56 @@ display_airpcap_advanced_cb(GtkWidget *w _U_, gpointer data) } /* - * Callback for the Wireless Advanced Settings 'Apply' button. + * Callback for the OK button 'clicked' in the Decryption Key Management window. */ static void -on_advanced_apply_bt_clicked(GtkWidget *button _U_, gpointer data) +on_key_management_ok_bt_clicked(GtkWidget *button, gpointer data) { - /* advenced window */ - GtkWidget *airpcap_advanced_w; - GtkWidget *channel_cb, *channel_offset_cb; - - /* widgets in the toolbar */ - GtkWidget *toolbar, - *toolbar_if_lb, - *toolbar_channel_cb, - *toolbar_channel_offset_cb, - *toolbar_fcs_filter_cb; + /* advanced window */ + GtkWidget *key_management_w; /* retrieve main window */ - airpcap_advanced_w = GTK_WIDGET(data); - - /* Set the channel and offset */ - channel_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_CHANNEL_KEY)); - channel_offset_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_CHANNEL_OFFSET_KEY)); - airpcap_channel_offset_changed_cb(channel_offset_cb, NULL); - airpcap_channel_changed_set_cb(channel_cb, channel_offset_cb); - - - toolbar = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_TOOLBAR_KEY)); - - /* retrieve toolbar info */ - toolbar_if_lb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_INTERFACE_KEY)); - toolbar_channel_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_CHANNEL_KEY)); - toolbar_channel_offset_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_CHANNEL_OFFSET_KEY)); - toolbar_fcs_filter_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_FCS_FILTER_KEY)); - - /* Save the configuration (for all ) */ - airpcap_save_selected_if_configuration(airpcap_if_selected); - - /* Update toolbar (only if airpcap_if_selected is airpcap_if_active)*/ - if ( g_ascii_strcasecmp(airpcap_if_selected->description,airpcap_if_active->description) == 0) - { - gtk_label_set_text(GTK_LABEL(toolbar_if_lb), g_strdup_printf("%s %s\t","Current Wireless Interface: #",airpcap_get_if_string_number(airpcap_if_selected))); - airpcap_update_channel_combo(GTK_WIDGET(toolbar_channel_cb),airpcap_if_selected); - airpcap_update_channel_offset_combo(airpcap_if_selected, airpcap_if_selected->channelInfo.Frequency, toolbar_channel_offset_cb, TRUE); - airpcap_validation_type_combo_set_by_type(toolbar_fcs_filter_cb,airpcap_if_selected->CrcValidationOn); - } -} - -/* - * Callback for the OK button 'clicked' in the Advanced Wireless Settings window. - */ -static void -on_advanced_ok_bt_clicked(GtkWidget *button _U_, gpointer data) -{ - PAirpcapHandle ad = NULL; - gchar ebuf[AIRPCAP_ERRBUF_SIZE]; - - /* Retrieve object data */ - GtkWidget *airpcap_advanced_w = GTK_WIDGET(data); - - if (airpcap_if_selected == NULL) { /* There's not much we can do. */ - gtk_widget_destroy(airpcap_advanced_w); - return; - } - - on_advanced_apply_bt_clicked(button, data); + key_management_w = GTK_WIDGET(data); - /* Stop blinking our LED */ - ad = airpcap_if_open(airpcap_if_selected->name, ebuf); - if (ad) - { - g_source_remove(airpcap_if_selected->tag); - airpcap_if_turn_led_on(ad, 0); - airpcap_if_selected->blinking = FALSE; - airpcap_if_selected->led = TRUE; - airpcap_if_close(ad); - } + /* Apply the current decryption preferences */ + on_key_management_apply_bt_clicked(button, data); - /* Remove GLIB timeout */ - g_source_remove(airpcap_if_selected->tag); + /* Save the preferences to preferences file!!! */ + write_prefs_to_file(); - gtk_widget_destroy(airpcap_advanced_w); + gtk_widget_destroy(key_management_w); } /* - * Callback for the CANCEL button 'clicked' in the Advanced Wireless Settings window. + * Callback for the CANCEL button 'clicked' in the Decryption Key Management window. */ static void -on_advanced_cancel_bt_clicked(GtkWidget *button _U_, gpointer data) +on_key_management_cancel_bt_clicked(GtkWidget *button _U_, gpointer data) { - PAirpcapHandle ad = NULL; - gchar ebuf[AIRPCAP_ERRBUF_SIZE]; - /* Retrieve object data */ - GtkWidget *airpcap_advanced_w; - GtkWidget *channel_combo; - GtkWidget *capture_combo; - GtkWidget *crc_check; - GtkWidget *wrong_crc_combo; - GtkWidget *blink_bt; - GtkWidget *interface_combo; + GtkWidget *key_management_w; GtkWidget *cancel_bt; GtkWidget *ok_bt; + GtkListStore *key_list_store; /* widgets in the toolbar */ GtkWidget *toolbar, - *toolbar_if_lb, - *toolbar_channel_cb, - *toolbar_wrong_crc_cb, - *advanced_bt; + *toolbar_decryption_ck, + *key_management_bt; /* Retrieve the GUI object pointers */ - airpcap_advanced_w = GTK_WIDGET(data); - interface_combo = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_INTERFACE_KEY)); - channel_combo = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_CHANNEL_KEY)); - capture_combo = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_LINK_TYPE_KEY)); - crc_check = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_FCS_CHECK_KEY)); - wrong_crc_combo = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_FCS_FILTER_KEY)); - blink_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_BLINK_KEY)); - cancel_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_CANCEL_KEY)); - ok_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_OK_KEY)); - advanced_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_ADVANCED_KEY)); + key_management_w = GTK_WIDGET(data); + cancel_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_CANCEL_KEY)); + ok_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_OK_KEY)); + key_list_store = GTK_LIST_STORE(g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEYLIST_KEY)); + key_management_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEY)); - toolbar = GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_advanced_w),AIRPCAP_TOOLBAR_KEY)); + toolbar = GTK_WIDGET(g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_TOOLBAR_KEY)); /* retrieve toolbar info */ - toolbar_if_lb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_INTERFACE_KEY)); - toolbar_channel_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_CHANNEL_KEY)); - toolbar_wrong_crc_cb = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_FCS_FILTER_KEY)); - - /* Stop blinking ALL leds (go through the airpcap_if_list) */ - if (airpcap_if_selected != NULL) - { - ad = airpcap_if_open(airpcap_if_selected->name, ebuf); - if (ad) - { - g_source_remove(airpcap_if_selected->tag); - airpcap_if_turn_led_on(ad, 0); - airpcap_if_selected->blinking = FALSE; - airpcap_if_selected->led = TRUE; - airpcap_if_close(ad); - } - } - - /* reload the configuration!!! Configuration has not been saved but - the corresponding structure has been modified probably...*/ - if (!airpcap_if_selected->saved) - { - airpcap_load_selected_if_configuration(airpcap_if_selected); - } + toolbar_decryption_ck = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_DECRYPTION_KEY)); - gtk_widget_destroy(airpcap_advanced_w); + gtk_widget_destroy(key_management_w); } /* Called to create the key management window */ @@ -2360,62 +2415,245 @@ display_airpcap_key_management_cb(GtkWidget *w _U_, gpointer data) gtk_tree_selection_select_iter(selection, &iter); } -/* - * Callback for the OK button 'clicked' in the Decryption Key Management window. - */ + static void -on_key_management_ok_bt_clicked(GtkWidget *button, gpointer data) +on_keys_check_cancel_bt_clicked (GtkWidget *button _U_, gpointer user_data) { - /* advanced window */ - GtkWidget *key_management_w; + GtkWidget *key_management_w; + GtkWidget *keys_check_w; + GtkListStore *key_list_store; - /* retrieve main window */ - key_management_w = GTK_WIDGET(data); + keys_check_w = GTK_WIDGET(user_data); - /* Apply the current decryption preferences */ - on_key_management_apply_bt_clicked(button, data); + key_management_w = g_object_get_data(G_OBJECT(keys_check_w),AIRPCAP_CHECK_WINDOW_KEY); - /* Save the preferences to preferences file!!! */ - write_prefs_to_file(); + /* w may be NULL if airpcap_keys_check_w() has been called while Wireshark was loading, + and is not NULL if it was called when the Key Management widget has been clicked */ + if (key_management_w != NULL) + { + /* ... */ + key_list_store = g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEYLIST_KEY); + airpcap_fill_key_list(key_list_store); + gtk_widget_show (key_management_w); + } - gtk_widget_destroy(key_management_w); + gtk_widget_destroy(keys_check_w); } -/* - * Callback for the CANCEL button 'clicked' in the Decryption Key Management window. - */ static void -on_key_management_cancel_bt_clicked(GtkWidget *button _U_, gpointer data) +on_merge_bt_clicked (GtkWidget* button _U_, gpointer user_data) { - /* Retrieve object data */ GtkWidget *key_management_w; - GtkWidget *cancel_bt; - GtkWidget *ok_bt; + GtkWidget *keys_check_w; GtkListStore *key_list_store; - /* widgets in the toolbar */ - GtkWidget *toolbar, - *toolbar_decryption_ck, - *key_management_bt; + guint n_adapters = 0; + guint n_wireshark_keys = 0; + guint n_driver_keys = 0; + guint n_curr_adapter_keys = 0; + guint n_total_keys = 0; + guint n_merged_keys = 0; + guint i = 0; - /* Retrieve the GUI object pointers */ - key_management_w = GTK_WIDGET(data); - cancel_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_CANCEL_KEY)); - ok_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_OK_KEY)); - key_list_store = GTK_LIST_STORE(g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEYLIST_KEY)); - key_management_bt = GTK_WIDGET(g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEY)); + GList* wireshark_keys=NULL; + GList* driver_keys=NULL; + GList* current_adapter_keys=NULL; + GList* merged_list = NULL; + GList* merged_list_tmp = NULL; - toolbar = GTK_WIDGET(g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_TOOLBAR_KEY)); + airpcap_if_info_t* curr_adapter; - /* retrieve toolbar info */ - toolbar_decryption_ck = GTK_WIDGET(g_object_get_data(G_OBJECT(toolbar),AIRPCAP_TOOLBAR_DECRYPTION_KEY)); + keys_check_w = GTK_WIDGET(user_data); - gtk_widget_destroy(key_management_w); + key_management_w = g_object_get_data(G_OBJECT(keys_check_w),AIRPCAP_CHECK_WINDOW_KEY); + + n_adapters = g_list_length(airpcap_if_list); + + /* Retrieve Wireshark keys */ + wireshark_keys = get_wireshark_keys(); + n_wireshark_keys = g_list_length(wireshark_keys); + n_total_keys += n_wireshark_keys; + + merged_list = merge_key_list(wireshark_keys,NULL); + + /* Retrieve AirPcap driver's keys */ + driver_keys = get_airpcap_driver_keys(); + n_driver_keys = g_list_length(driver_keys); + n_total_keys += n_driver_keys; + + merged_list = merge_key_list(merged_list,driver_keys); + + /* NOW wireshark_keys and driver_keys ARE no more needed... at the end, we will have to free them! */ + for (i = 0; i<n_adapters; i++) + { + curr_adapter = (airpcap_if_info_t*)g_list_nth_data(airpcap_if_list,i); + current_adapter_keys = get_airpcap_device_keys(curr_adapter); + n_curr_adapter_keys = g_list_length(current_adapter_keys); + + merged_list_tmp = merged_list; + merged_list = merge_key_list(merged_list_tmp,current_adapter_keys); + free_key_list(merged_list_tmp); + + n_total_keys += n_curr_adapter_keys; + } + + n_merged_keys = g_list_length(merged_list); + + /* Set up this new list as default for Wireshark and Adapters... */ + airpcap_save_decryption_keys(merged_list,airpcap_if_list); + + /* Write the preferences to the preferences file */ + write_prefs_to_file(); + + free_key_list(wireshark_keys); + free_key_list(driver_keys); + + gtk_widget_destroy(keys_check_w); + + /* w may be NULL if airpcap_keys_check_w() has been called while Wireshark was loading, + and is not NULL if it was called when the Key Management widget has been clicked */ + if (key_management_w != NULL) + { + /* ... */ + key_list_store = g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEYLIST_KEY); + airpcap_fill_key_list(key_list_store); + gtk_widget_show (key_management_w); + } } +static void +on_keep_bt_clicked (GtkWidget *button _U_, gpointer user_data) +{ + GtkWidget *key_management_w; + GtkWidget *keys_check_w; + GtkListStore *key_list_store=NULL; + + GList* wireshark_keys=NULL; + guint n_wireshark_keys = 0; + + GList* merged_keys=NULL; + guint n_merged_keys = 0; + + guint n_adapters=0; + guint n_total_keys=0; + + keys_check_w = GTK_WIDGET(user_data); + + key_management_w = g_object_get_data(G_OBJECT(keys_check_w),AIRPCAP_CHECK_WINDOW_KEY); + + n_adapters = g_list_length(airpcap_if_list); + + /* Retrieve Wireshark keys */ + wireshark_keys = get_wireshark_keys(); + n_wireshark_keys = g_list_length(wireshark_keys); + n_total_keys += n_wireshark_keys; + + merged_keys = merge_key_list(wireshark_keys,NULL); + n_merged_keys = g_list_length(merged_keys); + + /* Set up this new list as default for Wireshark and Adapters... */ + airpcap_save_decryption_keys(merged_keys,airpcap_if_list); + + /* Write the preferences to the preferences file (here is not needed, by the way)*/ + write_prefs_to_file(); + + /* Free the memory */ + free_key_list(wireshark_keys); + + /* Close the window */ + gtk_widget_destroy(keys_check_w); + + /* w may be NULL if airpcap_keys_check_w() has been called while Wireshark was loading, + and is not NULL if it was called when the Key Management widget has been clicked */ + if (key_management_w != NULL) + { + /* ... */ + key_list_store = g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEYLIST_KEY); + airpcap_fill_key_list(key_list_store); + gtk_widget_show (key_management_w); + } +} static void -on_keys_check_cancel_bt_clicked (GtkWidget *button _U_, gpointer user_data) +on_import_bt_clicked (GtkWidget* button _U_, gpointer user_data) +{ + GtkWidget *key_management_w; + GtkWidget *keys_check_w; + GtkListStore *key_list_store; + + guint n_adapters = 0; + guint n_wireshark_keys = 0; + guint n_driver_keys = 0; + guint n_curr_adapter_keys = 0; + guint n_total_keys = 0; + guint n_merged_keys = 0; + guint i = 0; + + GList* wireshark_keys=NULL; + GList* driver_keys=NULL; + GList* current_adapter_keys=NULL; + GList* merged_list = NULL; + GList* merged_list_tmp = NULL; + + airpcap_if_info_t* curr_adapter; + + keys_check_w = GTK_WIDGET(user_data); + + key_management_w = g_object_get_data(G_OBJECT(keys_check_w),AIRPCAP_CHECK_WINDOW_KEY); + + n_adapters = g_list_length(airpcap_if_list); + + wireshark_keys = get_wireshark_keys(); + n_wireshark_keys = g_list_length(wireshark_keys); + n_total_keys += n_wireshark_keys; + + /* Retrieve AirPcap driver's keys */ + driver_keys = get_airpcap_driver_keys(); + n_driver_keys = g_list_length(driver_keys); + n_total_keys += n_driver_keys; + + merged_list = merge_key_list(merged_list,driver_keys); + + /* NOW wireshark_keys IS no more needed... at the end, we will have to free it! */ + for (i = 0; i<n_adapters; i++) + { + curr_adapter = (airpcap_if_info_t*)g_list_nth_data(airpcap_if_list,i); + current_adapter_keys = get_airpcap_device_keys(curr_adapter); + n_curr_adapter_keys = g_list_length(current_adapter_keys); + + merged_list_tmp = merged_list; + merged_list = merge_key_list(merged_list_tmp,current_adapter_keys); + free_key_list(merged_list_tmp); + + n_total_keys += n_curr_adapter_keys; + } + + n_merged_keys = g_list_length(merged_list); + + /* Set up this new list as default for Wireshark and Adapters... */ + airpcap_save_decryption_keys(merged_list,airpcap_if_list); + + /* Write the preferences to the preferences file */ + write_prefs_to_file(); + + free_key_list(wireshark_keys); + free_key_list(driver_keys); + + gtk_widget_destroy(keys_check_w); + + /* w may be NULL if airpcap_keys_check_w() has been called while Wireshark was loading, + and is not NULL if it was called when the Key Management widget has been clicked */ + if (key_management_w != NULL) + { + /* ... */ + key_list_store = g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEYLIST_KEY); + airpcap_fill_key_list(key_list_store); + gtk_widget_show (key_management_w); + } +} + +static void +on_ignore_bt_clicked (GtkWidget* button _U_, gpointer user_data) { GtkWidget *key_management_w; GtkWidget *keys_check_w; @@ -2631,242 +2869,6 @@ airpcap_keys_check_w(GtkWidget *w, gpointer data _U_) gtk_widget_show(keys_check_w); } -static void -on_keep_bt_clicked (GtkWidget *button _U_, gpointer user_data) -{ - GtkWidget *key_management_w; - GtkWidget *keys_check_w; - GtkListStore *key_list_store=NULL; - - GList* wireshark_keys=NULL; - guint n_wireshark_keys = 0; - - GList* merged_keys=NULL; - guint n_merged_keys = 0; - - guint n_adapters=0; - guint n_total_keys=0; - - keys_check_w = GTK_WIDGET(user_data); - - key_management_w = g_object_get_data(G_OBJECT(keys_check_w),AIRPCAP_CHECK_WINDOW_KEY); - - n_adapters = g_list_length(airpcap_if_list); - - /* Retrieve Wireshark keys */ - wireshark_keys = get_wireshark_keys(); - n_wireshark_keys = g_list_length(wireshark_keys); - n_total_keys += n_wireshark_keys; - - merged_keys = merge_key_list(wireshark_keys,NULL); - n_merged_keys = g_list_length(merged_keys); - - /* Set up this new list as default for Wireshark and Adapters... */ - airpcap_save_decryption_keys(merged_keys,airpcap_if_list); - - /* Write the preferences to the preferences file (here is not needed, by the way)*/ - write_prefs_to_file(); - - /* Free the memory */ - free_key_list(wireshark_keys); - - /* Close the window */ - gtk_widget_destroy(keys_check_w); - - /* w may be NULL if airpcap_keys_check_w() has been called while Wireshark was loading, - and is not NULL if it was called when the Key Management widget has been clicked */ - if (key_management_w != NULL) - { - /* ... */ - key_list_store = g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEYLIST_KEY); - airpcap_fill_key_list(key_list_store); - gtk_widget_show (key_management_w); - } -} - -static void -on_merge_bt_clicked (GtkWidget* button _U_, gpointer user_data) -{ - GtkWidget *key_management_w; - GtkWidget *keys_check_w; - GtkListStore *key_list_store; - - guint n_adapters = 0; - guint n_wireshark_keys = 0; - guint n_driver_keys = 0; - guint n_curr_adapter_keys = 0; - guint n_total_keys = 0; - guint n_merged_keys = 0; - guint i = 0; - - GList* wireshark_keys=NULL; - GList* driver_keys=NULL; - GList* current_adapter_keys=NULL; - GList* merged_list = NULL; - GList* merged_list_tmp = NULL; - - airpcap_if_info_t* curr_adapter; - - keys_check_w = GTK_WIDGET(user_data); - - key_management_w = g_object_get_data(G_OBJECT(keys_check_w),AIRPCAP_CHECK_WINDOW_KEY); - - n_adapters = g_list_length(airpcap_if_list); - - /* Retrieve Wireshark keys */ - wireshark_keys = get_wireshark_keys(); - n_wireshark_keys = g_list_length(wireshark_keys); - n_total_keys += n_wireshark_keys; - - merged_list = merge_key_list(wireshark_keys,NULL); - - /* Retrieve AirPcap driver's keys */ - driver_keys = get_airpcap_driver_keys(); - n_driver_keys = g_list_length(driver_keys); - n_total_keys += n_driver_keys; - - merged_list = merge_key_list(merged_list,driver_keys); - - /* NOW wireshark_keys and driver_keys ARE no more needed... at the end, we will have to free them! */ - for (i = 0; i<n_adapters; i++) - { - curr_adapter = (airpcap_if_info_t*)g_list_nth_data(airpcap_if_list,i); - current_adapter_keys = get_airpcap_device_keys(curr_adapter); - n_curr_adapter_keys = g_list_length(current_adapter_keys); - - merged_list_tmp = merged_list; - merged_list = merge_key_list(merged_list_tmp,current_adapter_keys); - free_key_list(merged_list_tmp); - - n_total_keys += n_curr_adapter_keys; - } - - n_merged_keys = g_list_length(merged_list); - - /* Set up this new list as default for Wireshark and Adapters... */ - airpcap_save_decryption_keys(merged_list,airpcap_if_list); - - /* Write the preferences to the preferences file */ - write_prefs_to_file(); - - free_key_list(wireshark_keys); - free_key_list(driver_keys); - - gtk_widget_destroy(keys_check_w); - - /* w may be NULL if airpcap_keys_check_w() has been called while Wireshark was loading, - and is not NULL if it was called when the Key Management widget has been clicked */ - if (key_management_w != NULL) - { - /* ... */ - key_list_store = g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEYLIST_KEY); - airpcap_fill_key_list(key_list_store); - gtk_widget_show (key_management_w); - } -} - -static void -on_import_bt_clicked (GtkWidget* button _U_, gpointer user_data) -{ - GtkWidget *key_management_w; - GtkWidget *keys_check_w; - GtkListStore *key_list_store; - - guint n_adapters = 0; - guint n_wireshark_keys = 0; - guint n_driver_keys = 0; - guint n_curr_adapter_keys = 0; - guint n_total_keys = 0; - guint n_merged_keys = 0; - guint i = 0; - - GList* wireshark_keys=NULL; - GList* driver_keys=NULL; - GList* current_adapter_keys=NULL; - GList* merged_list = NULL; - GList* merged_list_tmp = NULL; - - airpcap_if_info_t* curr_adapter; - - keys_check_w = GTK_WIDGET(user_data); - - key_management_w = g_object_get_data(G_OBJECT(keys_check_w),AIRPCAP_CHECK_WINDOW_KEY); - - n_adapters = g_list_length(airpcap_if_list); - - wireshark_keys = get_wireshark_keys(); - n_wireshark_keys = g_list_length(wireshark_keys); - n_total_keys += n_wireshark_keys; - - /* Retrieve AirPcap driver's keys */ - driver_keys = get_airpcap_driver_keys(); - n_driver_keys = g_list_length(driver_keys); - n_total_keys += n_driver_keys; - - merged_list = merge_key_list(merged_list,driver_keys); - - /* NOW wireshark_keys IS no more needed... at the end, we will have to free it! */ - for (i = 0; i<n_adapters; i++) - { - curr_adapter = (airpcap_if_info_t*)g_list_nth_data(airpcap_if_list,i); - current_adapter_keys = get_airpcap_device_keys(curr_adapter); - n_curr_adapter_keys = g_list_length(current_adapter_keys); - - merged_list_tmp = merged_list; - merged_list = merge_key_list(merged_list_tmp,current_adapter_keys); - free_key_list(merged_list_tmp); - - n_total_keys += n_curr_adapter_keys; - } - - n_merged_keys = g_list_length(merged_list); - - /* Set up this new list as default for Wireshark and Adapters... */ - airpcap_save_decryption_keys(merged_list,airpcap_if_list); - - /* Write the preferences to the preferences file */ - write_prefs_to_file(); - - free_key_list(wireshark_keys); - free_key_list(driver_keys); - - gtk_widget_destroy(keys_check_w); - - /* w may be NULL if airpcap_keys_check_w() has been called while Wireshark was loading, - and is not NULL if it was called when the Key Management widget has been clicked */ - if (key_management_w != NULL) - { - /* ... */ - key_list_store = g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEYLIST_KEY); - airpcap_fill_key_list(key_list_store); - gtk_widget_show (key_management_w); - } -} - -static void -on_ignore_bt_clicked (GtkWidget* button _U_, gpointer user_data) -{ - GtkWidget *key_management_w; - GtkWidget *keys_check_w; - GtkListStore *key_list_store; - - keys_check_w = GTK_WIDGET(user_data); - - key_management_w = g_object_get_data(G_OBJECT(keys_check_w),AIRPCAP_CHECK_WINDOW_KEY); - - /* w may be NULL if airpcap_keys_check_w() has been called while Wireshark was loading, - and is not NULL if it was called when the Key Management widget has been clicked */ - if (key_management_w != NULL) - { - /* ... */ - key_list_store = g_object_get_data(G_OBJECT(key_management_w),AIRPCAP_ADVANCED_KEYLIST_KEY); - airpcap_fill_key_list(key_list_store); - gtk_widget_show (key_management_w); - } - - gtk_widget_destroy(keys_check_w); -} - #endif /* HAVE_AIRPCAP */ diff --git a/gtk/airpcap_dlg.h b/gtk/airpcap_dlg.h index caa9e8f33c..4ca9fb7d24 100644 --- a/gtk/airpcap_dlg.h +++ b/gtk/airpcap_dlg.h @@ -32,162 +32,19 @@ #define AIRPCAP_ADVANCED_FROM_OPTIONS 1 /* - * Returns FALSE if a text string has length 0, i.e. the first char - * is '\0', TRUE otherwise - */ -gboolean -string_is_not_empty(gchar *s); - -/* - * Edit key window destroy callback - */ -void -on_edit_key_w_destroy(GtkWidget *button, gpointer data _U_); - -/* - * Add key window destroy callback - */ -void -on_add_key_w_destroy(GtkWidget *button, gpointer data _U_); - -/* * Creates the list of available decryption modes, depending on the adapters found */ -void -update_decryption_mode_list(GtkWidget *w); - -/* - * Callback for the 'Add Key' button. - */ -void -on_add_new_key_bt_clicked(GtkWidget *button _U_, gpointer data); - -/* - * Callback for the 'Remove Key' button. - */ -void -on_remove_key_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* - * Callback for the 'Edit Key' button. - */ -void -on_edit_key_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* - * Callback for the 'Move Key Down' button. - */ -void -on_move_key_down_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* - * Callback for the 'Move Key Up' button. - */ -void -on_move_key_up_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* - * Callback for the Wireless Advanced Settings 'Apply' button. - */ -void -on_advanced_apply_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* - * Callback for the OK button 'clicked' in the Advanced Wireless Settings window. - */ -void -on_advanced_ok_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* - * Callback for the CANCEL button 'clicked' in the Advanced Wireless Settings window. - */ -void -on_advanced_cancel_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* - * Callback for the 'Apply' button. - */ -void -on_key_management_apply_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* - * Callback for the OK button 'clicked' in the Decryption Key Management window. - */ -void -on_key_management_ok_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* - * Callback for the CANCEL button 'clicked' in the Decryption Key Management window. - */ -void -on_key_management_cancel_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* the window was closed, cleanup things */ -void -on_key_management_destroy(GtkWidget *w _U_, gpointer data); - -/* - * Callback for the 'Reset Configuration' button. - */ -void -on_reset_configuration_bt_clicked(GtkWidget *button, gpointer data _U_); - -/* - * Turns the decryption on or off - */ -void -on_decryption_mode_cb_changed(GtkWidget *w, gpointer data _U_); +void update_decryption_mode_list(GtkWidget *w); /* * Selects the current decryption mode in the given combo box */ -void -update_decryption_mode(GtkWidget *w); - -/* - * Callback for the select row event in the key list widget - */ -void -on_key_ls_select_row(GtkWidget *widget, - gint row, - gint column, - GdkEventButton *event, - gpointer data); - -/* - * Callback for the unselect row event in the key list widget - */ -void -on_key_ls_unselect_row(GtkWidget *widget, - gint row, - gint column, - GdkEventButton *event, - gpointer data); - -/* - * Callback for the click column event in the key list widget - */ -void -on_key_ls_click_column(GtkWidget *widget _U_, - gint column _U_, - gpointer data _U_); - -/* - * Thread function used to blink the led - */ -gboolean update_blink(gpointer data _U_); - -/* - * Blink button callback - */ -void -on_blink_bt_clicked(GtkWidget *blink_bt, gpointer data _U_); +void update_decryption_mode(GtkWidget *w); /* - * Callback for the 'Any' adapter What's This button. + * Turns the decryption on or off */ -void -on_what_s_this_bt_clicked( GtkWidget *blink_bt _U_, gpointer data _U_); +void on_decryption_mode_cb_changed(GtkWidget *w, gpointer data _U_); /** Create a "Airpcap" dialog box caused by a button click. * @@ -197,35 +54,12 @@ on_what_s_this_bt_clicked( GtkWidget *blink_bt _U_, gpointer data _U_); void display_airpcap_advanced_cb(GtkWidget *widget, gpointer construct_args_ptr); /* Called to create the key management window */ -void -display_airpcap_key_management_cb(GtkWidget *w, gpointer data); +void display_airpcap_key_management_cb(GtkWidget *w, gpointer data); /**/ /* * Dialog box that appears whenever keys are not consistent between wieshark and airpcap */ -void -airpcap_keys_check_w(GtkWidget *w, gpointer data); - -void -on_keys_check_w_destroy (GtkWidget *w, gpointer user_data); - -void -on_keys_check_cancel_bt_clicked (GtkWidget *button, gpointer user_data); - -void -on_keys_check_ok_bt_clicked (GtkWidget *button, gpointer user_data); - -void -on_keep_bt_clicked (GtkWidget *button, gpointer user_data); - -void -on_merge_bt_clicked (GtkWidget *button, gpointer user_data); - -void -on_import_bt_clicked (GtkWidget *button, gpointer user_data); - -void -on_ignore_bt_clicked (GtkWidget *button, gpointer user_data); +void airpcap_keys_check_w(GtkWidget *w, gpointer data); #endif |