aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/airpcap_gui_utils.c
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2006-10-02 23:44:10 +0000
committerGerald Combs <gerald@wireshark.org>2006-10-02 23:44:10 +0000
commit2649d2614545278344fee1ce36196e3771101f42 (patch)
treee10aa1fa027e374ffc33803ece9d48513a9f221b /gtk/airpcap_gui_utils.c
parent6cde05da1bfb6e43365a3d2fc6f7ca03d49be65e (diff)
Fix WEP key bug in the AirPcap code that could cause a crash. Enable
AirPcap by default. Add initial support for the "Any" device in AirPcap (more to come). svn path=/trunk/; revision=19401
Diffstat (limited to 'gtk/airpcap_gui_utils.c')
-rwxr-xr-xgtk/airpcap_gui_utils.c44
1 files changed, 40 insertions, 4 deletions
diff --git a/gtk/airpcap_gui_utils.c b/gtk/airpcap_gui_utils.c
index d6bc5bcba3..3c02320ca2 100755
--- a/gtk/airpcap_gui_utils.c
+++ b/gtk/airpcap_gui_utils.c
@@ -82,7 +82,7 @@ if(if_info != NULL)
gtk_widget_set_sensitive(airpcap_toolbar_button,FALSE);
gtk_widget_set_sensitive(airpcap_toolbar_decryption,FALSE);
airpcap_validation_type_combo_set_by_type(GTK_WIDGET(airpcap_toolbar_crc_filter_combo),if_info->CrcValidationOn);
- airpcap_channel_combo_set_by_number(GTK_WIDGET(airpcap_toolbar_channel),if_info->channel);
+ airpcap_update_channel_combo(GTK_WIDGET(airpcap_toolbar_channel),if_info);
/*decription check box*/
gtk_signal_handler_block_by_func (GTK_OBJECT(airpcap_toolbar_decryption),GTK_SIGNAL_FUNC(airpcap_toolbar_encryption_cb), airpcap_tb);
@@ -145,7 +145,7 @@ if(if_info != NULL)
gtk_widget_set_sensitive(airpcap_toolbar_button,TRUE);
gtk_widget_set_sensitive(airpcap_toolbar_decryption,TRUE);
airpcap_validation_type_combo_set_by_type(GTK_WIDGET(airpcap_toolbar_crc_filter_combo),if_info->CrcValidationOn);
- airpcap_channel_combo_set_by_number(GTK_WIDGET(airpcap_toolbar_channel),if_info->channel);
+ airpcap_update_channel_combo(GTK_WIDGET(airpcap_toolbar_channel),if_info);
/*decription check box*/
gtk_signal_handler_block_by_func (GTK_OBJECT(airpcap_toolbar_decryption),GTK_SIGNAL_FUNC(airpcap_toolbar_encryption_cb), airpcap_tb);
@@ -205,14 +205,20 @@ airpcap_fill_key_list(GtkWidget *keylist,airpcap_if_info_t* if_info)
{
GtkWidget *nl_item,*nl_lb;
gchar* s;
-unsigned int i;
+unsigned int i,n;
+
+n = 0;
if( (if_info != NULL) && (if_info->keysCollection != NULL))
{
+ n = if_info->keysCollection->nKeys;
for(i = 0; i < if_info->keysCollection->nKeys; i++)
{
- s = airpcap_get_key_string(if_info->keysCollection->Keys[i]);
+ s = airpcap_get_key_string(if_info->keysCollection->Keys[i]); /* g_strdup_printf("1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef\0"); */
+
nl_lb = gtk_label_new(s);
+ g_free(s);
+
nl_item = gtk_list_item_new();
gtk_misc_set_alignment (GTK_MISC (nl_lb), 0.0, 0.5);
gtk_container_add(GTK_CONTAINER(nl_item), nl_lb);
@@ -398,4 +404,34 @@ airpcap_channel_combo_set_by_number(GtkWidget* w,UINT channel)
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(w)->entry),airpcap_get_channel_name(channel));
}
+/*
+ * Returns '1' if this is the "Any" adapter, '0' otherwise
+ */
+int
+airpcap_if_is_any(airpcap_if_info_t* if_info)
+{
+if(g_strcasecmp(if_info->name,AIRPCAP_DEVICE_ANY_EXTRACT_STRING)==0)
+ return 1;
+else
+ return 0;
+}
+
+/*
+ * Update channel combo box. If the airpcap interface is "Any", the combo box will be disabled.
+ */
+void
+airpcap_update_channel_combo(GtkWidget* w, airpcap_if_info_t* if_info)
+{
+if(airpcap_if_is_any(if_info))
+ {
+ gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(w)->entry)," ");
+ gtk_widget_set_sensitive(GTK_WIDGET(w),FALSE);
+ }
+else
+ {
+ airpcap_channel_combo_set_by_number(w,if_info->channel);
+ gtk_widget_set_sensitive(GTK_WIDGET(w),TRUE);
+ }
+}
+
#endif /* HAVE_AIRPCAP */