aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/camel/packet-camel-template.c11
-rw-r--r--debian/libwireshark0.symbols1
-rw-r--r--epan/dissectors/packet-ansi_a.c11
-rw-r--r--epan/dissectors/packet-camel.c21
-rw-r--r--epan/proto.c35
-rw-r--r--epan/to_str.c35
-rw-r--r--epan/to_str.h3
7 files changed, 45 insertions, 72 deletions
diff --git a/asn1/camel/packet-camel-template.c b/asn1/camel/packet-camel-template.c
index c9c8b79e69..9986abbea1 100644
--- a/asn1/camel/packet-camel-template.c
+++ b/asn1/camel/packet-camel-template.c
@@ -386,20 +386,13 @@ dissect_RP_cause_ie(tvbuff_t *tvb, guint32 offset, _U_ guint len,
{
guint8 oct;
guint32 curr_offset;
- static char a_bigbuf[1024];
curr_offset = offset;
oct = tvb_get_guint8(tvb, curr_offset);
*cause_value = oct & 0x7f;
- other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
- proto_tree_add_uint_format(tree, hf_cause_value,
- tvb, curr_offset, 1, *cause_value,
- "%s : %s",
- a_bigbuf,
- val_to_str(*cause_value, camel_RP_Cause_values,
- "Unknown Cause (%u), treated as (41) \"Temporary failure\" for MO-SMS or (111) \"Protocol error,unspecified\" for MT-SMS"));
+ proto_tree_add_uint(tree, hf_cause_value, tvb, curr_offset, 1, oct);
curr_offset++;
if ((oct & 0x80)) {
@@ -1387,7 +1380,7 @@ void proto_register_camel(void) {
"LocationInformationGPRS/CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
{ &hf_camel_RP_Cause,
{ "RP Cause", "camel.RP_Cause",
- FT_UINT8, BASE_DEC, NULL, 0,
+ FT_UINT8, BASE_DEC, VALS(camel_RP_Cause_values), 0x7F,
"RP Cause Value", HFILL }},
{ &hf_camel_CAMEL_AChBillingChargingCharacteristics,
diff --git a/debian/libwireshark0.symbols b/debian/libwireshark0.symbols
index 21c9a9f6f2..4b3f2a346a 100644
--- a/debian/libwireshark0.symbols
+++ b/debian/libwireshark0.symbols
@@ -844,7 +844,6 @@ libwireshark.so.0 libwireshark0 #MINVER#
oid_subid2string@Base 1.9.1
oids_cleanup@Base 1.9.1
oids_init@Base 1.9.1
- other_decode_bitfield_value@Base 1.9.1
output_fields_add@Base 1.12.0~rc1
output_fields_free@Base 1.12.0~rc1
output_fields_has_cols@Base 1.12.0~rc1
diff --git a/epan/dissectors/packet-ansi_a.c b/epan/dissectors/packet-ansi_a.c
index 3e7d555594..d157f90c00 100644
--- a/epan/dissectors/packet-ansi_a.c
+++ b/epan/dissectors/packet-ansi_a.c
@@ -1725,22 +1725,13 @@ content_fill_aux(
int hf_content,
int hf_content_fill_bits)
{
- static guint8 lo_masks[8] = { 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff };
- guint8 oct;
-
proto_tree_add_item(tree, hf_content, tvb, offset, content_len, ENC_NA);
offset += content_len;
if (fill_bits)
{
- oct = tvb_get_guint8(tvb, offset - 1);
-
- other_decode_bitfield_value(a_bigbuf, oct, lo_masks[fill_bits-1], 8);
- proto_tree_add_uint_format(tree, hf_content_fill_bits, tvb, offset - 1, 1,
- oct & lo_masks[fill_bits-1],
- "%s = Fill Bits",
- a_bigbuf);
+ proto_tree_add_bits_item(tree, hf_content_fill_bits, tvb, (offset - 1)*8, fill_bits-1, ENC_NA);
}
}
diff --git a/epan/dissectors/packet-camel.c b/epan/dissectors/packet-camel.c
index 838fe08071..7ca875a5fa 100644
--- a/epan/dissectors/packet-camel.c
+++ b/epan/dissectors/packet-camel.c
@@ -1359,20 +1359,13 @@ dissect_RP_cause_ie(tvbuff_t *tvb, guint32 offset, _U_ guint len,
{
guint8 oct;
guint32 curr_offset;
- static char a_bigbuf[1024];
curr_offset = offset;
oct = tvb_get_guint8(tvb, curr_offset);
*cause_value = oct & 0x7f;
- other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
- proto_tree_add_uint_format(tree, hf_cause_value,
- tvb, curr_offset, 1, *cause_value,
- "%s : %s",
- a_bigbuf,
- val_to_str(*cause_value, camel_RP_Cause_values,
- "Unknown Cause (%u), treated as (41) \"Temporary failure\" for MO-SMS or (111) \"Protocol error,unspecified\" for MT-SMS"));
+ proto_tree_add_uint(tree, hf_cause_value, tvb, curr_offset, 1, oct);
curr_offset++;
if ((oct & 0x80)) {
@@ -7170,7 +7163,7 @@ static int dissect_CAP_U_ABORT_REASON_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
/*--- End of included file: packet-camel-fn.c ---*/
-#line 418 "../../asn1/camel/packet-camel-template.c"
+#line 411 "../../asn1/camel/packet-camel-template.c"
/*--- Included file: packet-camel-table2.c ---*/
@@ -7377,7 +7370,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a
/*--- End of included file: packet-camel-table2.c ---*/
-#line 420 "../../asn1/camel/packet-camel-template.c"
+#line 413 "../../asn1/camel/packet-camel-template.c"
/*
* Functions needed for Hash-Table
@@ -8303,7 +8296,7 @@ void proto_reg_handoff_camel(void) {
/*--- End of included file: packet-camel-dis-tab.c ---*/
-#line 1338 "../../asn1/camel/packet-camel-template.c"
+#line 1331 "../../asn1/camel/packet-camel-template.c"
} else {
range_foreach(ssn_range, range_delete_callback);
g_free(ssn_range);
@@ -8356,7 +8349,7 @@ void proto_register_camel(void) {
"LocationInformationGPRS/CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
{ &hf_camel_RP_Cause,
{ "RP Cause", "camel.RP_Cause",
- FT_UINT8, BASE_DEC, NULL, 0,
+ FT_UINT8, BASE_DEC, VALS(camel_RP_Cause_values), 0x7F,
"RP Cause Value", HFILL }},
{ &hf_camel_CAMEL_AChBillingChargingCharacteristics,
@@ -10425,7 +10418,7 @@ void proto_register_camel(void) {
"InvokeId_present", HFILL }},
/*--- End of included file: packet-camel-hfarr.c ---*/
-#line 1511 "../../asn1/camel/packet-camel-template.c"
+#line 1504 "../../asn1/camel/packet-camel-template.c"
};
/* List of subtrees */
@@ -10643,7 +10636,7 @@ void proto_register_camel(void) {
&ett_camel_InvokeId,
/*--- End of included file: packet-camel-ettarr.c ---*/
-#line 1528 "../../asn1/camel/packet-camel-template.c"
+#line 1521 "../../asn1/camel/packet-camel-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/proto.c b/epan/proto.c
index f27bc79b4e..363b0d74d9 100644
--- a/epan/proto.c
+++ b/epan/proto.c
@@ -3487,6 +3487,41 @@ proto_tree_set_boolean(field_info *fi, guint64 value)
proto_tree_set_uint64(fi, value);
}
+/* Generate, into "buf", a string showing the bits of a bitfield.
+ Return a pointer to the character after that string. */
+/*XXX this needs a buf_len check */
+static char *
+other_decode_bitfield_value(char *buf, const guint64 val, const guint64 mask, const int width)
+{
+ int i;
+ guint64 bit;
+ char *p;
+
+ i = 0;
+ p = buf;
+ bit = G_GUINT64_CONSTANT(1) << (width - 1);
+ for (;;) {
+ if (mask & bit) {
+ /* This bit is part of the field. Show its value. */
+ if (val & bit)
+ *p++ = '1';
+ else
+ *p++ = '0';
+ } else {
+ /* This bit is not part of the field. */
+ *p++ = '.';
+ }
+ bit >>= 1;
+ i++;
+ if (i >= width)
+ break;
+ if (i % 4 == 0)
+ *p++ = ' ';
+ }
+ *p = '\0';
+ return p;
+}
+
static char *
decode_bitfield_value(char *buf, const guint64 val, const guint64 mask, const int width)
{
diff --git a/epan/to_str.c b/epan/to_str.c
index 3e2aa7d9dd..b24eeff65a 100644
--- a/epan/to_str.c
+++ b/epan/to_str.c
@@ -1000,41 +1000,6 @@ decode_bits_in_field(const guint bit_offset, const gint no_of_bits, const guint6
return str;
}
-/* Generate, into "buf", a string showing the bits of a bitfield.
- Return a pointer to the character after that string. */
-/*XXX this needs a buf_len check */
-char *
-other_decode_bitfield_value(char *buf, const guint64 val, const guint64 mask, const int width)
-{
- int i;
- guint64 bit;
- char *p;
-
- i = 0;
- p = buf;
- bit = G_GUINT64_CONSTANT(1) << (width - 1);
- for (;;) {
- if (mask & bit) {
- /* This bit is part of the field. Show its value. */
- if (val & bit)
- *p++ = '1';
- else
- *p++ = '0';
- } else {
- /* This bit is not part of the field. */
- *p++ = '.';
- }
- bit >>= 1;
- i++;
- if (i >= width)
- break;
- if (i % 4 == 0)
- *p++ = ' ';
- }
- *p = '\0';
- return p;
-}
-
/*
This function is very fast and this function is called a lot.
XXX update the address_to_str stuff to use this function.
diff --git a/epan/to_str.h b/epan/to_str.h
index 082aea99c4..5582f16bd7 100644
--- a/epan/to_str.h
+++ b/epan/to_str.h
@@ -117,9 +117,6 @@ gchar* guid_to_str_buf(const e_guid_t*, gchar*, int);
WS_DLL_PUBLIC char *decode_bits_in_field(const guint bit_offset, const gint no_of_bits, const guint64 value);
-WS_DLL_PUBLIC char *other_decode_bitfield_value(char *buf, const guint64 val, const guint64 mask,
- const int width);
-
WS_DLL_PUBLIC const gchar* port_type_to_str (port_type type);
/** Turn an address type retrieved from a tvb into a string.