Wireshark-dev: Re: [Wireshark-dev] Extending wireshark with Python

From: "Craig Reese" <cfreese5@xxxxxxxxxxx>
Date: Sat, 13 Feb 2010 21:46:29 -0500
 
(as recent as 1.3.3)
 
 
From: Stig Bjørlykke <stig@xxxxxxxxxxxxx>
Date: Mon, 1 Jun 2009 02:06:56 +0200

I just gave it a quick try on a protocol registering to "udp.port".

The first problem occurred in an assert in splash_update, proposed
patch attached.
...

Index: gtk/about_dlg.c

===================================================================

--- gtk/about_dlg.c (revision 28551)

+++ gtk/about_dlg.c (working copy)

@@ -229,9 +229,10 @@

}

if(ul_count == 0) /* get the count of dissectors */

- ul_count = register_count() + 6; /* additional 6 for:

+ ul_count = register_count() + 8; /* additional 8 for:

dissectors, listeners,

registering plugins, handingoff plugins,

+ registering python, handingoff python,

preferences and configuration */

main_lb = g_object_get_data(G_OBJECT(win), "protocol_label");

 
The fix adds 2 (one for protocol, one for handoff) but in reality you need to
add 2 for _each_ python plugin registered.
 
I'm not sure how to fix things, but the real problem seems to be that the counts are
"hard coded" in proto_reg_count, and handoff_reg_count in epan/dissectors/register.c
and don't take into account that the python ones are added dynamically.
 
On a related note... Has the Python work been orphaned? I can't find much in
the way of others testing/fixing these basic bugs.