Get rid of "proto_tree_add_notext()" - if you create a subtree using it,

but, before you set the text, you throw an exception while putting stuff
under the subtree, you end up with an absolutely blank protocol tree
item, which is really gross.  Instead of calling
"proto_tree_add_notext()", call "proto_tree_add_text()" with at least a
minimal label - yes, it does mean you do some work that will probably be
unnecessary, but, absent a scheme to arrange to do that work if it *is*
necessary (e.g., catching exceptions), the alternative is an ugly
protocol tree display.

svn path=/trunk/; revision=3879
This commit is contained in:
Guy Harris 2001-08-28 08:28:19 +00:00
parent d9019638ee
commit aa4cd01b9b
12 changed files with 209 additions and 131 deletions

View File

@ -1,4 +1,4 @@
$Id: README.developer,v 1.32 2001/07/20 23:38:30 guy Exp $ $Id: README.developer,v 1.33 2001/08/28 08:28:16 guy Exp $
This file is a HOWTO for Ethereal developers. It describes how to start coding This file is a HOWTO for Ethereal developers. It describes how to start coding
a Ethereal protocol dissector and the use some of the important functions and a Ethereal protocol dissector and the use some of the important functions and
@ -85,7 +85,7 @@ code inside
is needed only if you are using the "snprintf()" function. is needed only if you are using the "snprintf()" function.
The "$Id: README.developer,v 1.32 2001/07/20 23:38:30 guy Exp $" The "$Id: README.developer,v 1.33 2001/08/28 08:28:16 guy Exp $"
in the comment will be updated by CVS when the file is in the comment will be updated by CVS when the file is
checked in; it will allow the RCS "ident" command to report which checked in; it will allow the RCS "ident" command to report which
version of the file is currently checked out. version of the file is currently checked out.
@ -95,7 +95,7 @@ version of the file is currently checked out.
* Routines for PROTONAME dissection * Routines for PROTONAME dissection
* Copyright 2000, YOUR_NAME <YOUR_EMAIL_ADDRESS> * Copyright 2000, YOUR_NAME <YOUR_EMAIL_ADDRESS>
* *
* $Id: README.developer,v 1.32 2001/07/20 23:38:30 guy Exp $ * $Id: README.developer,v 1.33 2001/08/28 08:28:16 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com> * By Gerald Combs <gerald@ethereal.com>
@ -942,9 +942,6 @@ protocol or field labels to the proto_tree:
proto_item* proto_item*
proto_tree_add_text(tree, start, length, format, ...); proto_tree_add_text(tree, start, length, format, ...);
proto_item*
proto_tree_add_notext(tree, start, length);
The 'tree' argument is the tree to which the item is to be added. The The 'tree' argument is the tree to which the item is to be added. The
'start' argument is the offset from the beginning of the frame (not the 'start' argument is the offset from the beginning of the frame (not the
offset from the beginning of the part of the packet belonging to this offset from the beginning of the part of the packet belonging to this
@ -1107,49 +1104,46 @@ format; it is not added automatically as in proto_tree_add_item().
proto_tree_add_text() proto_tree_add_text()
--------------------- ---------------------
The fourth function, proto_tree_add_text(), is used to add a label to proto_tree_add_text() is used to add a label to the GUI tree. It will
the GUI tree. It will contain no value, so it is not searchable in the contain no value, so it is not searchable in the display filter process.
display filter process. This function was needed in the transition from This function was needed in the transition from the old-style proto_tree
the old-style proto_tree to this new-style proto_tree so that Ethereal to this new-style proto_tree so that Ethereal would still decode all
would still decode all protocols w/o being able to filter on all protocols w/o being able to filter on all protocols and fields.
protocols and fields. Otherwise we would have had to cripple Ethereal's Otherwise we would have had to cripple Ethereal's functionality while we
functionality while we converted all the old-style proto_tree calls to converted all the old-style proto_tree calls to the new-style proto_tree
the new-style proto_tree calls. calls.
This can also be used for items with subtrees, which may not have values This can also be used for items with subtrees, which may not have values
themselves - the items in the subtree are the ones with values. themselves - the items in the subtree are the ones with values.
proto_tree_add_notext() For a subtree, the label on the subtree might reflect some of the items
----------------------- in the subtree. This means the label can't be set until at least some
The fifth function, proto_tree_add_notext(), is used to add an item to of the items in the subtree have been dissected. To do this, use
the logical tree that will have only a label, and no value (so it is not 'proto_item_set_text()':
searchable in the display filter process), but that doesn't yet have a
label, either. This is for items where the value is to be filled in
later. This is typically used for an item with a subtree, where the
label is to contain a summary of the subtree, with the values of some of
the fields in the subtree shown in the label of the item for the subtree
as a whole; the item can be created as a placeholder, with the label
added when the dissection is complete - and, if the dissection doesn't
complete because the packet is too short and not all the required fields
are present, the label could be set to something indicating this.
The text is set by 'proto_item_set_text()':
void void
proto_tree_set_text(proto_item *ti, ...); proto_tree_set_text(proto_item *ti, ...);
which takes as an argument the value returned by which takes as an argument the value returned by
'proto_tree_add_notext()', a 'printf'-style format string, and a set of 'proto_tree_add_text()', a 'printf'-style format string, and a set of
arguments corresponding to '%' format items in that string. For arguments corresponding to '%' format items in that string. For
example, early in the dissection, one might do: example, early in the dissection, one might do:
ti = proto_tree_add_notext(tree, offset, length); ti = proto_tree_add_text(tree, offset, length, <label>);
and later do and later do
proto_item_set_text(ti, "%s: %s", type, value); proto_item_set_text(ti, "%s: %s", type, value);
after the "type" and "value" fields have been extracted and dissected. after the "type" and "value" fields have been extracted and dissected.
<label> would be a label giving what information about the subtree is
available without dissecting any of the data in the subtree.
Note that an exception might thrown when trying to extract the values of
the items used to set the label, if not all the bytes of the item are
available. Thus, one should set the text of the item as soon as all the
values used to set it have been extracted, rather than setting it only
after the entire subtree has been dissected.
1.7 Utility routines 1.7 Utility routines

View File

@ -1,7 +1,7 @@
/* plugins.c /* plugins.c
* plugin routines * plugin routines
* *
* $Id: plugins.c,v 1.30 2001/08/21 09:11:59 guy Exp $ * $Id: plugins.c,v 1.31 2001/08/28 08:28:17 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com> * By Gerald Combs <gerald@ethereal.com>
@ -352,7 +352,6 @@ init_plugins(const char *plugin_dir)
patable.p_proto_tree_add_int_hidden = proto_tree_add_int_hidden; patable.p_proto_tree_add_int_hidden = proto_tree_add_int_hidden;
patable.p_proto_tree_add_int_format = proto_tree_add_int_format; patable.p_proto_tree_add_int_format = proto_tree_add_int_format;
patable.p_proto_tree_add_text = proto_tree_add_text; patable.p_proto_tree_add_text = proto_tree_add_text;
patable.p_proto_tree_add_notext = proto_tree_add_notext;
patable.p_tvb_new_subset = tvb_new_subset; patable.p_tvb_new_subset = tvb_new_subset;

View File

@ -1,7 +1,7 @@
/* proto.c /* proto.c
* Routines for protocol tree * Routines for protocol tree
* *
* $Id: proto.c,v 1.32 2001/08/04 19:57:30 guy Exp $ * $Id: proto.c,v 1.33 2001/08/28 08:28:17 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com> * By Gerald Combs <gerald@ethereal.com>
@ -291,9 +291,9 @@ proto_registrar_get_nth(int hfindex)
} }
/* Add a node with no text */ /* Add a text-only node, leaving it to our caller to fill the text in */
proto_item * static proto_item *
proto_tree_add_notext(proto_tree *tree, tvbuff_t *tvb, gint start, gint length) proto_tree_add_text_node(proto_tree *tree, tvbuff_t *tvb, gint start, gint length)
{ {
proto_item *pi; proto_item *pi;
@ -312,7 +312,7 @@ proto_tree_add_text(proto_tree *tree, tvbuff_t *tvb, gint start, gint length,
proto_item *pi; proto_item *pi;
va_list ap; va_list ap;
pi = proto_tree_add_notext(tree, tvb, start, length); pi = proto_tree_add_text_node(tree, tvb, start, length);
if (pi == NULL) if (pi == NULL)
return(NULL); return(NULL);
@ -330,7 +330,7 @@ proto_tree_add_text_valist(proto_tree *tree, tvbuff_t *tvb, gint start,
{ {
proto_item *pi; proto_item *pi;
pi = proto_tree_add_notext(tree, tvb, start, length); pi = proto_tree_add_text_node(tree, tvb, start, length);
if (pi == NULL) if (pi == NULL)
return(NULL); return(NULL);
@ -348,7 +348,7 @@ proto_tree_add_debug_text(proto_tree *tree, const char *format, ...)
proto_item *pi; proto_item *pi;
va_list ap; va_list ap;
pi = proto_tree_add_notext(tree, NULL, 0, 0); pi = proto_tree_add_text_node(tree, NULL, 0, 0);
if (pi == NULL) if (pi == NULL)
return(NULL); return(NULL);

View File

@ -1,7 +1,7 @@
/* proto.h /* proto.h
* Definitions for protocol display * Definitions for protocol display
* *
* $Id: proto.h,v 1.14 2001/07/22 10:25:49 guy Exp $ * $Id: proto.h,v 1.15 2001/08/28 08:28:17 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com> * By Gerald Combs <gerald@ethereal.com>
@ -446,10 +446,6 @@ proto_item *
proto_tree_add_text_valist(proto_tree *tree, tvbuff_t *tvb, gint start, proto_tree_add_text_valist(proto_tree *tree, tvbuff_t *tvb, gint start,
gint length, const char *format, va_list ap); gint length, const char *format, va_list ap);
/* Add a node with no text */
proto_item *
proto_tree_add_notext(proto_tree *tree, tvbuff_t *tvb, gint start, gint length);
/* Useful for quick debugging. Also sends string to STDOUT, so don't /* Useful for quick debugging. Also sends string to STDOUT, so don't
* leave call to this function in production code. */ * leave call to this function in production code. */

View File

@ -2,13 +2,12 @@
* Routines for the disassembly of the "Cisco Discovery Protocol" * Routines for the disassembly of the "Cisco Discovery Protocol"
* (c) Copyright Hannes R. Boehm <hannes@boehm.org> * (c) Copyright Hannes R. Boehm <hannes@boehm.org>
* *
* $Id: packet-cdp.c,v 1.38 2001/06/20 05:18:36 guy Exp $ * $Id: packet-cdp.c,v 1.39 2001/08/28 08:28:14 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@ethereal.com>
* Copyright 1998 Gerald Combs * Copyright 1998 Gerald Combs
* *
*
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2 * as published by the Free Software Foundation; either version 2
@ -384,7 +383,7 @@ dissect_address_tlv(tvbuff_t *tvb, int offset, int length, proto_tree *tree)
if (length < 1) if (length < 1)
return -1; return -1;
ti = proto_tree_add_notext(tree, tvb, offset, length); ti = proto_tree_add_text(tree, tvb, offset, length, "Truncated address");
address_tree = proto_item_add_subtree(ti, ett_cdp_address); address_tree = proto_item_add_subtree(ti, ett_cdp_address);
protocol_type = tvb_get_guint8(tvb, offset); protocol_type = tvb_get_guint8(tvb, offset);
proto_tree_add_text(address_tree, tvb, offset, 1, "Protocol type: %s", proto_tree_add_text(address_tree, tvb, offset, 1, "Protocol type: %s",
@ -392,10 +391,8 @@ dissect_address_tlv(tvbuff_t *tvb, int offset, int length, proto_tree *tree)
offset += 1; offset += 1;
length -= 1; length -= 1;
if (length < 1) { if (length < 1)
proto_item_set_text(ti, "Truncated address");
return -1; return -1;
}
protocol_length = tvb_get_guint8(tvb, offset); protocol_length = tvb_get_guint8(tvb, offset);
proto_tree_add_text(address_tree, tvb, offset, 1, "Protocol length: %u", proto_tree_add_text(address_tree, tvb, offset, 1, "Protocol length: %u",
protocol_length); protocol_length);
@ -403,7 +400,6 @@ dissect_address_tlv(tvbuff_t *tvb, int offset, int length, proto_tree *tree)
length -= 1; length -= 1;
if (length < protocol_length) { if (length < protocol_length) {
proto_item_set_text(ti, "Truncated address");
if (length != 0) { if (length != 0) {
proto_tree_add_text(address_tree, tvb, offset, length, proto_tree_add_text(address_tree, tvb, offset, length,
"Protocol: %s (truncated)", "Protocol: %s (truncated)",
@ -424,10 +420,8 @@ dissect_address_tlv(tvbuff_t *tvb, int offset, int length, proto_tree *tree)
offset += protocol_length; offset += protocol_length;
length -= protocol_length; length -= protocol_length;
if (length < 2) { if (length < 2)
proto_item_set_text(ti, "Truncated address");
return -1; return -1;
}
address_length = tvb_get_ntohs(tvb, offset); address_length = tvb_get_ntohs(tvb, offset);
proto_tree_add_text(address_tree, tvb, offset, 2, "Address length: %u", proto_tree_add_text(address_tree, tvb, offset, 2, "Address length: %u",
address_length); address_length);
@ -435,7 +429,6 @@ dissect_address_tlv(tvbuff_t *tvb, int offset, int length, proto_tree *tree)
length -= 2; length -= 2;
if (length < address_length) { if (length < address_length) {
proto_item_set_text(ti, "Truncated address");
if (length != 0) { if (length != 0) {
proto_tree_add_text(address_tree, tvb, offset, length, proto_tree_add_text(address_tree, tvb, offset, length,
"Address: %s (truncated)", "Address: %s (truncated)",

View File

@ -1,7 +1,7 @@
/* packet-dns.c /* packet-dns.c
* Routines for DNS packet disassembly * Routines for DNS packet disassembly
* *
* $Id: packet-dns.c,v 1.70 2001/07/02 07:29:03 guy Exp $ * $Id: packet-dns.c,v 1.71 2001/08/28 08:28:14 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com> * By Gerald Combs <gerald@ethereal.com>
@ -793,8 +793,10 @@ dissect_dns_answer(tvbuff_t *tvb, int offset, int dns_data_offset,
if (fd != NULL) if (fd != NULL)
col_append_fstr(fd, COL_INFO, " %s", type_name); col_append_fstr(fd, COL_INFO, " %s", type_name);
if (dns_tree != NULL) { if (dns_tree != NULL) {
trr = proto_tree_add_notext(dns_tree, tvb, offset, trr = proto_tree_add_text(dns_tree, tvb, offset,
(data_offset - data_start) + data_len); (data_offset - data_start) + data_len,
"%s: type %s, class %s",
name, type_name, class_name);
if (type != T_OPT) { if (type != T_OPT) {
rr_tree = add_rr_to_tree(trr, ett_dns_rr, tvb, offset, name, name_len, rr_tree = add_rr_to_tree(trr, ett_dns_rr, tvb, offset, name, name_len,
long_type_name, class_name, ttl, data_len); long_type_name, class_name, ttl, data_len);

View File

@ -2,7 +2,7 @@
* Routines for ISUP dissection * Routines for ISUP dissection
* Copyright 2001, Martina Obermeier <martina.obermeier@icn.siemens.de> * Copyright 2001, Martina Obermeier <martina.obermeier@icn.siemens.de>
* *
* $Id: packet-isup.c,v 1.4 2001/06/18 02:17:48 guy Exp $ * $Id: packet-isup.c,v 1.5 2001/08/28 08:28:14 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com> * By Gerald Combs <gerald@ethereal.com>
@ -1298,7 +1298,10 @@ void dissect_isup_called_party_number_parameter(tvbuff_t *parameter_tvb, proto_t
proto_tree_add_uint(parameter_tree, hf_isup_numbering_plan_indicator, parameter_tvb, 1, 1, indicators2); proto_tree_add_uint(parameter_tree, hf_isup_numbering_plan_indicator, parameter_tvb, 1, 1, indicators2);
offset = 2; offset = 2;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Called Party Number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -1342,7 +1345,10 @@ void dissect_isup_subsequent_number_parameter(tvbuff_t *parameter_tvb, proto_tre
proto_tree_add_boolean(parameter_tree, hf_isup_odd_even_indicator, parameter_tvb, 0, 1, indicators1); proto_tree_add_boolean(parameter_tree, hf_isup_odd_even_indicator, parameter_tvb, 0, 1, indicators1);
offset = 1; offset = 1;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Subsequent Number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -1402,7 +1408,7 @@ dissect_isup_information_indicators_parameter(tvbuff_t *parameter_tvb, proto_tre
proto_tree_add_boolean(parameter_tree, hf_isup_solicited_indicator, parameter_tvb, 0, INFO_IND_LENGTH, information_indicators); proto_tree_add_boolean(parameter_tree, hf_isup_solicited_indicator, parameter_tvb, 0, INFO_IND_LENGTH, information_indicators);
proto_item_set_text(parameter_item, "Information indicators: 0x%x", information_indicators); proto_item_set_text(parameter_item, "Information indicators: 0x%x", information_indicators);
} }
/* ------------------------------------------------------------------ /* ------------------------------------------------------------------
Dissector Parameter Continuity Indicators Dissector Parameter Continuity Indicators
@ -1415,7 +1421,7 @@ dissect_isup_continuity_indicators_parameter(tvbuff_t *parameter_tvb, proto_tree
continuity_indicators = tvb_get_guint8(parameter_tvb, 0); continuity_indicators = tvb_get_guint8(parameter_tvb, 0);
proto_tree_add_boolean(parameter_tree, hf_isup_continuity_indicator, parameter_tvb, 0, CONTINUITY_IND_LENGTH, continuity_indicators); proto_tree_add_boolean(parameter_tree, hf_isup_continuity_indicator, parameter_tvb, 0, CONTINUITY_IND_LENGTH, continuity_indicators);
proto_item_set_text(parameter_item, "Continuity indicators: 0x%x", continuity_indicators); proto_item_set_text(parameter_item, "Continuity indicators: 0x%x", continuity_indicators);
} }
/* ------------------------------------------------------------------ /* ------------------------------------------------------------------
Dissector Parameter Backward Call Indicators Dissector Parameter Backward Call Indicators
@ -1524,7 +1530,10 @@ dissect_isup_circuit_state_ind_parameter(tvbuff_t *parameter_tvb, proto_tree *pa
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
while(length > 0){ while(length > 0){
circuit_state_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); circuit_state_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Circuit# CIC+%u state", i);
circuit_state_tree = proto_item_add_subtree(circuit_state_item, ett_isup_circuit_state_ind); circuit_state_tree = proto_item_add_subtree(circuit_state_item, ett_isup_circuit_state_ind);
circuit_state = tvb_get_guint8(parameter_tvb, offset); circuit_state = tvb_get_guint8(parameter_tvb, offset);
if ((circuit_state & DC_8BIT_MASK) == 0){ if ((circuit_state & DC_8BIT_MASK) == 0){
@ -1539,7 +1548,7 @@ dissect_isup_circuit_state_ind_parameter(tvbuff_t *parameter_tvb, proto_tree *pa
} }
offset++; offset++;
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
} }
proto_item_set_text(parameter_item, "Circuit state indicator (national use)"); proto_item_set_text(parameter_item, "Circuit state indicator (national use)");
} }
/* ------------------------------------------------------------------ /* ------------------------------------------------------------------
@ -1631,7 +1640,10 @@ dissect_isup_calling_party_number_parameter(tvbuff_t *parameter_tvb, proto_tree
proto_tree_add_uint(parameter_tree, hf_isup_screening_indicator, parameter_tvb, 1, 1, indicators2); proto_tree_add_uint(parameter_tree, hf_isup_screening_indicator, parameter_tvb, 1, 1, indicators2);
offset = 2; offset = 2;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Calling Party Number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -1680,7 +1692,10 @@ dissect_isup_original_called_number_parameter(tvbuff_t *parameter_tvb, proto_tre
proto_tree_add_uint(parameter_tree, hf_isup_address_presentation_restricted_indicator, parameter_tvb, 1, 1, indicators2); proto_tree_add_uint(parameter_tree, hf_isup_address_presentation_restricted_indicator, parameter_tvb, 1, 1, indicators2);
offset = 2; offset = 2;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Original Called Number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -1729,7 +1744,10 @@ dissect_isup_redirecting_number_parameter(tvbuff_t *parameter_tvb, proto_tree *p
proto_tree_add_uint(parameter_tree, hf_isup_address_presentation_restricted_indicator, parameter_tvb, 1, 1, indicators2); proto_tree_add_uint(parameter_tree, hf_isup_address_presentation_restricted_indicator, parameter_tvb, 1, 1, indicators2);
offset = 2; offset = 2;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Redirecting Number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -1777,7 +1795,10 @@ void dissect_isup_redirection_number_parameter(tvbuff_t *parameter_tvb, proto_tr
proto_tree_add_uint(parameter_tree, hf_isup_numbering_plan_indicator, parameter_tvb, 1, 1, indicators2); proto_tree_add_uint(parameter_tree, hf_isup_numbering_plan_indicator, parameter_tvb, 1, 1, indicators2);
offset = 2; offset = 2;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Redirection Number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -1917,7 +1938,10 @@ dissect_isup_connected_number_parameter(tvbuff_t *parameter_tvb, proto_tree *par
proto_tree_add_uint(parameter_tree, hf_isup_screening_indicator, parameter_tvb, 1, 1, indicators2); proto_tree_add_uint(parameter_tree, hf_isup_screening_indicator, parameter_tvb, 1, 1, indicators2);
offset = 2; offset = 2;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Connected Number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -1964,7 +1988,10 @@ dissect_isup_transit_network_selection_parameter(tvbuff_t *parameter_tvb, proto_
proto_tree_add_uint(parameter_tree, hf_isup_network_identification_plan, parameter_tvb, 0, 1, indicators); proto_tree_add_uint(parameter_tree, hf_isup_network_identification_plan, parameter_tvb, 0, 1, indicators);
offset = 1; offset = 1;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Network identification");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -2304,7 +2331,10 @@ dissect_isup_location_number_parameter(tvbuff_t *parameter_tvb, proto_tree *para
proto_tree_add_uint(parameter_tree, hf_isup_screening_indicator, parameter_tvb, 1, 1, indicators2); proto_tree_add_uint(parameter_tree, hf_isup_screening_indicator, parameter_tvb, 1, 1, indicators2);
offset = 2; offset = 2;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Location number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -2408,7 +2438,10 @@ dissect_isup_call_transfer_number_parameter(tvbuff_t *parameter_tvb, proto_tree
proto_tree_add_uint(parameter_tree, hf_isup_screening_indicator_enhanced, parameter_tvb, 1, 1, indicators2); proto_tree_add_uint(parameter_tree, hf_isup_screening_indicator_enhanced, parameter_tvb, 1, 1, indicators2);
offset = 2; offset = 2;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Call transfer number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -2546,7 +2579,10 @@ dissect_isup_called_in_number_parameter(tvbuff_t *parameter_tvb, proto_tree *par
proto_tree_add_uint(parameter_tree, hf_isup_address_presentation_restricted_indicator, parameter_tvb, 1, 1, indicators2); proto_tree_add_uint(parameter_tree, hf_isup_address_presentation_restricted_indicator, parameter_tvb, 1, 1, indicators2);
offset = 2; offset = 2;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Called IN Number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -2691,7 +2727,10 @@ dissect_isup_generic_number_parameter(tvbuff_t *parameter_tvb, proto_tree *param
proto_tree_add_uint(parameter_tree, hf_isup_screening_indicator_enhanced, parameter_tvb, 2, 1, indicators2); proto_tree_add_uint(parameter_tree, hf_isup_screening_indicator_enhanced, parameter_tvb, 2, 1, indicators2);
offset = 3; offset = 3;
address_digits_item = proto_tree_add_notext(parameter_tree, parameter_tvb, offset, tvb_length_remaining(parameter_tvb, offset)); address_digits_item = proto_tree_add_text(parameter_tree, parameter_tvb,
offset,
tvb_length_remaining(parameter_tvb, offset),
"Generic number");
address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits);
length = tvb_length_remaining(parameter_tvb, offset); length = tvb_length_remaining(parameter_tvb, offset);
@ -2754,7 +2793,11 @@ dissect_isup_optional_parameter(tvbuff_t *optional_parameters_tvb, proto_tree *i
if (parameter_type != PARAM_TYPE_END_OF_OPT_PARAMS){ if (parameter_type != PARAM_TYPE_END_OF_OPT_PARAMS){
parameter_length = tvb_get_guint8(optional_parameters_tvb, offset + PARAMETER_TYPE_LENGTH); parameter_length = tvb_get_guint8(optional_parameters_tvb, offset + PARAMETER_TYPE_LENGTH);
parameter_item = proto_tree_add_notext(isup_tree, optional_parameters_tvb , offset, parameter_length + PARAMETER_TYPE_LENGTH + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, optional_parameters_tvb,
offset,
parameter_length + PARAMETER_TYPE_LENGTH + PARAMETER_LENGTH_IND_LENGTH,
"Parameter: type %u",
parameter_type);
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, optional_parameters_tvb, offset, PARAMETER_TYPE_LENGTH, parameter_type, "Optional Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, optional_parameters_tvb, offset, PARAMETER_TYPE_LENGTH, parameter_type, "Optional Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
offset += PARAMETER_TYPE_LENGTH; offset += PARAMETER_TYPE_LENGTH;
@ -3039,7 +3082,9 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
/* Do stuff for first mandatory fixed parameter: Nature of Connection Indicators */ /* Do stuff for first mandatory fixed parameter: Nature of Connection Indicators */
parameter_type = PARAM_TYPE_NATURE_OF_CONN_IND; parameter_type = PARAM_TYPE_NATURE_OF_CONN_IND;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, NATURE_OF_CONNECTION_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
NATURE_OF_CONNECTION_IND_LENGTH,
"Nature of Connection Indicators");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3049,7 +3094,9 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
/* Do stuff for 2nd mandatory fixed parameter: Forward Call Indicators */ /* Do stuff for 2nd mandatory fixed parameter: Forward Call Indicators */
parameter_type = PARAM_TYPE_FORW_CALL_IND; parameter_type = PARAM_TYPE_FORW_CALL_IND;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, FORWARD_CALL_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
FORWARD_CALL_IND_LENGTH,
"Forward Call Indicators");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3059,7 +3106,9 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
/* Do stuff for 3nd mandatory fixed parameter: Calling party's category */ /* Do stuff for 3nd mandatory fixed parameter: Calling party's category */
parameter_type = PARAM_TYPE_CALLING_PRTY_CATEG; parameter_type = PARAM_TYPE_CALLING_PRTY_CATEG;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, CALLING_PRTYS_CATEGORY_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
CALLING_PRTYS_CATEGORY_LENGTH,
"Calling Party's category");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3069,7 +3118,9 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
/* Do stuff for 4th mandatory fixed parameter: Transmission medium requirement */ /* Do stuff for 4th mandatory fixed parameter: Transmission medium requirement */
parameter_type = PARAM_TYPE_TRANSM_MEDIUM_REQU; parameter_type = PARAM_TYPE_TRANSM_MEDIUM_REQU;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, TRANSMISSION_MEDIUM_REQUIREMENT_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
TRANSMISSION_MEDIUM_REQUIREMENT_LENGTH,
"Transmission medium requirement");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3083,7 +3134,10 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"Called Party Number");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
@ -3111,7 +3165,10 @@ gint dissect_isup_subsequent_address_message(tvbuff_t *message_tvb, proto_tree *
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"Subsequent Number");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
@ -3137,7 +3194,9 @@ dissect_isup_information_request_message(tvbuff_t *message_tvb, proto_tree *isup
/* Do stuff for first mandatory fixed parameter: Information request indicators*/ /* Do stuff for first mandatory fixed parameter: Information request indicators*/
parameter_type = PARAM_TYPE_INFO_REQ_IND; parameter_type = PARAM_TYPE_INFO_REQ_IND;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, INFO_REQUEST_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
INFO_REQUEST_IND_LENGTH,
"Information request indicators");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3159,7 +3218,9 @@ dissect_isup_information_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
/* Do stuff for first mandatory fixed parameter: Information indicators*/ /* Do stuff for first mandatory fixed parameter: Information indicators*/
parameter_type = PARAM_TYPE_INFO_IND; parameter_type = PARAM_TYPE_INFO_IND;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, INFO_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
INFO_IND_LENGTH,
"Information indicators");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3181,7 +3242,9 @@ dissect_isup_continuity_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
/* Do stuff for first mandatory fixed parameter: Continuity indicators*/ /* Do stuff for first mandatory fixed parameter: Continuity indicators*/
parameter_type = PARAM_TYPE_CONTINUITY_IND; parameter_type = PARAM_TYPE_CONTINUITY_IND;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, CONTINUITY_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
CONTINUITY_IND_LENGTH,
"Continuity indicators");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3203,7 +3266,9 @@ dissect_isup_address_complete_message(tvbuff_t *message_tvb, proto_tree *isup_tr
/* Do stuff for first mandatory fixed parameter: backward call indicators*/ /* Do stuff for first mandatory fixed parameter: backward call indicators*/
parameter_type = PARAM_TYPE_BACKW_CALL_IND; parameter_type = PARAM_TYPE_BACKW_CALL_IND;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, BACKWARD_CALL_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
BACKWARD_CALL_IND_LENGTH,
"Backward Call Indicators");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3225,7 +3290,9 @@ dissect_isup_connect_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
/* Do stuff for first mandatory fixed parameter: backward call indicators*/ /* Do stuff for first mandatory fixed parameter: backward call indicators*/
parameter_type = PARAM_TYPE_BACKW_CALL_IND; parameter_type = PARAM_TYPE_BACKW_CALL_IND;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, BACKWARD_CALL_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
BACKWARD_CALL_IND_LENGTH,
"Backward Call Indicators");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3251,7 +3318,10 @@ dissect_isup_release_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"Cause indicators, see Q.850");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
@ -3276,7 +3346,9 @@ dissect_isup_suspend_resume_message(tvbuff_t *message_tvb, proto_tree *isup_tree
/* Do stuff for first mandatory fixed parameter: backward call indicators*/ /* Do stuff for first mandatory fixed parameter: backward call indicators*/
parameter_type = PARAM_TYPE_SUSP_RESUME_IND; parameter_type = PARAM_TYPE_SUSP_RESUME_IND;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, SUSPEND_RESUME_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
SUSPEND_RESUME_IND_LENGTH,
"Suspend/Resume indicator");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3302,7 +3374,10 @@ dissect_isup_circuit_group_reset_query_message(tvbuff_t *message_tvb, proto_tree
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"Range and status");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
@ -3327,7 +3402,9 @@ dissect_isup_circuit_group_blocking_messages(tvbuff_t *message_tvb, proto_tree *
/* Do stuff for first mandatory fixed parameter: circuit group supervision message type*/ /* Do stuff for first mandatory fixed parameter: circuit group supervision message type*/
parameter_type = PARAM_TYPE_CIRC_GRP_SV_MSG_TYPE; parameter_type = PARAM_TYPE_CIRC_GRP_SV_MSG_TYPE;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, CIRC_GRP_SV_MSG_TYPE_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
CIRC_GRP_SV_MSG_TYPE_LENGTH,
"Circuit group supervision message type");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3341,7 +3418,10 @@ dissect_isup_circuit_group_blocking_messages(tvbuff_t *message_tvb, proto_tree *
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"Facility indicator");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
@ -3367,7 +3447,9 @@ dissect_isup_facility_request_accepted_message(tvbuff_t *message_tvb, proto_tree
/* Do stuff for first mandatory fixed parameter: facility indicators*/ /* Do stuff for first mandatory fixed parameter: facility indicators*/
parameter_type = PARAM_TYPE_FACILITY_IND; parameter_type = PARAM_TYPE_FACILITY_IND;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, FACILITY_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
FACILITY_IND_LENGTH,
"Facility indicator");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3389,7 +3471,9 @@ dissect_isup_facility_reject_message(tvbuff_t *message_tvb, proto_tree *isup_tre
/* Do stuff for first mandatory fixed parameter: facility indicators*/ /* Do stuff for first mandatory fixed parameter: facility indicators*/
parameter_type = PARAM_TYPE_FACILITY_IND; parameter_type = PARAM_TYPE_FACILITY_IND;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, FACILITY_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
FACILITY_IND_LENGTH,
"Facility indicator");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3403,7 +3487,10 @@ dissect_isup_facility_reject_message(tvbuff_t *message_tvb, proto_tree *isup_tre
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"Cause indicators, see Q.850");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
@ -3432,7 +3519,10 @@ dissect_isup_circuit_group_reset_acknowledgement_message(tvbuff_t *message_tvb,
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"Range and status");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
@ -3461,7 +3551,10 @@ dissect_isup_circuit_group_query_response_message(tvbuff_t *message_tvb, proto_t
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"Range and status");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
@ -3477,7 +3570,10 @@ dissect_isup_circuit_group_query_response_message(tvbuff_t *message_tvb, proto_t
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"Circuit state indicator (national use)");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
@ -3502,7 +3598,9 @@ dissect_isup_call_progress_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
/* Do stuff for first mandatory fixed parameter: Event information*/ /* Do stuff for first mandatory fixed parameter: Event information*/
parameter_type = PARAM_TYPE_EVENT_INFO; parameter_type = PARAM_TYPE_EVENT_INFO;
parameter_item = proto_tree_add_notext(isup_tree, message_tvb, offset, EVENT_INFO_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset,
EVENT_INFO_LENGTH,
"Event information");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
actual_length = tvb_length_remaining(message_tvb, offset); actual_length = tvb_length_remaining(message_tvb, offset);
@ -3528,7 +3626,10 @@ dissect_isup_user_to_user_information_message(tvbuff_t *message_tvb, proto_tree
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"User-to-user information, see Q.931");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
@ -3557,7 +3658,10 @@ dissect_isup_confusion_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
parameter_pointer = tvb_get_guint8(message_tvb, offset); parameter_pointer = tvb_get_guint8(message_tvb, offset);
parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer); parameter_length = tvb_get_guint8(message_tvb, offset + parameter_pointer);
parameter_item = proto_tree_add_notext(isup_tree, message_tvb , offset + parameter_pointer, parameter_length + PARAMETER_LENGTH_IND_LENGTH); parameter_item = proto_tree_add_text(isup_tree, message_tvb,
offset + parameter_pointer,
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
"Cause indicators, see Q.850");
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown")); proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer); proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);

View File

@ -2,7 +2,7 @@
* Routines for Stream Control Transmission Protocol dissection * Routines for Stream Control Transmission Protocol dissection
* Copyright 2000, Michael Tüxen <Michael.Tuexen@icn.siemens.de> * Copyright 2000, Michael Tüxen <Michael.Tuexen@icn.siemens.de>
* *
* $Id: packet-sctp.c,v 1.19 2001/07/03 04:56:46 guy Exp $ * $Id: packet-sctp.c,v 1.20 2001/08/28 08:28:14 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com> * By Gerald Combs <gerald@ethereal.com>
@ -246,7 +246,7 @@ static const value_string sctp_parameter_identifier_values[] = {
#define COOKIE_RECEIVED_WHILE_SHUTTING_DOWN 0x0a #define COOKIE_RECEIVED_WHILE_SHUTTING_DOWN 0x0a
static const value_string sctp_cause_code_values[] = { static const value_string sctp_cause_code_values[] = {
{ INVALID_STREAM_IDENTIFIER, "Invalid stream idetifier" }, { INVALID_STREAM_IDENTIFIER, "Invalid stream identifier" },
{ MISSING_MANDATORY_PARAMETERS, "Missing mandator parameter" }, { MISSING_MANDATORY_PARAMETERS, "Missing mandator parameter" },
{ STALE_COOKIE_ERROR, "Stale cookie error" }, { STALE_COOKIE_ERROR, "Stale cookie error" },
{ OUT_OF_RESOURCE, "Out of resource" }, { OUT_OF_RESOURCE, "Out of resource" },
@ -690,7 +690,9 @@ dissect_parameter(tvbuff_t *parameter_tvb, proto_tree *chunk_tree)
padding_length = nr_of_padding_bytes(length); padding_length = nr_of_padding_bytes(length);
total_length = length + padding_length; total_length = length + padding_length;
parameter_item = proto_tree_add_notext(chunk_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, total_length); parameter_item = proto_tree_add_text(chunk_tree, parameter_tvb,
PARAMETER_HEADER_OFFSET, total_length, "%s parameter",
val_to_str(type, sctp_parameter_identifier_values, "Unknown"));
parameter_tree = proto_item_add_subtree(parameter_item, ett_sctp_chunk_parameter); parameter_tree = proto_item_add_subtree(parameter_item, ett_sctp_chunk_parameter);
proto_tree_add_uint_format(parameter_tree, hf_sctp_chunk_parameter_type, proto_tree_add_uint_format(parameter_tree, hf_sctp_chunk_parameter_type,
@ -924,8 +926,9 @@ dissect_error_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *chunk_t
padding_length = nr_of_padding_bytes(length); padding_length = nr_of_padding_bytes(length);
total_length = length + padding_length; total_length = length + padding_length;
cause_item = proto_tree_add_notext(chunk_tree, cause_tvb, CAUSE_HEADER_OFFSET, total_length); cause_item = proto_tree_add_text(chunk_tree, cause_tvb,
proto_item_set_text(cause_item, "BAD ERROR CAUSE"); CAUSE_HEADER_OFFSET, total_length,
"BAD ERROR CAUSE");
cause_tree = proto_item_add_subtree(cause_item, ett_sctp_chunk_cause); cause_tree = proto_item_add_subtree(cause_item, ett_sctp_chunk_cause);
proto_tree_add_uint_format(cause_tree, hf_sctp_cause_code, proto_tree_add_uint_format(cause_tree, hf_sctp_cause_code,

View File

@ -1,13 +1,12 @@
/* packet-vtp.c /* packet-vtp.c
* Routines for the disassembly of Cisco's Virtual Trunking Protocol * Routines for the disassembly of Cisco's Virtual Trunking Protocol
* *
* $Id: packet-vtp.c,v 1.14 2001/06/18 02:17:54 guy Exp $ * $Id: packet-vtp.c,v 1.15 2001/08/28 08:28:14 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@ethereal.com>
* Copyright 1998 Gerald Combs * Copyright 1998 Gerald Combs
* *
*
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2 * as published by the Free Software Foundation; either version 2
@ -271,7 +270,6 @@ dissect_vlan_info(tvbuff_t *tvb, int offset, proto_tree *tree)
guint8 vlan_name_len; guint8 vlan_name_len;
guint8 type; guint8 type;
int length; int length;
char *type_str;
proto_tree *tlv_tree; proto_tree *tlv_tree;
vlan_info_len = tvb_get_guint8(tvb, offset); vlan_info_len = tvb_get_guint8(tvb, offset);
@ -345,11 +343,11 @@ dissect_vlan_info(tvbuff_t *tvb, int offset, proto_tree *tree)
while (vlan_info_left > 0) { while (vlan_info_left > 0) {
type = tvb_get_guint8(tvb, offset + 0); type = tvb_get_guint8(tvb, offset + 0);
length = tvb_get_guint8(tvb, offset + 1); length = tvb_get_guint8(tvb, offset + 1);
type_str = val_to_str(type, vlan_tlv_type_vals,
"Unknown (0x%04x)");
ti = proto_tree_add_notext(vlan_info_tree, tvb, offset, ti = proto_tree_add_text(vlan_info_tree, tvb, offset,
2 + length*2); 2 + length*2, "%s",
val_to_str(type, vlan_tlv_type_vals,
"Unknown TLV type: 0x%02x"));
tlv_tree = proto_item_add_subtree(ti, ett_vtp_tlv); tlv_tree = proto_item_add_subtree(ti, ett_vtp_tlv);
proto_tree_add_uint(tlv_tree, hf_vtp_vlan_tlvtype, tvb, offset, proto_tree_add_uint(tlv_tree, hf_vtp_vlan_tlvtype, tvb, offset,
1, type); 1, type);
@ -588,7 +586,6 @@ dissect_vlan_info_tlv(tvbuff_t *tvb, int offset, int length,
break; break;
default: default:
proto_item_set_text(ti, "Unknown TLV type: 0x%02x", type);
proto_tree_add_text(tree, tvb, offset, length, "Data"); proto_tree_add_text(tree, tvb, offset, length, "Data");
break; break;
} }

View File

@ -1,11 +1,10 @@
/* plugin_api.c /* plugin_api.c
* Routines for Ethereal plugins. * Routines for Ethereal plugins.
* *
* $Id: plugin_api.c,v 1.20 2001/07/22 10:12:11 guy Exp $ * $Id: plugin_api.c,v 1.21 2001/08/28 08:28:19 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* Copyright 2000 by Gilbert Ramirez <gram@xiexie.org> * Copyright 2000 by Gilbert Ramirez <gram@xiexie.org>
*
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
@ -20,7 +19,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -98,7 +96,6 @@ plugin_address_table_init(plugin_address_table_t *pat)
p_proto_tree_add_int_hidden = pat->p_proto_tree_add_int_hidden; p_proto_tree_add_int_hidden = pat->p_proto_tree_add_int_hidden;
p_proto_tree_add_int_format = pat->p_proto_tree_add_int_format; p_proto_tree_add_int_format = pat->p_proto_tree_add_int_format;
p_proto_tree_add_text = pat->p_proto_tree_add_text; p_proto_tree_add_text = pat->p_proto_tree_add_text;
p_proto_tree_add_notext = pat->p_proto_tree_add_notext;
p_tvb_new_subset = pat->p_tvb_new_subset; p_tvb_new_subset = pat->p_tvb_new_subset;
p_tvb_length = pat->p_tvb_length; p_tvb_length = pat->p_tvb_length;
p_tvb_length_remaining = pat->p_tvb_length_remaining; p_tvb_length_remaining = pat->p_tvb_length_remaining;

View File

@ -1,11 +1,10 @@
/* plugin_api.h /* plugin_api.h
* Routines for Ethereal plugins. * Routines for Ethereal plugins.
* *
* $Id: plugin_api.h,v 1.20 2001/07/22 10:12:11 guy Exp $ * $Id: plugin_api.h,v 1.21 2001/08/28 08:28:19 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* Copyright 2000 by Gilbert Ramirez <gram@xiexie.org> * Copyright 2000 by Gilbert Ramirez <gram@xiexie.org>
*
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
@ -20,7 +19,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/ */
#ifdef PLUGINS_NEED_ADDRESS_TABLE #ifdef PLUGINS_NEED_ADDRESS_TABLE
@ -100,7 +98,6 @@
#define proto_tree_add_int_hidden (*p_proto_tree_add_int_hidden) #define proto_tree_add_int_hidden (*p_proto_tree_add_int_hidden)
#define proto_tree_add_int_format (*p_proto_tree_add_int_format) #define proto_tree_add_int_format (*p_proto_tree_add_int_format)
#define proto_tree_add_text (*p_proto_tree_add_text) #define proto_tree_add_text (*p_proto_tree_add_text)
#define proto_tree_add_notext (*p_proto_tree_add_notext)
#define tvb_new_subset (*p_tvb_new_subset) #define tvb_new_subset (*p_tvb_new_subset)

View File

@ -1,11 +1,10 @@
/* plugin_table.h /* plugin_table.h
* Table of exported addresses for Ethereal plugins. * Table of exported addresses for Ethereal plugins.
* *
* $Id: plugin_table.h,v 1.21 2001/07/22 10:12:11 guy Exp $ * $Id: plugin_table.h,v 1.22 2001/08/28 08:28:19 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* Copyright 2000 by Gilbert Ramirez <gram@xiexie.org> * Copyright 2000 by Gilbert Ramirez <gram@xiexie.org>
*
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
@ -20,7 +19,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/ */
#ifdef PLUGINS_NEED_ADDRESS_TABLE #ifdef PLUGINS_NEED_ADDRESS_TABLE
@ -109,7 +107,6 @@ typedef proto_item* (*addr_proto_tree_add_int_hidden)(proto_tree*, int, tvbuff_t
typedef proto_item* (*addr_proto_tree_add_int_format)(proto_tree*, int, tvbuff_t*, gint, gint, gint32, const char*, ...); typedef proto_item* (*addr_proto_tree_add_int_format)(proto_tree*, int, tvbuff_t*, gint, gint, gint32, const char*, ...);
typedef proto_item* (*addr_proto_tree_add_text)(proto_tree*, tvbuff_t*, gint, gint, const char*, ...); typedef proto_item* (*addr_proto_tree_add_text)(proto_tree*, tvbuff_t*, gint, gint, const char*, ...);
typedef proto_item* (*addr_proto_tree_add_notext)(proto_tree*, tvbuff_t*, gint, gint);
typedef tvbuff_t* (*addr_tvb_new_subset)(tvbuff_t*, gint, gint, gint); typedef tvbuff_t* (*addr_tvb_new_subset)(tvbuff_t*, gint, gint, gint);
@ -248,7 +245,6 @@ typedef struct {
addr_proto_tree_add_int_hidden p_proto_tree_add_int_hidden; addr_proto_tree_add_int_hidden p_proto_tree_add_int_hidden;
addr_proto_tree_add_int_format p_proto_tree_add_int_format; addr_proto_tree_add_int_format p_proto_tree_add_int_format;
addr_proto_tree_add_text p_proto_tree_add_text; addr_proto_tree_add_text p_proto_tree_add_text;
addr_proto_tree_add_notext p_proto_tree_add_notext;
addr_tvb_new_subset p_tvb_new_subset; addr_tvb_new_subset p_tvb_new_subset;