Ethereal-dev: [Ethereal-dev] h225 fastStart decoding and improved output to info column

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

Date: Sat, 9 Aug 2003 19:16:13 +0200 (MEST)
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