aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2003-07-16 08:38:16 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2003-07-16 08:38:16 +0000
commitd25a4feb53abb0b0544f7374b95d6f4d71dca492 (patch)
treebce3399856c39a8a0bcee44a368d5a7aa2e8de11
parent54ab04232862b4352673047f0382af74b0850862 (diff)
minor updates.
make reassembly a preference update comments svn path=/trunk/; revision=8030
-rw-r--r--packet-h245.c46
1 files changed, 12 insertions, 34 deletions
diff --git a/packet-h245.c b/packet-h245.c
index e3b8fbdc42..d7ae9a8e45 100644
--- a/packet-h245.c
+++ b/packet-h245.c
@@ -1,4 +1,3 @@
-/*XXX fix all the IA5String types */
/*
Alternative H245 dissector.
This is an alternative dissector for the H.245 protocol. The aim
@@ -26,26 +25,6 @@ without the other support protocols such as I guess H225 and H235
so you will have to select packets you know are H245 and specify H245
with DecodeAs.
-This file currently contains two sections:
-One rather small section that consists of helper routines dissect_per...()
-that are helper subroutines to dissect various PER types.
-This is not aimed at being able to be PER complete, only aimed at being
-able to dissect those parts of PER that are relevant to the actual dissectors.
-This part will when the dissector is production quality be broken out into
-a separate file asn1-per.c or something to be available for all PER
-dissectors.
-The other section is the dissector for H245 in this temporary work version
-called altH245 which is mainly table driven. It should be realtively easy
-to see how the mapping from the H245 idl file into the dissector functions
-actually works.
-
-
-Due to it being a temporary work version, there are no preference settings
-created to handle tcp reassembly. Instead the dissector is hardcoded to
-ask the TCP dissector (through the encapsulating protocol) for reassembly.
-It may be wise to always have the reassembly setting in the TCP preferences
-activated.
-
There are several places in the dissector where it is known the functionality
is not implemented yet. These are indicated by the presence of the
@@ -58,11 +37,7 @@ just random dissection junk.
There is a flag which controls whether internal PER bits will be placed in
the tree or not.
-Currently it is enabled which is why all those Extension Bit... etc
-that are just internal PER stuff are placed in the tree.
-To get rid of these ones just change display_internal_per_fields to FALSE
-below.
-This will be a preference later and will default to FALSE.
+This is controlled by a preference
What needs to be done?
@@ -92,7 +67,7 @@ All in all a lot of work.
* with great support with testing and providing capturefiles
* from Martin Regner
*
- * $Id: packet-h245.c,v 1.19 2003/07/16 08:17:14 sahlberg Exp $
+ * $Id: packet-h245.c,v 1.20 2003/07/16 08:38:16 sahlberg Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -436,7 +411,6 @@ static int hf_h245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCo
static int hf_h245_MiscellaneousCommand_type = -1;
static int hf_h245_ConferenceCommand = -1;
static int hf_h245_EndSessionCommand_gstnOptions = -1;
-static int hf_h245_EndSessionCommand = -1;
static int hf_h245_EndSessionCommand_isdnOptions = -1;
static int hf_h245_FlowControlCommand_restriction = -1;
static int hf_h245_FlowControlCommand_scope = -1;
@@ -1543,6 +1517,9 @@ static gint ett_h245_recoveryReferencePicture = -1;
static gint ett_h245_iPSourceRouteAddress_route = -1;
+
+static gboolean h245_reassembly = TRUE;
+
static int
dissect_h245_NULL(tvbuff_t *tvb _U_, int offset, packet_info *pinfo _U_, proto_tree *tree _U_)
{
@@ -18977,8 +18954,7 @@ dissect_h245_MultimediaSystemControlMessage(tvbuff_t *tvb, packet_info *pinfo, p
void
dissect_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
-/*XXX add desegmentation option */
- dissect_tpkt_encap(tvb, pinfo, tree, TRUE, MultimediaSystemControlMessage_handle);
+ dissect_tpkt_encap(tvb, pinfo, tree, h245_reassembly, MultimediaSystemControlMessage_handle);
}
void
@@ -22255,10 +22231,16 @@ proto_register_h245(void)
&ett_h245_recoveryReferencePicture,
&ett_h245_iPSourceRouteAddress_route,
};
+ module_t *h245_module;
proto_h245 = proto_register_protocol("H245", "H245", "h245");
proto_register_field_array(proto_h245, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
+ h245_module = prefs_register_protocol(proto_h245, NULL);
+ prefs_register_bool_preference(h245_module, "reassembly",
+ "Reassemble H.245 over TCP",
+ "Whether the dissector should reassemble H.245 PDUs spanning multiple TCP segments",
+ &h245_reassembly);
}
void
@@ -22270,9 +22252,5 @@ proto_reg_handoff_h245(void)
dissector_add_handle("tcp.port", h245_handle);
dissector_add_handle("udp.port", MultimediaSystemControlMessage_handle);
-/*qqq
- dissector_handle_t h245_handle;
- offset=dissect_h245_MultimediaSystemControlMessage(tvb, offset, pinfo, tr);
-*/
}