diff options
author | Tomas Kukosa <tomas.kukosa@siemens.com> | 2005-07-04 09:35:25 +0000 |
---|---|---|
committer | Tomas Kukosa <tomas.kukosa@siemens.com> | 2005-07-04 09:35:25 +0000 |
commit | 5f2fd433abc60c0e5f97613fbb18a00090dddc26 (patch) | |
tree | f94d06201f1f3524613eee828b38eeeb7e0223f5 /asn1/h225 | |
parent | f88d8d41b5c4faa3884d97905d916f5f8a80eade (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.cnf | 100 | ||||
-rw-r--r-- | asn1/h225/packet-h225-template.c | 4 |
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" |