Hello all,

attached patch enables decoding of fastStart elements and makes the output
in the protocol and info column look like the old plugin's output.

I also attached a file with some captured h225 signalling using fastStart.
This file is probably very interesting for Ronnie. I don't think the decoding
of the NonStandardParameter is broken. I have lots of packets with it and
they are all decoded properly.

Frame 31 contains such a NonStandardParameter.

Best Regards,

Lars Roland
Index: ethereal/packet-h225.c
===================================================================
RCS file: /cvsroot/ethereal/packet-h225.c,v
retrieving revision 1.4
diff -u -r1.4 packet-h225.c
--- ethereal/packet-h225.c      7 Aug 2003 21:31:39 -0000       1.4
+++ ethereal/packet-h225.c      9 Aug 2003 16:24:28 -0000
@@ -330,7 +330,7 @@
 static int hf_h225_CallTerminationCause = -1;
 static int hf_h225_CircuitInfo = -1;
 static int hf_h225_genericData = -1;
-static int hf_h225_fastStart_item = -1;
+static int hf_h225_fastStart_item_lenght = -1;
 static int hf_h225_fastStart = -1;
 static int hf_h225_fastConnectRefused = -1;
 static int hf_h225_InformationUUIE = -1;
@@ -4777,7 +4777,10 @@
 static int
 dissect_h225_fastStart_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree 
*tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, 
hf_h225_fastStart_item, -1, -1);
+       guint32 length;
+       
+       offset=dissect_per_length_determinant(tvb, offset, pinfo, tree, 
hf_h225_fastStart_item_lenght, &length);
+       offset=dissect_h245_OpenLogicalChannel(tvb, offset, pinfo, tree);
        return offset;
 }
 
@@ -6876,7 +6879,15 @@
 static int
 dissect_h225_h323_message_body(tvbuff_t *tvb, int offset, packet_info *pinfo, 
proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_h323_message_body, 
ett_h225_h323_message_body, h323_message_body_choice, "h323_message_body", NULL);
+       guint32 value;
+       
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_h323_message_body, 
ett_h225_h323_message_body, h323_message_body_choice, "h323_message_body", &(value));
+       
+       if (check_col(pinfo->cinfo, COL_INFO)){
+               col_prepend_fstr(pinfo->cinfo, COL_INFO, "CS: %s ",
+                       val_to_str(value, h323_message_body_vals, "<unknown>"));
+       }
+       
        return offset;
 }
 
@@ -8102,7 +8113,7 @@
        guint32 value;
 
        if (check_col(pinfo->cinfo, COL_PROTOCOL)){
-               col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.225.0 RAS");
+               col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.225.0");
        }
        if (check_col(pinfo->cinfo, COL_INFO)){
                col_clear(pinfo->cinfo, COL_INFO);
@@ -8114,7 +8125,7 @@
        offset=dissect_per_choice(tvb, offset, pinfo, tr, hf_h225_RasMessage, 
ett_h225_RasMessage, RasMessage_choice, "RasMessage", &value);
 
        if (check_col(pinfo->cinfo, COL_INFO)){
-               col_prepend_fstr(pinfo->cinfo, COL_INFO, "%s ",
+               col_prepend_fstr(pinfo->cinfo, COL_INFO, "RAS: %s ",
                        val_to_str(value, RasMessage_vals, "<unknown>"));
        }
 }
@@ -8137,29 +8148,18 @@
        proto_item *it;
        proto_tree *tr;
        guint32 offset=0;
-#ifdef REMOVED
-       guint32 value;
-#endif
 
        if (check_col(pinfo->cinfo, COL_PROTOCOL)){
-               col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.323 UserInformation");
+               col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.225.0");
        }
        if (check_col(pinfo->cinfo, COL_INFO)){
                col_clear(pinfo->cinfo, COL_INFO);
        }
 
-       it=proto_tree_add_protocol_format(tree, proto_h225, tvb, 0, tvb_length(tvb), 
"H.225");
+       it=proto_tree_add_protocol_format(tree, proto_h225, tvb, 0, tvb_length(tvb), 
"H.225.0 CS");
        tr=proto_item_add_subtree(it, ett_h225);
 
        offset=dissect_per_sequence(tvb, offset, pinfo, tr, 
hf_h225_H323_UserInformation, ett_h225_H323_UserInformation, 
H323_UserInformation_sequence);
-
-#ifdef REMOVED
-       if (check_col(pinfo->cinfo, COL_INFO)){
-               col_prepend_fstr(pinfo->cinfo, COL_INFO, "%s ",
-                       val_to_str(value, H323UserInformation_vals, "<unknown>"));
-       }
-#endif
-
 }
 
 
@@ -9023,9 +9023,9 @@
        { &hf_h225_genericData,
                { "genericData", "h225.genericData", FT_NONE, BASE_NONE,
                NULL, 0, "genericData sequence of", HFILL }},
-       { &hf_h225_fastStart_item,
-               { "fastStart_item", "h225.fastStart_item", FT_BYTES, BASE_HEX,
-               NULL, 0, "fastStart_item octet string", HFILL }},
+       { &hf_h225_fastStart_item_lenght,
+               { "fastStart item lenght", "h225.fastStart_item_lenght", FT_UINT32, 
BASE_DEC,
+               NULL, 0, "fastStart item lenght", HFILL }},
        { &hf_h225_fastStart,
                { "fastStart", "h225.fastStart", FT_NONE, BASE_NONE,
                NULL, 0, "fastStart sequence of", HFILL }},

Attachment: H225call.ETH.gz
Description: application/gzip-compressed

Reply via email to