aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorRobert Grange <robionekenobi@bluewin.ch>2014-11-15 11:35:09 +0100
committerMichael Mann <mmann78@netscape.net>2014-11-15 15:56:38 +0000
commit7f3f4a5307855217349778959633b23ad1dab0d9 (patch)
treef7300e73597298c3c133899ed05d52baba17a657 /epan/dissectors
parentd550b17984a092c99127f572158377af27b42354 (diff)
paquet-mq: Eliminiate proto_tree_add_text
Eliminate proto_tree_add_text for Expert Info Improve PCF Parameters numeric value display Change-Id: Ibc259ba05d0591d434e7638d91d6943101d45305 Reviewed-on: https://code.wireshark.org/review/5080 Reviewed-by: Robert Grange <robionekenobi@bluewin.ch> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-mq-pcf.c57
-rw-r--r--epan/dissectors/packet-mq.c12
-rw-r--r--epan/dissectors/packet-mq.h1
3 files changed, 37 insertions, 33 deletions
diff --git a/epan/dissectors/packet-mq-pcf.c b/epan/dissectors/packet-mq-pcf.c
index e7995680fd..ca0fef7c40 100644
--- a/epan/dissectors/packet-mq-pcf.c
+++ b/epan/dissectors/packet-mq-pcf.c
@@ -99,7 +99,7 @@ static gint ett_mqpcf_cfh = -1;
static guint32 dissect_mqpcf_getDigits(guint uCnt)
{
- return (guint) log10(uCnt) + 1;
+ return (guint32)(log10( (double)uCnt ) + 1);
}
/*
* Here we get a special value_string, that return another value_string
@@ -135,12 +135,12 @@ static void dissect_mqpcf_parm_int(tvbuff_t *tvb, proto_tree *tree, guint offset
if (pVal)
{
proto_tree_add_int_format(tree, hfindex, tvb, offset, 4, uVal,
- "%s[%*d]: %8d-%s", hfinfo->name, iDigit, iCnt, uVal, pVal);
+ "%s[%*d]: %8x-(%9d)-%s", hfinfo->name, iDigit, iCnt, uVal, uVal, pVal);
}
else
{
proto_tree_add_int_format(tree, hfindex, tvb, offset, 4, uVal,
- "%s[%*d]: %8x-%d", hfinfo->name, iDigit, iCnt, uVal, uVal);
+ "%s[%*d]: %8x-(%9d)", hfinfo->name, iDigit, iCnt, uVal, uVal);
}
}
else
@@ -148,12 +148,12 @@ static void dissect_mqpcf_parm_int(tvbuff_t *tvb, proto_tree *tree, guint offset
if (pVal)
{
proto_tree_add_int_format_value(tree, hfindex, tvb, offset, 4, uVal,
- "%8d-%s", uVal, pVal);
+ "%8x-(%9d)-%s", uVal, uVal, pVal);
}
else
{
proto_tree_add_int_format_value(tree, hfindex, tvb, offset, 4, uVal,
- "%8x-%d", uVal, uVal);
+ "%8x-(%9d)", uVal, uVal);
}
}
}
@@ -193,8 +193,7 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
uLen = tvb_get_guint32_endian(tvb, xOfs + 4, bLittleEndian);
if (uLen < 16)
{
- ti = proto_tree_add_text(mq_tree, tvb, xOfs, 16, sPrmCnt, uLen, uCnt);
- expert_add_info(pinfo, ti, &ei_mq_pcf_PrmCnt);
+ proto_tree_add_expert_format(tree, pinfo, &ei_mq_pcf_PrmCnt, tvb, xOfs, 16, sPrmCnt, uLen, uCnt);
break;
}
uCnt++;
@@ -212,8 +211,7 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
uLen = tvb_get_guint32_endian(tvb, offset + 4, bLittleEndian);
if (uLen == 0)
{
- ti = proto_tree_add_text(mq_tree, tvb, offset, 12, sPrmLn0, u+1, uCount);
- expert_add_info(pinfo, ti, &ei_mq_pcf_prmln0);
+ proto_tree_add_expert_format(tree, pinfo, &ei_mq_pcf_prmln0, tvb, offset, 12, sPrmLn0, u+1, uCount);
u = uCount;
break;
}
@@ -245,16 +243,18 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
uVal = tvb_get_guint32_endian(tvb, offset + uLenF, bLittleEndian);
if (bParse)
pVal = dissect_mqpcf_parm_getintval(uPrm, uVal);
+
if (pVal)
{
tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL,
- "%s %d-%s", strPrm, uVal, pVal);
+ "%s %8x-(%9d) %s", strPrm, uVal, uVal, pVal);
}
else
{
tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL,
- "%s %8x-%d", strPrm, uVal, uVal);
+ "%s %8x-(%9d)", strPrm, uVal, uVal);
}
+
proto_tree_add_item(tree, hf_mq_pcf_prmtyp, tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen, tvb, offset + 4, 4, bLittleEndian);
proto_tree_add_item(tree, (bParse) ? hf_mq_pcf_prmid : hf_mq_pcf_prmidnovals, tvb, offset + 8, 4, bLittleEndian);
@@ -273,7 +273,7 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
if (*sStr)
strip_trailing_blanks(sStr, uSLn);
if (*sStr)
- format_text_chr(sStr, strlen(sStr), '.');
+ format_text_chr(sStr, strlen((const char *)sStr), '.');
tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s %s", strPrm, sStr);
@@ -310,8 +310,7 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
}
if (u2 != uCnt)
{
- ti = proto_tree_add_text(tree, tvb, offset, uLen, sMaxLst, u2, uCnt);
- expert_add_info(pinfo, ti, &ei_mq_pcf_MaxInt);
+ proto_tree_add_expert_format(tree, pinfo, &ei_mq_pcf_MaxInt, tvb, offset, (uCnt- u2) * 4, sMaxLst, u2, uCnt);
}
}
break;
@@ -347,16 +346,15 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
if (*sStr)
strip_trailing_blanks(sStr, uSLn);
if (*sStr)
- format_text_chr(sStr, strlen(sStr), '.');
+ format_text_chr(sStr, strlen((const char *)sStr), '.');
- proto_tree_add_string_format(tree, hf_mq_pcf_stringlist, tvb, offset, uSLn, sStr,
+ proto_tree_add_string_format(tree, hf_mq_pcf_stringlist, tvb, offset, uSLn, (const char *)sStr,
"%s[%*d]: %s", hfinfo->name, uDigit, u2+1, sStr);
offset += uSLn;
}
if (u2 != uCnt)
{
- ti = proto_tree_add_text(tree, tvb, offset, uLen, sMaxLst, u2, uCnt);
- expert_add_info(pinfo, ti, &ei_mq_pcf_MaxStr);
+ proto_tree_add_expert_format(tree, pinfo, &ei_mq_pcf_MaxStr, tvb, offset,(uCnt - u2) * uSLn, sMaxLst, u2, uCnt);
}
}
break;
@@ -377,8 +375,8 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
uSLn = tvb_get_guint32_endian(tvb, offset + uLenF, bLittleEndian);
if (uSLn)
{
- guint8 *sStrA = format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 4, uSLn, ENC_ASCII) , uSLn, '.');
- guint8 *sStrE = format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 4, uSLn, ENC_EBCDIC), uSLn, '.');
+ guint8 *sStrA = (guint8 *)format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 4, uSLn, ENC_ASCII) , uSLn, '.');
+ guint8 *sStrE = (guint8 *)format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 4, uSLn, ENC_EBCDIC), uSLn, '.');
if (uSLn > 35)
{
tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL,
@@ -414,8 +412,8 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
uOpe = tvb_get_guint32_endian(tvb, offset + uLenF , bLittleEndian);
uVal = tvb_get_guint32_endian(tvb, offset + uLenF + 4, bLittleEndian);
- tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s %s %d",
- strPrm, val_to_str(uOpe, GET_VALSV(FilterOP), " Unknown (0x%02x)")+7, uVal);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s %s %8x-(%9d)",
+ strPrm, val_to_str(uOpe, GET_VALSV(FilterOP), " Unknown (0x%02x)")+7, uVal, uVal);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen , tvb, offset + 4, 4, bLittleEndian);
@@ -433,7 +431,7 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
uOpe = tvb_get_guint32_endian(tvb, offset + uLenF, bLittleEndian);
uCCS = tvb_get_guint32_endian(tvb, offset + uLenF + 4, bLittleEndian);
uSLn = tvb_get_guint32_endian(tvb, offset + uLenF + 8, bLittleEndian);
- sStr = format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 12, uSLn, (uCCS != 500) ? ENC_ASCII : ENC_EBCDIC), uSLn, '.');
+ sStr = (guint8 *)format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 12, uSLn, (uCCS != 500) ? ENC_ASCII : ENC_EBCDIC), uSLn, '.');
strip_trailing_blanks(sStr, uSLn);
tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s %s %s",
@@ -456,8 +454,8 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
uSLn = tvb_get_guint32_endian(tvb, offset + uLenF + 4, bLittleEndian);
if (uSLn)
{
- guint8 *sStrA = format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 8, uSLn, ENC_ASCII), uSLn, '.');
- guint8 *sStrE = format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 8, uSLn, ENC_EBCDIC), uSLn, '.');
+ guint8 *sStrA = (guint8 *)format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 8, uSLn, ENC_ASCII), uSLn, '.');
+ guint8 *sStrE = (guint8 *)format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 8, uSLn, ENC_EBCDIC), uSLn, '.');
tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s %s A(%s) E(%s)",
strPrm, val_to_str(uOpe, GET_VALSV(FilterOP), " Unknown (0x%02x)")+7, sStrA, sStrE);
}
@@ -526,13 +524,13 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
{
uVal64 = tvb_get_guint64_endian(tvb, offset, bLittleEndian);
proto_tree_add_int64_format(tree, hf_mq_pcf_int64list, tvb, offset, 8, uVal64,
- "%s[%*d]: %" G_GINT64_MODIFIER "d", hfinfo->name, uDigit, u2+1, uVal64);
+ "%s[%*d]: %" G_GINT64_MODIFIER "x (%" G_GINT64_MODIFIER "d)",
+ hfinfo->name, uDigit, u2+1, uVal64, uVal64);
offset += 8;
}
if (u2 != uCnt)
{
- ti = proto_tree_add_text(tree, tvb, offset, uLen, sMaxLst, u2, uCnt);
- expert_add_info(pinfo, ti, &ei_mq_pcf_MaxI64);
+ proto_tree_add_expert_format(tree, pinfo, &ei_mq_pcf_MaxI64, tvb, offset, (uCnt - u2) * 8, sMaxLst, u2, uCnt);
}
}
break;
@@ -541,8 +539,7 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
}
if (u != uCount)
{
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, sMaxPrm, u, uCount);
- expert_add_info(pinfo, ti, &ei_mq_pcf_MaxPrm);
+ proto_tree_add_expert_format(mq_tree, pinfo, &ei_mq_pcf_MaxPrm, tvb, offset, tvb_reported_length_remaining(tvb, offset), sMaxPrm, u, uCount);
}
}
diff --git a/epan/dissectors/packet-mq.c b/epan/dissectors/packet-mq.c
index 518942722c..642b4c9dda 100644
--- a/epan/dissectors/packet-mq.c
+++ b/epan/dissectors/packet-mq.c
@@ -4035,11 +4035,15 @@ static gboolean dissect_mq_heur_http(tvbuff_t *tvb, packet_info *pinfo, proto
return dissect_mq_heur(tvb, pinfo, tree, MQ_XPT_HTTP, NULL);
}
/*
-function used to compare value_string when sorting the arry
+function used to compare value_string when sorting the array
*/
static int _mq_vals_fncomp(const void *e1, const void *e2)
{
- return (((value_string *)e1)->value < ((value_string *)e2)->value) ? -1 : (((value_string *)e1)->value > ((value_string *)e2)->value) ? 1 : 0;
+ if (((const value_string *)e1)->value < ((const value_string *)e2)->value)
+ return -1;
+ if (((const value_string *)e1)->value > ((const value_string *)e2)->value)
+ return 1;
+ return 0;
}
/*
if the value_string_ext is not yet initialized, try first to
@@ -4049,7 +4053,8 @@ static void _try_mq_vals_sort(value_string_ext *pExt)
{
if (pExt->_vs_match2 == _try_val_to_str_ext_init)
{
- qsort((void *)pExt->_vs_p, pExt->_vs_num_entries, sizeof(value_string), _mq_vals_fncomp);
+ qsort((void *)(value_string_ext *)pExt->_vs_p,
+ pExt->_vs_num_entries, sizeof(value_string), _mq_vals_fncomp);
}
}
@@ -4756,6 +4761,7 @@ void proto_reg_handoff_mq(void)
Sort the value_string_ext to improve the use of bsearch
in case the string_value is not sorted by value when created
*/
+
_try_mq_vals_sort(GET_VALS_EXTP(mqrc));
_try_mq_vals_sort(GET_VALS_EXTP(mqcmd));
_try_mq_vals_sort(GET_VALS_EXTP(PrmId));
diff --git a/epan/dissectors/packet-mq.h b/epan/dissectors/packet-mq.h
index f8612445a0..505642d322 100644
--- a/epan/dissectors/packet-mq.h
+++ b/epan/dissectors/packet-mq.h
@@ -2775,6 +2775,7 @@ typedef struct _mq_parm_t
#define MQ_MQRCCF_CFIL_DUPLICATE_VALUE 3026
#define MQ_MQRCCF_CFIL_COUNT_ERROR 3027
#define MQ_MQRCCF_CFIL_LENGTH_ERROR 3028
+#define MQ_MQRCCF_QUIESCE_VALUE_ERROR 3029
#define MQ_MQRCCF_MODE_VALUE_ERROR 3029
#define MQ_MQRCCF_MSG_SEQ_NUMBER_ERROR 3030
#define MQ_MQRCCF_PING_DATA_COUNT_ERROR 3031