aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2011-11-18 07:01:10 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2011-11-18 07:01:10 +0000
commit1046ac43811c790431ea9e7c7f76fe01bff37c4a (patch)
treeca9dc4189cd254c9f1468fc6fae55131444f5250
parent2513bd24595b73ab7754a44d2c2f1854a9811d26 (diff)
Use tvb_bcd_dig_to_ep_str().
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@39929 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r--asn1/ansi_map/packet-ansi_map-template.c44
-rw-r--r--epan/dissectors/packet-ansi_map.c50
2 files changed, 9 insertions, 85 deletions
diff --git a/asn1/ansi_map/packet-ansi_map-template.c b/asn1/ansi_map/packet-ansi_map-template.c
index 0cb366fa10..34046df643 100644
--- a/asn1/ansi_map/packet-ansi_map-template.c
+++ b/asn1/ansi_map/packet-ansi_map-template.c
@@ -604,44 +604,6 @@ static dgt_set_t Dgt1_9_bcd = {
'0','1','2','3','4','5','6','7','8','9','?','?','?','?','?'
}
};
-/* Assumes the rest of the tvb contains the digits to be turned into a string
- */
-static const char*
-unpack_digits2(tvbuff_t *tvb, int offset,dgt_set_t *dgt){
-
- int length;
- guint8 octet;
- int i=0;
- char *digit_str;
-
- length = tvb_length(tvb);
- if (length < offset)
- return "";
- digit_str = ep_alloc((length - offset)*2+1);
-
- while ( offset < length ){
-
- octet = tvb_get_guint8(tvb,offset);
- digit_str[i] = dgt->out[octet & 0x0f];
- i++;
-
- /*
- * unpack second value in byte
- */
- octet = octet >> 4;
-
- if (octet == 0x0f) /* odd number bytes - hit filler */
- break;
-
- digit_str[i] = dgt->out[octet & 0x0f];
- i++;
- offset++;
-
- }
- digit_str[i]= '\0';
- return digit_str;
-}
-
/* Type of Digits (octet 1, bits A-H) */
@@ -715,7 +677,7 @@ dissect_ansi_map_min_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
subtree = proto_item_add_subtree(actx->created_item, ett_mintype);
- digit_str = unpack_digits2(tvb, offset, &Dgt1_9_bcd);
+ digit_str = tvb_bcd_dig_to_ep_str(tvb, offset, tvb_length_remaining(tvb,offset), &Dgt1_9_bcd, FALSE);
proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
proto_item_append_text(actx->created_item, " - %s", digit_str);
}
@@ -760,7 +722,7 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
if(octet_len == 0)
return;
offset++;
- digit_str = unpack_digits2(tvb, offset, &Dgt_tbcd);
+ digit_str = tvb_bcd_dig_to_ep_str(tvb, offset, tvb_length_remaining(tvb,offset), &Dgt_tbcd, FALSE);
proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
proto_item_append_text(actx->created_item, " - %s", digit_str);
break;
@@ -798,7 +760,7 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
switch ((octet&0xf)){
case 1:
/* BCD Coding */
- digit_str = unpack_digits2(tvb, offset, &Dgt_tbcd);
+ digit_str = tvb_bcd_dig_to_ep_str(tvb, offset, tvb_length_remaining(tvb,offset), &Dgt_tbcd, FALSE);
proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
proto_item_append_text(actx->created_item, " - %s", digit_str);
break;
diff --git a/epan/dissectors/packet-ansi_map.c b/epan/dissectors/packet-ansi_map.c
index cb0704332a..857e239fd6 100644
--- a/epan/dissectors/packet-ansi_map.c
+++ b/epan/dissectors/packet-ansi_map.c
@@ -1392,44 +1392,6 @@ static dgt_set_t Dgt1_9_bcd = {
'0','1','2','3','4','5','6','7','8','9','?','?','?','?','?'
}
};
-/* Assumes the rest of the tvb contains the digits to be turned into a string
- */
-static const char*
-unpack_digits2(tvbuff_t *tvb, int offset,dgt_set_t *dgt){
-
- int length;
- guint8 octet;
- int i=0;
- char *digit_str;
-
- length = tvb_length(tvb);
- if (length < offset)
- return "";
- digit_str = ep_alloc((length - offset)*2+1);
-
- while ( offset < length ){
-
- octet = tvb_get_guint8(tvb,offset);
- digit_str[i] = dgt->out[octet & 0x0f];
- i++;
-
- /*
- * unpack second value in byte
- */
- octet = octet >> 4;
-
- if (octet == 0x0f) /* odd number bytes - hit filler */
- break;
-
- digit_str[i] = dgt->out[octet & 0x0f];
- i++;
- offset++;
-
- }
- digit_str[i]= '\0';
- return digit_str;
-}
-
/* Type of Digits (octet 1, bits A-H) */
@@ -1503,7 +1465,7 @@ dissect_ansi_map_min_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
subtree = proto_item_add_subtree(actx->created_item, ett_mintype);
- digit_str = unpack_digits2(tvb, offset, &Dgt1_9_bcd);
+ digit_str = tvb_bcd_dig_to_ep_str(tvb, offset, tvb_length_remaining(tvb,offset), &Dgt1_9_bcd, FALSE);
proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
proto_item_append_text(actx->created_item, " - %s", digit_str);
}
@@ -1548,7 +1510,7 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
if(octet_len == 0)
return;
offset++;
- digit_str = unpack_digits2(tvb, offset, &Dgt_tbcd);
+ digit_str = tvb_bcd_dig_to_ep_str(tvb, offset, tvb_length_remaining(tvb,offset), &Dgt_tbcd, FALSE);
proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
proto_item_append_text(actx->created_item, " - %s", digit_str);
break;
@@ -1586,7 +1548,7 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
switch ((octet&0xf)){
case 1:
/* BCD Coding */
- digit_str = unpack_digits2(tvb, offset, &Dgt_tbcd);
+ digit_str = tvb_bcd_dig_to_ep_str(tvb, offset, tvb_length_remaining(tvb,offset), &Dgt_tbcd, FALSE);
proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
proto_item_append_text(actx->created_item, " - %s", digit_str);
break;
@@ -15536,7 +15498,7 @@ dissect_ansi_map_ReturnData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
/*--- End of included file: packet-ansi_map-fn.c ---*/
-#line 3658 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 3620 "../../asn1/ansi_map/packet-ansi_map-template.c"
/*
* 6.5.2.dk N.S0013-0 v 1.0,X.S0004-550-E v1.0 2.301
@@ -19388,7 +19350,7 @@ void proto_register_ansi_map(void) {
NULL, HFILL }},
/*--- End of included file: packet-ansi_map-hfarr.c ---*/
-#line 5317 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 5279 "../../asn1/ansi_map/packet-ansi_map-template.c"
};
/* List of subtrees */
@@ -19649,7 +19611,7 @@ void proto_register_ansi_map(void) {
&ett_ansi_map_ReturnData,
/*--- End of included file: packet-ansi_map-ettarr.c ---*/
-#line 5350 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 5312 "../../asn1/ansi_map/packet-ansi_map-template.c"
};
static enum_val_t ansi_map_response_matching_type_values[] = {