aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/h225
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2005-07-04 09:35:25 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2005-07-04 09:35:25 +0000
commit5f2fd433abc60c0e5f97613fbb18a00090dddc26 (patch)
treef94d06201f1f3524613eee828b38eeeb7e0223f5 /asn1/h225
parentf88d8d41b5c4faa3884d97905d916f5f8a80eade (diff)
- use tvb instead of offset and length in dissect_per_octet_string() for value returning
- asn2eth: #.FN_PARS support for OCTET STRING - usage of #.FN_PARS in h225 and h245 - h225: ParallelH245Control support - h245: better support of NonStandardParameter - usage of MAX_OID_STR_LEN constant - all PER dissectors regenerated svn path=/trunk/; revision=14844
Diffstat (limited to 'asn1/h225')
-rw-r--r--asn1/h225/h225.cnf100
-rw-r--r--asn1/h225/packet-h225-template.c4
2 files changed, 49 insertions, 55 deletions
diff --git a/asn1/h225/h225.cnf b/asn1/h225/h225.cnf
index 0721f764b8..073a49c76b 100644
--- a/asn1/h225/h225.cnf
+++ b/asn1/h225/h225.cnf
@@ -179,7 +179,7 @@ CallIdentifier/guid guid
offset=dissect_h245_OpenLogicalChannelCodec(tvb,offset, pinfo, tree, hf_index, codec_str);
/* Add to packet info */
- g_snprintf(h225_pi->frame_label, 50, "%s %s", h225_pi->frame_label, codec_str);
+ g_snprintf(h225_pi->frame_label, 50, "%%s %%s", h225_pi->frame_label, codec_str);
contains_faststart = TRUE;
h225_pi->is_faststart = TRUE;
@@ -226,13 +226,12 @@ CallIdentifier/guid guid
#----------------------------------------------------------------------------------------
#.FN_BODY H245TransportAddress/h245ipAddress/h245ipv4
-guint32 value_offset;
-guint32 value_len;
+ tvbuff_t *value_tvb;
offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
4, 4,
- &value_offset, &value_len);
- tvb_memcpy(tvb, (char *)&ipv4_address, value_offset, 4);
+ &value_tvb);
+ tvb_memcpy(value_tvb, (char *)&ipv4_address, 0, 4);
#.END
@@ -243,19 +242,24 @@ guint32 value_len;
#.END
#----------------------------------------------------------------------------------------
-#.FN_BODY H245Control/_item
-
- tvbuff_t *h245_tvb;
- guint32 h245_offset=0;
- guint32 h245_len=0;
-
- offset=dissect_per_octet_string(tvb, offset, pinfo, tree, -1, -1, -1, &h245_offset, &h245_len);
-
- if(h245_len){
- h245_tvb = tvb_new_subset(tvb, h245_offset, h245_len, h245_len);
+#.FN_HDR ParallelH245Control/_item
+ tvbuff_t *h245_tvb = NULL;
+#.FN_PARS ParallelH245Control/_item
+ VAL_PTR = &h245_tvb
+#.FN_FTR ParallelH245Control/_item
+ if (h245_tvb && tvb_length(h245_tvb)) {
+ call_dissector(h245dg_handle, h245_tvb, pinfo, tree);
+ }
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H245Control/_item
+ tvbuff_t *h245_tvb = NULL;
+#.FN_PARS H245Control/_item
+ VAL_PTR = &h245_tvb
+#.FN_FTR H245Control/_item
+ if (h245_tvb && tvb_length(h245_tvb)) {
call_dissector(h245dg_handle, h245_tvb, pinfo, tree);
}
-
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR H323-UU-PDU/h323-message-body/empty
@@ -478,10 +482,10 @@ guint32 value_len;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY CallIdentifier/guid
- guint32 guid_offset,guid_len;
+ tvbuff_t *guid_tvb;
- offset = dissect_per_octet_string(tvb,offset,pinfo,tree,hf_index,16,16,&guid_offset,&guid_len);
- tvb_memcpy(tvb,h225_pi->guid,guid_offset,guid_len);
+ offset = dissect_per_octet_string(tvb,offset,pinfo,tree,hf_index,16,16,&guid_tvb);
+ tvb_memcpy(guid_tvb,h225_pi->guid,0,tvb_length(guid_tvb));
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY RequestSeqNum
@@ -491,42 +495,35 @@ guint32 value_len;
#----------------------------------------------------------------------------------------
#.FN_BODY H323-UU-PDU/h4501SupplementaryService/_item
- tvbuff_t *h4501_tvb;
- guint32 h4501_offset=0;
- guint32 h4501_len=0;
+ tvbuff_t *h4501_tvb = NULL;
+ offset=dissect_per_octet_string(tvb, offset, pinfo, tree, -1, -1, -1, &h4501_tvb);
- offset=dissect_per_octet_string(tvb, offset, pinfo, tree, -1, -1, -1, &h4501_offset, &h4501_len);
-
- if(h4501_len){
- h4501_tvb = tvb_new_subset(tvb, h4501_offset, h4501_len, h4501_len);
+ if(tvb_length(h4501_tvb)){
call_dissector(h4501_handle, h4501_tvb, pinfo, tree);
}
#.END
#----------------------------------------------------------------------------------------
#--- TunnelledProtocol ------------------------------------------------------------------
+
#.FN_HDR TunnelledProtocol
tpOID[0] = '\0';
#.FN_FTR TunnelledProtocol
tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID);
#.FN_PARS TunnelledProtocol/id/tunnelledProtocolObjectID
-VAL_PTR=tpOID
+ VAL_PTR = tpOID
#.END
#.FN_HDR H323-UU-PDU/tunnelledSignallingMessage
tp_handle = NULL;
-#.FN_BODY H323-UU-PDU/tunnelledSignallingMessage/messageContent/_item
- guint32 value_offset, value_len;
- tvbuff_t *next_tvb;
-
- offset = dissect_per_octet_string(tvb, offset, pinfo, tree,
- hf_h225_messageContent_item, -1, -1,
- &value_offset, &value_len);
-
- if (value_len > 0) {
- next_tvb = tvb_new_subset(tvb, value_offset, value_len, value_len);
- call_dissector((tp_handle)?tp_handle:data_handle, next_tvb, pinfo, tree);
- }
+#.FN_HDR H323-UU-PDU/tunnelledSignallingMessage/messageContent/_item
+ tvbuff_t *next_tvb = NULL;
+#.FN_PARS H323-UU-PDU/tunnelledSignallingMessage/messageContent/_item
+ VAL_PTR = &next_tvb
+#.FN_FTR H323-UU-PDU/tunnelledSignallingMessage/messageContent/_item
+ if (next_tvb && tvb_length(next_tvb)) {
+ call_dissector((tp_handle)?tp_handle:data_handle, next_tvb, pinfo, tree);
+ }
#.END
#--- NonStandardParameter ---------------------------------------------------------------
@@ -553,7 +550,7 @@ VAL_PTR=tpOID
nsp_handle = NULL;
}
#.FN_PARS NonStandardIdentifier/object
-VAL_PTR = nsiOID
+ VAL_PTR = nsiOID
#.END
#.FN_HDR H221NonStandard
@@ -571,19 +568,14 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode
#.FN_HDR NonStandardParameter
nsp_handle = NULL;
-
-#.FN_BODY NonStandardParameter/data
- guint32 value_offset, value_len;
- tvbuff_t *next_tvb;
-
- offset = dissect_per_octet_string(tvb, offset, pinfo, tree,
- hf_h225_nsp_data, -1, -1,
- &value_offset, &value_len);
-
- if (value_len > 0) {
- next_tvb = tvb_new_subset(tvb, value_offset, value_len, value_len);
- call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, pinfo, tree);
- }
+#.FN_HDR NonStandardParameter/data
+ tvbuff_t *next_tvb = NULL;
+#.FN_PARS NonStandardParameter/data
+ VAL_PTR = &next_tvb
+#.FN_FTR NonStandardParameter/data
+ if (next_tvb && tvb_length(next_tvb)) {
+ call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, pinfo, tree);
+ }
#.END
#.TYPE_ATTR
@@ -597,3 +589,5 @@ VendorIdentifier/versionId TYPE = FT_STRING DISPLAY = BASE_HEX STRINGS = NULL
H323-UserInformation/user-data/protocol-discriminator TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(q931_protocol_discriminator_vals)
H323-UU-PDU/tunnelledSignallingMessage/messageContent/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC
NonStandardParameter/data TYPE = FT_UINT32 DISPLAY = BASE_DEC
+ParallelH245Control/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC
+H245Control/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC
diff --git a/asn1/h225/packet-h225-template.c b/asn1/h225/packet-h225-template.c
index 269efea3ad..b519ab5027 100644
--- a/asn1/h225/packet-h225-template.c
+++ b/asn1/h225/packet-h225-template.c
@@ -115,14 +115,14 @@ guint32 value;
static gboolean contains_faststart = FALSE;
/* NonStandardParameter */
-static char nsiOID[256];
+static char nsiOID[MAX_OID_STR_LEN];
static guint32 h221NonStandard;
static guint32 t35CountryCode;
static guint32 t35Extension;
static guint32 manufacturerCode;
/* TunnelledProtocol */
-static char tpOID[256];
+static char tpOID[MAX_OID_STR_LEN];
#include "packet-h225-fn.c"