aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/gsm_map
diff options
context:
space:
mode:
authorJeff Morriss <jeff.morriss.ws@gmail.com>2014-08-22 15:44:20 -0400
committerAnders Broman <a.broman58@gmail.com>2014-08-22 20:24:47 +0000
commit863b6646d6995b7f0a7c70aad845c7bb3f00dbc7 (patch)
tree9fa3632b74173ce3016740431aa4a0241a252061 /asn1/gsm_map
parent2d74838e473a3e3414addb73c892efa470c4c0f1 (diff)
Replace a couple of implementations of unpack_digits() with tvb_bcd_dig_to_wmem_packet_str().
Change-Id: Ic9e740345fb3a748f6df4f624441bb947bbd9429 Reviewed-on: https://code.wireshark.org/review/3797 Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'asn1/gsm_map')
-rw-r--r--asn1/gsm_map/gsm_map.cnf4
-rw-r--r--asn1/gsm_map/packet-gsm_map-template.c38
-rw-r--r--asn1/gsm_map/packet-gsm_map-template.h1
3 files changed, 3 insertions, 40 deletions
diff --git a/asn1/gsm_map/gsm_map.cnf b/asn1/gsm_map/gsm_map.cnf
index ae9b998939..306594cb50 100644
--- a/asn1/gsm_map/gsm_map.cnf
+++ b/asn1/gsm_map/gsm_map.cnf
@@ -280,7 +280,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
if(tvb_reported_length(parameter_tvb)==0)
return offset;
- digit_str = unpack_digits(parameter_tvb, 0);
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(parameter_tvb, 0, -1, NULL, FALSE);
proto_tree_add_string(tree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, digit_str);
#----------------------------------------------------------------------------------------
@@ -960,7 +960,7 @@ if (!actx->value_ptr)
proto_tree_add_item(subtree, hf_gsm_map_locationnumber_apri, tvb, 1, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_gsm_map_locationnumber_screening_ind, tvb, 1, 1, ENC_BIG_ENDIAN);
- digit_str = unpack_digits(tvb, 1);
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(tvb, 1, -1, NULL, FALSE);
proto_tree_add_string(tree, hf_gsm_map_locationnumber_digits, tvb, 1, -1, digit_str);
diff --git a/asn1/gsm_map/packet-gsm_map-template.c b/asn1/gsm_map/packet-gsm_map-template.c
index 48917f9dc6..1d2e0bad46 100644
--- a/asn1/gsm_map/packet-gsm_map-template.c
+++ b/asn1/gsm_map/packet-gsm_map-template.c
@@ -313,42 +313,6 @@ static const value_string gsm_map_screening_ind_vals[] = {
{ 0, NULL }
};
-const char *
-unpack_digits(tvbuff_t *tvb, int offset) {
-
- int length;
- guint8 octet;
- int i=0;
- char *digit_str;
-
- length = tvb_reported_length(tvb);
- if (length < offset)
- return "";
- digit_str = (char *)wmem_alloc(wmem_packet_scope(), (length - offset)*2+1);
-
- while ( offset < length ){
-
- octet = tvb_get_guint8(tvb,offset);
- digit_str[i] = ((octet & 0x0f) + '0');
- i++;
-
- /*
- * unpack second value in byte
- */
- octet = octet >> 4;
-
- if (octet == 0x0f) /* odd number bytes - hit filler */
- break;
-
- digit_str[i] = ((octet & 0x0f) + '0');
- i++;
- offset++;
-
- }
- digit_str[i]= '\0';
- return digit_str;
-}
-
/* returns value in kb/s */
static guint
gsm_map_calc_bitrate(guint8 value){
@@ -828,7 +792,7 @@ dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
if(tvb_reported_length(tvb)==1)
return;
- digit_str = unpack_digits(tvb, 1);
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(tvb, 1, -1, NULL, FALSE);
proto_tree_add_string(tree, hf_gsm_map_address_digits, tvb, 1, -1, digit_str);
diff --git a/asn1/gsm_map/packet-gsm_map-template.h b/asn1/gsm_map/packet-gsm_map-template.h
index b3e96c32a5..9f7ccd1324 100644
--- a/asn1/gsm_map/packet-gsm_map-template.h
+++ b/asn1/gsm_map/packet-gsm_map-template.h
@@ -44,7 +44,6 @@ typedef struct _gsm_map_tap_rec_t {
#define SMS_ENCODING_UCS2_LANG 5
WS_DLL_PUBLIC const value_string gsm_map_opr_code_strings[];
-const char* unpack_digits(tvbuff_t *tvb, int offset);
extern const value_string ssCode_vals[];
extern const value_string gsm_map_PDP_Type_Organisation_vals[];