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;