Use tvb_bcd_dig_to_ep_str().
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 18 Nov 2011 07:01:10 +0000 (07:01 +0000)
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 18 Nov 2011 07:01:10 +0000 (07:01 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@39929 f5534014-38df-0310-8fa8-9805f1628bb7

asn1/ansi_map/packet-ansi_map-template.c
epan/dissectors/packet-ansi_map.c

index 0cb366fa10951a33a5bd0d0fdd41423170b7f649..34046df643bf5f17cc83fb393792402e91115d5e 100644 (file)
@@ -604,44 +604,6 @@ static dgt_set_t Dgt1_9_bcd = {
      '0','1','2','3','4','5','6','7','8','9','?','?','?','?','?'
     }
 };
      '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) */
 
 
 /* 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);
 
 
     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);
 }
     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++;
             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;
             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 */
         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;
             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;
index cb0704332a41b4ec19a7828e2ef7214664f24027..857e239fd60324ac225cae45fb8530489b41fb9e 100644 (file)
@@ -1392,44 +1392,6 @@ static dgt_set_t Dgt1_9_bcd = {
      '0','1','2','3','4','5','6','7','8','9','?','?','?','?','?'
     }
 };
      '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) */
 
 
 /* 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);
 
 
     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);
 }
     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++;
             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;
             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 */
         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;
             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 ---*/
 
 
 /*--- 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
 
 /*
  * 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 ---*/
         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 */
     };
 
     /* 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 ---*/
     &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[] = {
     };
 
        static enum_val_t ansi_map_response_matching_type_values[] = {