diff options
author | Gerald Combs <gerald@wireshark.org> | 2006-10-02 23:44:10 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2006-10-02 23:44:10 +0000 |
commit | 2649d2614545278344fee1ce36196e3771101f42 (patch) | |
tree | e10aa1fa027e374ffc33803ece9d48513a9f221b /gtk/airpcap_gui_utils.c | |
parent | 6cde05da1bfb6e43365a3d2fc6f7ca03d49be65e (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-x | gtk/airpcap_gui_utils.c | 44 |
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 */ |