diff options
author | Jeff Morriss <jeff.morriss.ws@gmail.com> | 2014-08-22 15:44:20 -0400 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-08-22 20:24:47 +0000 |
commit | 863b6646d6995b7f0a7c70aad845c7bb3f00dbc7 (patch) | |
tree | 9fa3632b74173ce3016740431aa4a0241a252061 /asn1/gsm_map | |
parent | 2d74838e473a3e3414addb73c892efa470c4c0f1 (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.cnf | 4 | ||||
-rw-r--r-- | asn1/gsm_map/packet-gsm_map-template.c | 38 | ||||
-rw-r--r-- | asn1/gsm_map/packet-gsm_map-template.h | 1 |
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[]; |