Package: ethereal-common
Version: 0.10.10-2sarge2
Severity: wishlist
Tags: patch, upstream

Allow display filters such as "giop.replystatus = 2" for
filtering or colouring system exceptions and
"giop.exceptionid matches MyError" for catching
IDL:Foo/Bar/MyError:1.0 etc.

diff -ur ethereal-0.10.11/epan/dissectors/packet-giop.c 
ethereal-0.10.11.exceptions/epan/dissectors/packet-giop.c
--- ethereal-0.10.11/epan/dissectors/packet-giop.c      2005-06-18 
18:44:59.000000000 +0000
+++ ethereal-0.10.11.exceptions/epan/dissectors/packet-giop.c   2005-06-18 
19:18:02.739837264 +0000
@@ -436,6 +436,9 @@
 static int hf_giop_iop_vscid = -1;
 static int hf_giop_iop_scid = -1;
 
+static int hf_giop_reply_status = -1;
+static int hf_giop_exception_id = -1;
+
 /*
  * (sub)Tree declares
  */
@@ -2879,12 +2882,6 @@
       }
       if (sequence_length != 0)
        {
-          if (tree)
-          {
-             proto_tree_add_text(tree, tvb, offset, sequence_length,
-                          "Exception id: %s",
-                          tvb_format_text(tvb, offset, sequence_length));
-          }
 #if 1
 
           header->exception_id = g_new0(gchar,sequence_length ); /* allocate 
buffer */
@@ -2893,6 +2890,11 @@
 
           tvb_get_nstringz0(tvb,offset,sequence_length, header->exception_id );
 
+          if (tree)
+          {
+             proto_tree_add_string(tree, hf_giop_exception_id, tvb,
+                          offset, sequence_length, header->exception_id);
+          }
 
 #endif
 
@@ -3055,9 +3057,8 @@
   }
 
   if (tree) {
-    proto_tree_add_text (reply_tree, tvb, offset-4, 4,
-                         "Reply status: %s",
-                         val_to_str(reply_status, reply_status_types, "Unknown 
(%u)"));
+    proto_tree_add_uint(reply_tree, hf_giop_reply_status, tvb,
+                         offset-4, 4, reply_status);
 
   }
 
@@ -3129,10 +3130,8 @@
   }
 
   if (tree) {
-    proto_tree_add_text (reply_tree, tvb, offset-4, 4,
-                         "Reply status: %s",
-                         val_to_str(reply_status, reply_status_types, "Unknown 
(%u)"));
-
+    proto_tree_add_uint(reply_tree, hf_giop_reply_status, tvb,
+                         offset-4, 4, reply_status);
   }
 
   /*
@@ -4193,8 +4192,14 @@
   { "Request operation", "giop.request_op",
          FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }
   },
-         
-
+  { &hf_giop_reply_status,
+  { "Reply status", "giop.replystatus",
+         FT_UINT32, BASE_DEC, VALS(reply_status_types), 0x0, "", HFILL }
+  },
+  { &hf_giop_exception_id,
+  { "Exception id", "giop.exceptionid",
+         FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }
+  },
   };
        
                
@@ -4448,7 +4453,7 @@
 
   guint32 i;                   /* loop index */
 
-  guint8 v_major,v_minor;      /* IIOP sersion */
+  guint8 v_major,v_minor;      /* IIOP version */
   gchar *buf;
   guint32 u_octet4;            /* u long */
   guint16 u_octet2;            /* u short */

Reply via email to