summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-per.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-per.c')
-rw-r--r--epan/dissectors/packet-per.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c
index 4a4ac7c..1a0f3ee 100644
--- a/epan/dissectors/packet-per.c
+++ b/epan/dissectors/packet-per.c
@@ -61,6 +61,8 @@ static int hf_per_internal_range = -1;
static int hf_per_internal_num_bits = -1;
static int hf_per_internal_min = -1;
static int hf_per_internal_value = -1;
+static int hf_per_internal_min_int = -1;
+static int hf_per_internal_value_int = -1;
static int hf_per_encoding_boiler_plate = -1;
static gint ett_per_open_type = -1;
@@ -1419,10 +1421,18 @@ DEBUG_ENTRY("dissect_per_constrained_integer");
if (display_internal_per_fields){
str = decode_bits_in_field(actx->pinfo->pool, (offset&0x07),num_bits,val,ENC_BIG_ENDIAN);
- proto_tree_add_uint(tree, hf_per_internal_min, tvb, val_start,val_length, min);
+ if (FT_IS_INT(hfi->type)) {
+ proto_tree_add_int(tree, hf_per_internal_min_int, tvb, val_start, val_length, min);
+ } else {
+ proto_tree_add_uint(tree, hf_per_internal_min, tvb, val_start, val_length, min);
+ }
proto_tree_add_uint64(tree, hf_per_internal_range, tvb, val_start, val_length, range);
proto_tree_add_uint(tree, hf_per_internal_num_bits, tvb, val_start, val_length, num_bits);
- proto_tree_add_uint64_format_value(tree, hf_per_internal_value, tvb, val_start, val_length, val+min, "%s decimal value: %u", str, val+min);
+ if (FT_IS_INT(hfi->type)) {
+ proto_tree_add_int64_format_value(tree, hf_per_internal_value_int, tvb, val_start, val_length, val + min, "%s decimal value: %i", str, val + min);
+ } else {
+ proto_tree_add_uint64_format_value(tree, hf_per_internal_value, tvb, val_start, val_length, val + min, "%s decimal value: %u", str, val + min);
+ }
}
/* The actual value */
val+=min;
@@ -2927,6 +2937,14 @@ proto_register_per(void)
{ "Bits", "per.internal.value",
FT_UINT64, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ { &hf_per_internal_min_int,
+ { "Min", "per.internal.min_int",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_per_internal_value_int,
+ { "Bits", "per.internal.value_int",
+ FT_INT64, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
{ &hf_per_encoding_boiler_plate,
{ "PER encoded protocol, to see PER internal fields set protocol PER preferences", "per.encoding_boiler_plate",
FT_NONE, BASE_NONE, NULL, 0x0,