http://www.ethereal.com/lists/ethereal-users/200311/msg00006.html

Michael Oliveras wrote:
<I noticed an error decoding alternate endpoints from a vocaltec GK.  <The decode is 
correct using ethereal-0.9.11 with the h323 plugin.  <The problem seems to start with  
the email ID listed in the
<alternate endpoint.  
<
<The infoRequestResponse message is decoded correctly, however the
<type of packet in the top ethereal window is displayed as:
<Source port: 1717 Destination port: h323gatestatCS: empty RAS:
infoRequestResponse. 


Hi,

Yes there is a fault in decoding of EndPoint sequence. There should be a sequence of 
AliasAddress-es.

I have made a patch that seems to solve that problem and also avoids that a pdu_item 
results in writing to the Info column.

There are still some things that are not decoded (tokens/cryptotokens). 
--- packet-h225.c       2003-10-31 15:44:23.000000000 +0100
+++ packet-h225.c_martin        2003-11-09 11:10:04.000000000 +0100
@@ -523,6 +523,7 @@
 static int hf_h225_nonStandard = -1;
 static int hf_h225_nonStandardReason = -1;
 static int hf_h225_nonStandardAddress = -1;
+static int hf_h225_aliasAddress_sequence = -1;
 /*aaa*/
 
 static gint ett_h225 = -1;
@@ -788,6 +789,7 @@
 static gint ett_h225_H221NonStandard = -1;
 static gint ett_h225_NonStandardIdentifier = -1;
 static gint ett_h225_NonStandardParameter = -1;
+static gint ett_h225_aliasAddress_sequence = -1;
 /*bbb*/
 
 /* Subdissector tables */
@@ -5495,6 +5497,14 @@
        return offset;
 }
 
+
+static int
+dissect_h225_aliasAddress_sequence(tvbuff_t *tvb, int offset, packet_info *pinfo, 
proto_tree *tree)
+{
+       offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, 
hf_h225_aliasAddress_sequence, ett_h225_aliasAddress_sequence, 
dissect_h225_AliasAddress);
+       return offset;
+}
+
 static int
 dissect_h225_rasAddress_sequence(tvbuff_t *tvb, int offset, packet_info *pinfo, 
proto_tree *tree)
 {
@@ -5514,7 +5524,7 @@
        { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h225_nonStandardData },
        { "aliasAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
-               dissect_h225_AliasAddress },
+               dissect_h225_aliasAddress_sequence },
        { "callSignalAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h225_callSignalAddress },
        { "rasAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
@@ -8096,7 +8106,13 @@
 static int
 dissect_h225_pdu_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
+       gboolean save_info;
+
+       /* dont update the INFO or PROTOCOL fields of the summary */
+       save_info=col_get_writable(pinfo->cinfo);
+       col_set_writable(pinfo->cinfo, FALSE);
        offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_pdu_item, 
ett_h225_pdu_item, pdu_item_sequence);
+       col_set_writable(pinfo->cinfo, save_info);
        return offset;
 }
 
@@ -9419,6 +9435,9 @@
        { &hf_h225_remoteExtensionAddress,
                { "remoteExtensionAddress", "h225.remoteExtensionAddress", FT_NONE, 
BASE_NONE,
                NULL, 0, "remoteExtensionAddress sequence of", HFILL }},
+       { &hf_h225_aliasAddress_sequence,
+               { "aliasAddress_sequence", "h225.aliasAddress_sequence", FT_NONE, 
BASE_NONE,
+               NULL, 0, "aliasAddress_sequence sequence of", HFILL }},
        { &hf_h225_rasAddress_sequence,
                { "rasAddress_sequence", "h225.rasAddress_sequence", FT_NONE, 
BASE_NONE,
                NULL, 0, "rasAddress_sequence sequence of", HFILL }},
@@ -10150,6 +10169,7 @@
                &ett_h225_H221NonStandard,
                &ett_h225_NonStandardIdentifier,
                &ett_h225_NonStandardParameter,
+            &ett_h225_aliasAddress_sequence,
 /*eee*/
        };
        module_t *h225_module;

Reply via email to