Wireshark-dev: Re: [Wireshark-dev] buildbot failure in Wireshark (development) on Visual-Studio
From: Stephen Fisher <steve@xxxxxxxxxxxxxxxxxx>
Date: Wed, 17 Aug 2011 16:05:50 -0600
On Wed, Aug 17, 2011 at 08:19:45PM +0200, Joerg Mayer wrote:

> Can the maintainers of the AIRPCAP code please have a look at this?

That's not me, but...

> Maybe replacing GTK_COMBO(x)->entry by GTK_COMBOBOX(x) is sufficient, 
> but I'm not too optimistic.

That didn't work.  The problem is on line 1105...

decryption_en = GTK_WIDGET(GTK_ENTRY(GTK_COMBO(decryption_cm)->entry));

... which gets decryption_cm out of airpcap_tb on line 1104...

decryption_cm = 
GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_tb),AIRPCAP_TOOLBAR_DECRYPTION_KEY));

... where airpcap_tb is a gtk_toolbar_new (main_airpcap_toolbar.c) which 
has an entry identified by AIRPCAP_TOOLBAR_DECRYPTION_KEY in 
main_airpcap_toolbar.c...

g_object_set_data(G_OBJECT(airpcap_tb), AIRPCAP_TOOLBAR_DECRYPTION_KEY, 
decryption_mode_cb);

With decryption_mode_cb being created by gtk_combo_box_text_new() on 
line 316 of main_airpcap_toolbar.c..

decryption_mode_cb = gtk_combo_box_text_new();

(The GTK documentation says that the GtkComboBoxText functions were 
introduced in GTK 2.24, but that doesn't make sense since we compile 
with 2.22 on Windows right now...)

So replacing this chunk of code in gtk/prefs_dlg.c:

  decryption_cm = 
GTK_WIDGET(g_object_get_data(G_OBJECT(airpcap_tb),AIRPCAP_TOOLBAR_DECRYPTION_KEY));
  decryption_en = 
GTK_WIDGET(GTK_ENTRY(GTK_COMBO(decryption_cm)->entry));

  if( 
g_ascii_strcasecmp(gtk_entry_get_text(GTK_ENTRY(decryption_en)),AIRPCAP_DECRYPTION_TYPE_STRING_WIRESHARK) 
== 0 )

With something involving:

gchar *             gtk_combo_box_text_get_active_text  (GtkComboBoxText 
*combo_box);

May do the trick.