Ethereal-dev: [Ethereal-dev] GIOP GUI Pref patch
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Frank Singleton <frank.singleton@xxxxxxxxxxxx>
Date: Thu, 28 Jun 2001 14:58:04 -0500
Hi,
I have added a GUI pref for GIOP to allow enabling/disabling
of (the not too far away..) giop subdissectors.
ie: packet-giop-CosNaming
packet-giop-CosEvent
...
So now you need a 1600 pixel wide monitor :^)
/Frank..
--
EUS/SV/Z Frank Singleton ASO Americas BSS
Office : +1 972 583 3251 ECN 800 33251
Mobile : +1 214 228 0874 Amateur Radio: VK3FCS/KM5WS
Email : frank.singleton@xxxxxxxxxxxx
Hardware: HP Omnibook 4150 running Redhat Linux 7.1 (2.4.3-12 kernel).--- ../ethereal-2001-06-28/packet-giop.c Wed Jun 27 15:38:56 2001
+++ ../ethereal-2001-06-28.updated/packet-giop.c Thu Jun 28 14:36:05 2001
@@ -9,7 +9,7 @@
* Frank Singleton <frank.singleton@xxxxxxxxxxxx>
* Trevor Shepherd <eustrsd@xxxxxxxxxxxxxxx>
*
- * $Id: packet-giop.c,v 1.38 2001/06/27 20:38:56 guy Exp $
+ * $Id: packet-giop.c,v 1.1 2001/06/28 19:36:05 frank Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@xxxxxxxxxxxx>
@@ -298,9 +298,15 @@
#include "strerror.h"
#endif
+#include "prefs.h"
#include "packet.h"
#include "packet-giop.h"
+/* Enable GIOP Subdissectors by default, can toggle off in GUI */
+
+static gboolean giop_pref_sub_enable = TRUE;
+
+
/*
* This affects how we handle context_data inside ServiceContext structs.
* According to CORBA 2.4.2, Context data is encapsulated in octet sequences,
@@ -317,12 +323,6 @@
#define DEBUG 0
-/*
- * To allow calling (or not) of subdissectors, for testing buggy stuff.
- * TODO - make this a runtime option in GUI
- */
-
-#define DEBUG_CALL_SUB_DISSECTORS 1
/*
@@ -2956,20 +2956,22 @@
* fails, try the heuristic method.
*/
-#if DEBUG_CALL_SUB_DISSECTORS
+ /* Only call sub dissectors if user has not disables pref */
- if(entry->repoid) {
- exres = try_explicit_giop_dissector(tvb,pinfo,clnp_tree, &offset, header, entry->operation, entry->repoid );
- }
+ if (giop_pref_sub_enable) {
- /* Only call heuristic if no explicit dixxector was found */
+ if(entry->repoid) {
+ exres = try_explicit_giop_dissector(tvb,pinfo,clnp_tree, &offset, header, entry->operation, entry->repoid );
+ }
- if(! exres) {
- try_heuristic_giop_dissector(tvb,pinfo,clnp_tree,&offset,header,entry->operation);
- }
+ /* Only call heuristic if no explicit dixxector was found */
+ if(! exres) {
+ try_heuristic_giop_dissector(tvb,pinfo,clnp_tree,&offset,header,entry->operation);
+ }
-#endif
+ } /* giop_pref_sub_enable */
+
break;
case LOCATION_FORWARD:
@@ -3399,19 +3401,23 @@
header->req_id = request_id; /* save for sub dissector */
repoid = get_repoid_from_objkey(giop_objkey_hash,objkey,objkey_len);
-#if DEBUG_CALL_SUB_DISSECTORS
- if(repoid) {
- exres = try_explicit_giop_dissector(tvb,pinfo,tree,&offset,header,operation,repoid);
- }
+ /* Only call sub dissectors if user has not disables pref */
+
+ if (giop_pref_sub_enable) {
- /* Only call heuristic if no explicit dissector was found */
+ if(repoid) {
+ exres = try_explicit_giop_dissector(tvb,pinfo,tree,&offset,header,operation,repoid);
+ }
- if (! exres) {
- try_heuristic_giop_dissector(tvb,pinfo,tree,&offset,header,operation);
- }
+ /* Only call heuristic if no explicit dissector was found */
+
+ if (! exres) {
+ try_heuristic_giop_dissector(tvb,pinfo,tree,&offset,header,operation);
+ }
+
+ } /* giop_pref_sub_enable */
-#endif
g_free( print_objkey );
g_free( objkey );
@@ -3543,20 +3549,22 @@
* fails, try the heuristic method.
*/
-#if DEBUG_CALL_SUB_DISSECTORS
+ /* Only call sub dissectors if user has not disables pref */
- if(repoid) {
- exres = try_explicit_giop_dissector(tvb,pinfo,tree,&offset,header,operation,repoid);
- }
+ if (giop_pref_sub_enable) {
- /* Only call heuristic if no explicit dissector was found */
+ if(repoid) {
+ exres = try_explicit_giop_dissector(tvb,pinfo,tree,&offset,header,operation,repoid);
+ }
- if (! exres) {
- try_heuristic_giop_dissector(tvb,pinfo,tree,&offset,header,operation);
- }
+ /* Only call heuristic if no explicit dissector was found */
+
+ if (! exres) {
+ try_heuristic_giop_dissector(tvb,pinfo,tree,&offset,header,operation);
+ }
+ } /* giop_pref_sub_enable */
-#endif
g_free(operation);
g_free(reserved);
@@ -4173,6 +4181,8 @@
};
+ module_t *giop_module;
+
static gint *ett[] = {
&ett_giop,
&ett_giop_reply,
@@ -4186,6 +4196,14 @@
"giop");
proto_register_field_array (proto_giop, hf, array_length (hf));
proto_register_subtree_array (ett, array_length (ett));
+
+ /* Register configuration preferences */
+
+ giop_module = prefs_register_protocol(proto_giop, NULL);
+ prefs_register_bool_preference(giop_module, "giop_pref_sub_enable",
+ "Enable GIOP Subdissectors",
+ "Enable GIOP Subdissectors",
+ &giop_pref_sub_enable);
/* register init routine */
- Follow-Ups:
- Re: [Ethereal-dev] GIOP GUI Pref patch
- From: Guy Harris
- Re: [Ethereal-dev] GIOP GUI Pref patch
- Prev by Date: Re: [Ethereal-dev] memcmp and memcpy warnings
- Next by Date: Re: [Ethereal-dev] GIOP GUI Pref patch
- Previous by thread: Re: [Ethereal-dev] memcmp and memcpy warnings
- Next by thread: Re: [Ethereal-dev] GIOP GUI Pref patch
- Index(es):





