Ethereal-dev: [Ethereal-dev] Path for presentation dissector(packet-pres.c).

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

From: "Sid Sid" <ysidelnikov@xxxxxxxxxxx>
Date: Thu, 22 Jan 2004 08:37:49 +0000
Hi,
fixed problem:
1.With calling ACSE dissector.
2.Presentation dissector has to call ACSE dissector for any presentation context because only ACSE dissector has nessasary information.

Hope this patch will go automatically:

patch -i packet-pres.c.diff -o patched.c packet-pres_1_1.c
 Looks like a unified context diff.
done

Thank you.
Yuriy Sidelnikov.

_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE* http://join.msn.com/?page=features/junkmail
--- packet-pres_1_1.c	2004-01-22 10:29:54.640002000 -0300
+++ packet-pres.c	2004-01-22 10:32:46.240000000 -0300
@@ -228,11 +228,11 @@
			proto_tree_add_text(param_tree, tvb, offset, param_len,
			    "No ACSE dissector available");
		}
-		else
-		{
+	}
+	else
+	{
			/* Yes - call app dissector */
			tvbuff_t *next_tvb;
-
			next_tvb = tvb_new_subset(tvb, offset, param_len,
			    param_len);
			TRY
@@ -245,7 +245,6 @@
				show_exception(tvb, pinfo, tree, EXCEPT_CODE);
			}
			ENDTRY;
-		}
	}
}
static char*
@@ -743,8 +742,6 @@
				{
			case PRESENTATION_CONTEXT_IDENTIFIER:
				{
-				/*   if Presentation context identifier = 3 we have  ACSE  data */
-				/*  this data we have to send to ACSE dissector      */
				acse	=	get_integer_value(asn,new_item_len,offset);
				print_value(asn,pres_tree_ms,tvb,offset,new_item_len);
				}
@@ -752,13 +749,13 @@
			case OCTET_ALIGNED:
				break;
			case SINGLE_ASN1_TYPE:
-				if( acse == ACSE_PRESENTATION_CONTEXT_IDENTIFIER )
+
				{
						proto_item *acse_ms;
					/*  yes, we have to call ACSE dissector    */
				acse_ms = proto_tree_add_text(pres_tree_ms, tvb, *offset,
new_item_len+(asn->offset-*offset),
-										"Acse data");
+										"User data");
					/*  call acse dissector  */
				call_acse_dissector(tvb,*offset,new_item_len,global_pinfo,global_tree,pres_tree_ms);
				acse = 0;