packet-mq: Avoid using sort in dissector

Avoid using sort for string_value_ext. The string value are now
sorted at definition

Change-Id: I08452b0423289d04e55ed7e3573e74bfcc329865
Reviewed-on: https://code.wireshark.org/review/6488
Reviewed-by: Robert Grange <robionekenobi@bluewin.ch>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
This commit is contained in:
Robert Grange 2015-01-11 12:57:06 +01:00 committed by Pascal Quantin
parent 9d55a0ba62
commit 9b9a06c3cb
4 changed files with 2981 additions and 3057 deletions

File diff suppressed because it is too large Load Diff

View File

@ -591,7 +591,7 @@ static void dissect_mqpcf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, m
ti = proto_tree_add_item(tree, proto_mqpcf, tvb, offset, -1, ENC_NA);
proto_item_append_text(ti, " (%s)", val_to_str(iCommand, GET_VALSV(mqcmd), "Unknown (0x%02x)"));
proto_item_append_text(ti, " (%s)", val_to_str_ext_const(iCommand, GET_VALS_EXTP(mqcmd), "Unknown (0x%02x)"));
mqroot_tree = proto_item_add_subtree(ti, ett_mqpcf);
mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeMQCFH, ett_mqpcf_cfh, NULL, sTmp);

View File

@ -1399,75 +1399,6 @@ DEF_VALSB(notifcode)
DEF_VALS2(NC_CLIENT_ASYNC_EMPTY, "CLIENT_ASYNC_EMPTY"),
DEF_VALSE;
DEF_VALSBX(opcode)
DEF_VALS2(TST_INITIAL , "INITIAL_DATA"),
DEF_VALS2(TST_RESYNC , "RESYNC_DATA"),
DEF_VALS2(TST_RESET , "RESET_DATA"),
DEF_VALS2(TST_MESSAGE , "MESSAGE_DATA"),
DEF_VALS2(TST_STATUS , "STATUS_DATA"),
DEF_VALS2(TST_SECURITY , "SECURITY_DATA"),
DEF_VALS2(TST_PING , "PING_DATA"),
DEF_VALS2(TST_USERID , "USERID_DATA"),
DEF_VALS2(TST_HEARTBEAT , "HEARTBEAT"),
DEF_VALS2(TST_CONAUTH_INFO , "CONAUTH_INFO"),
DEF_VALS2(TST_RENEGOTIATE_DATA , "RENEGOTIATE_DATA"),
DEF_VALS2(TST_SOCKET_ACTION , "SOCKET_ACTION"),
DEF_VALS2(TST_ASYNC_MESSAGE , "ASYNC_MESSAGE"),
DEF_VALS2(TST_REQUEST_MSGS , "REQUEST_MSGS"),
DEF_VALS2(TST_NOTIFICATION , "NOTIFICATION"),
DEF_VALS2(TST_MQCONN , "MQCONN"),
DEF_VALS2(TST_MQDISC , "MQDISC"),
DEF_VALS2(TST_MQOPEN , "MQOPEN"),
DEF_VALS2(TST_MQCLOSE , "MQCLOSE"),
DEF_VALS2(TST_MQGET , "MQGET"),
DEF_VALS2(TST_MQPUT , "MQPUT"),
DEF_VALS2(TST_MQPUT1 , "MQPUT1"),
DEF_VALS2(TST_MQSET , "MQSET"),
DEF_VALS2(TST_MQINQ , "MQINQ"),
DEF_VALS2(TST_MQCMIT , "MQCMIT"),
DEF_VALS2(TST_MQBACK , "MQBACK"),
DEF_VALS2(TST_SPI , "SPI"),
DEF_VALS2(TST_MQSTAT , "MQSTAT"),
DEF_VALS2(TST_MQSUB , "MQSUB"),
DEF_VALS2(TST_MQSUBRQ , "MQSUBRQ"),
DEF_VALS2(TST_MQCONN_REPLY , "MQCONN_REPLY"),
DEF_VALS2(TST_MQDISC_REPLY , "MQDISC_REPLY"),
DEF_VALS2(TST_MQOPEN_REPLY , "MQOPEN_REPLY"),
DEF_VALS2(TST_MQCLOSE_REPLY , "MQCLOSE_REPLY"),
DEF_VALS2(TST_MQGET_REPLY , "MQGET_REPLY"),
DEF_VALS2(TST_MQPUT_REPLY , "MQPUT_REPLY"),
DEF_VALS2(TST_MQPUT1_REPLY , "MQPUT1_REPLY"),
DEF_VALS2(TST_MQSET_REPLY , "MQSET_REPLY"),
DEF_VALS2(TST_MQINQ_REPLY , "MQINQ_REPLY"),
DEF_VALS2(TST_MQCMIT_REPLY , "MQCMIT_REPLY"),
DEF_VALS2(TST_MQBACK_REPLY , "MQBACK_REPLY"),
DEF_VALS2(TST_SPI_REPLY , "SPI_REPLY"),
DEF_VALS2(TST_MQSTAT_REPLY , "MQSTAT_REPLY"),
DEF_VALS2(TST_MQSUB_REPLY , "MQSUB_REPLY"),
DEF_VALS2(TST_MQSUBRQ_REPLY , "MQSUBRQ_REPLY"),
DEF_VALS2(TST_XA_START , "XA_START"),
DEF_VALS2(TST_XA_END , "XA_END"),
DEF_VALS2(TST_XA_OPEN , "XA_OPEN"),
DEF_VALS2(TST_XA_CLOSE , "XA_CLOSE"),
DEF_VALS2(TST_XA_PREPARE , "XA_PREPARE"),
DEF_VALS2(TST_XA_COMMIT , "XA_COMMIT"),
DEF_VALS2(TST_XA_ROLLBACK , "XA_ROLLBACK"),
DEF_VALS2(TST_XA_FORGET , "XA_FORGET"),
DEF_VALS2(TST_XA_RECOVER , "XA_RECOVER"),
DEF_VALS2(TST_XA_COMPLETE , "XA_COMPLETE"),
DEF_VALS2(TST_XA_START_REPLY , "XA_START_REPLY"),
DEF_VALS2(TST_XA_END_REPLY , "XA_END_REPLY"),
DEF_VALS2(TST_XA_OPEN_REPLY , "XA_OPEN_REPLY"),
DEF_VALS2(TST_XA_CLOSE_REPLY , "XA_CLOSE_REPLY"),
DEF_VALS2(TST_XA_PREPARE_REPLY , "XA_PREPARE_REPLY"),
DEF_VALS2(TST_XA_COMMIT_REPLY , "XA_COMMIT_REPLY"),
DEF_VALS2(TST_XA_ROLLBACK_REPLY, "XA_ROLLBACK_REPLY"),
DEF_VALS2(TST_XA_FORGET_REPLY , "XA_FORGET_REPLY"),
DEF_VALS2(TST_XA_RECOVER_REPLY , "XA_RECOVER_REPLY"),
DEF_VALS2(TST_XA_COMPLETE_REPLY, "XA_COMPLETE_REPLY"),
DEF_VALSE;
DEF_VALS_EXTB(opcode);
DEF_VALSB(spi_verbs)
DEF_VALS2(SPI_QUERY , "QUERY"),
DEF_VALS2(SPI_PUT , "PUT"),
@ -1481,43 +1412,112 @@ DEF_VALSB(spi_activate)
DEF_VALS2(SPI_ACTIVATE_DISABLE, "DISABLE"),
DEF_VALSE;
DEF_VALSBX(status)
DEF_VALS2(STATUS_ERR_NO_CHANNEL , "NO_CHANNEL"),
DEF_VALS2(STATUS_ERR_CHANNEL_WRONG_TYPE , "CHANNEL_WRONG_TYPE"),
DEF_VALS2(STATUS_ERR_QM_UNAVAILABLE , "QM_UNAVAILABLE"),
DEF_VALS2(STATUS_ERR_MSG_SEQUENCE_ERROR , "MSG_SEQUENCE_ERROR"),
DEF_VALS2(STATUS_ERR_QM_TERMINATING , "QM_TERMINATING"),
DEF_VALS2(STATUS_ERR_CAN_NOT_STORE , "CAN_NOT_STORE"),
DEF_VALS2(STATUS_ERR_USER_CLOSED , "USER_CLOSED"),
DEF_VALS2(STATUS_ERR_PROTOCOL_SEGMENT_TYPE , "REMOTE_PROTOCOL_ERROR"),
DEF_VALS2(STATUS_ERR_PROTOCOL_LENGTH_ERROR , "BIND_FAILED"),
DEF_VALS2(STATUS_ERR_PROTOCOL_INVALID_DATA , "MSGWRAP_DIFFERENT"),
DEF_VALS2(STATUS_ERR_PROTOCOL_ID_ERROR , "REMOTE_CHANNEL_UNAVAILABLE"),
DEF_VALS2(STATUS_ERR_PROTOCOL_MSH_ERROR , "TERMINATED_BY_REMOTE_EXIT"),
DEF_VALS2(STATUS_ERR_PROTOCOL_GENERAL , "PROTOCOL_GENERAL"),
DEF_VALS2(STATUS_ERR_BATCH_FAILURE , "BATCH_FAILURE"),
DEF_VALS2(STATUS_ERR_MESSAGE_LENGTH_ERROR , "MESSAGE_LENGTH_ERROR"),
DEF_VALS2(STATUS_ERR_SEGMENT_NUMBER_ERROR , "SEGMENT_NUMBER_ERROR"),
DEF_VALS2(STATUS_ERR_SECURITY_FAILURE , "SECURITY_FAILURE"),
DEF_VALS2(STATUS_ERR_WRAP_VALUE_ERROR , "WRAP_VALUE_ERROR"),
DEF_VALS2(STATUS_ERR_CHANNEL_UNAVAILABLE , "CHANNEL_UNAVAILABLE"),
DEF_VALS2(STATUS_ERR_CLOSED_BY_EXIT , "CLOSED_BY_EXIT"),
DEF_VALS2(STATUS_ERR_CIPHER_SPEC , "CIPHER_SPEC"),
DEF_VALS2(STATUS_ERR_PEER_NAME , "PEER_NAME"),
DEF_VALS2(STATUS_ERR_SSL_CLIENT_CERTIFICATE, "SSL_CLIENT_CERTIFICATE"),
DEF_VALS2(STATUS_ERR_RMT_RSRCS_IN_RECOVERY , "RMT_RSRCS_IN_RECOVERY"),
DEF_VALS2(STATUS_ERR_SSL_REFRESHING , "SSL_REFRESHING"),
DEF_VALS2(STATUS_ERR_INVALID_HOBJ , "INVALID_HOBJ"),
DEF_VALS2(STATUS_ERR_CONV_ID_ERROR , "CONV_ID_ERROR"),
DEF_VALS2(STATUS_ERR_SOCKET_ACTION_TYPE , "SOCKET_ACTION_TYPE"),
DEF_VALS2(STATUS_ERR_STANDBY_Q_MGR , "STANDBY_Q_MGR"),
DEF_VALS2(STATUS_ERR_CCSID_NOT_SUPPORTED , "CCSID_NOT_SUPPORTED"),
DEF_VALS2(STATUS_ERR_ENCODING_INVALID , "ENCODING_INVALID"),
DEF_VALS2(STATUS_ERR_FAP_LEVEL , "FAP_LEVEL"),
DEF_VALS2(STATUS_ERR_NEGOTIATION_FAILED , "NEGOTIATION_FAILED"),
DEF_VALSB(status)
/* 1*/ DEF_VALS2(STATUS_ERR_NO_CHANNEL , "NO_CHANNEL"),
/* 2*/ DEF_VALS2(STATUS_ERR_CHANNEL_WRONG_TYPE , "CHANNEL_WRONG_TYPE"),
/* 3*/ DEF_VALS2(STATUS_ERR_QM_UNAVAILABLE , "QM_UNAVAILABLE"),
/* 4*/ DEF_VALS2(STATUS_ERR_MSG_SEQUENCE_ERROR , "MSG_SEQUENCE_ERROR"),
/* 5*/ DEF_VALS2(STATUS_ERR_QM_TERMINATING , "QM_TERMINATING"),
/* 6*/ DEF_VALS2(STATUS_ERR_CAN_NOT_STORE , "CAN_NOT_STORE"),
/* 7*/ DEF_VALS2(STATUS_ERR_USER_CLOSED , "USER_CLOSED"),
/* 10*/ DEF_VALS2(STATUS_ERR_PROTOCOL_SEGMENT_TYPE , "REMOTE_PROTOCOL_ERROR"),
/* 11*/ DEF_VALS2(STATUS_ERR_PROTOCOL_LENGTH_ERROR , "BIND_FAILED"),
/* 12*/ DEF_VALS2(STATUS_ERR_PROTOCOL_INVALID_DATA , "MSGWRAP_DIFFERENT"),
/* 14*/ DEF_VALS2(STATUS_ERR_PROTOCOL_ID_ERROR , "REMOTE_CHANNEL_UNAVAILABLE"),
/* 15*/ DEF_VALS2(STATUS_ERR_PROTOCOL_MSH_ERROR , "TERMINATED_BY_REMOTE_EXIT"),
/* 16*/ DEF_VALS2(STATUS_ERR_PROTOCOL_GENERAL , "PROTOCOL_GENERAL"),
/* 17*/ DEF_VALS2(STATUS_ERR_BATCH_FAILURE , "BATCH_FAILURE"),
/* 18*/ DEF_VALS2(STATUS_ERR_MESSAGE_LENGTH_ERROR , "MESSAGE_LENGTH_ERROR"),
/* 19*/ DEF_VALS2(STATUS_ERR_SEGMENT_NUMBER_ERROR , "SEGMENT_NUMBER_ERROR"),
/* 20*/ DEF_VALS2(STATUS_ERR_SECURITY_FAILURE , "SECURITY_FAILURE"),
/* 21*/ DEF_VALS2(STATUS_ERR_WRAP_VALUE_ERROR , "WRAP_VALUE_ERROR"),
/* 22*/ DEF_VALS2(STATUS_ERR_CHANNEL_UNAVAILABLE , "CHANNEL_UNAVAILABLE"),
/* 23*/ DEF_VALS2(STATUS_ERR_CLOSED_BY_EXIT , "CLOSED_BY_EXIT"),
/* 24*/ DEF_VALS2(STATUS_ERR_CIPHER_SPEC , "CIPHER_SPEC"),
/* 25*/ DEF_VALS2(STATUS_ERR_PEER_NAME , "PEER_NAME"),
/* 26*/ DEF_VALS2(STATUS_ERR_SSL_CLIENT_CERTIFICATE, "SSL_CLIENT_CERTIFICATE"),
/* 27*/ DEF_VALS2(STATUS_ERR_RMT_RSRCS_IN_RECOVERY , "RMT_RSRCS_IN_RECOVERY"),
/* 28*/ DEF_VALS2(STATUS_ERR_SSL_REFRESHING , "SSL_REFRESHING"),
/* 29*/ DEF_VALS2(STATUS_ERR_INVALID_HOBJ , "INVALID_HOBJ"),
/* 30*/ DEF_VALS2(STATUS_ERR_CONV_ID_ERROR , "CONV_ID_ERROR"),
/* 31*/ DEF_VALS2(STATUS_ERR_SOCKET_ACTION_TYPE , "SOCKET_ACTION_TYPE"),
/* 32*/ DEF_VALS2(STATUS_ERR_STANDBY_Q_MGR , "STANDBY_Q_MGR"),
/* 240*/ DEF_VALS2(STATUS_ERR_CCSID_NOT_SUPPORTED , "CCSID_NOT_SUPPORTED"),
/* 241*/ DEF_VALS2(STATUS_ERR_ENCODING_INVALID , "ENCODING_INVALID"),
/* 242*/ DEF_VALS2(STATUS_ERR_FAP_LEVEL , "FAP_LEVEL"),
/* 243*/ DEF_VALS2(STATUS_ERR_NEGOTIATION_FAILED , "NEGOTIATION_FAILED"),
DEF_VALSE;
DEF_VALS_EXTB(status);
DEF_VALSB(opcode)
/* 1*/ DEF_VALS2(TST_INITIAL , "INITIAL_DATA"),
/* 2*/ DEF_VALS2(TST_RESYNC , "RESYNC_DATA"),
/* 3*/ DEF_VALS2(TST_RESET , "RESET_DATA"),
/* 4*/ DEF_VALS2(TST_MESSAGE , "MESSAGE_DATA"),
/* 5*/ DEF_VALS2(TST_STATUS , "STATUS_DATA"),
/* 6*/ DEF_VALS2(TST_SECURITY , "SECURITY_DATA"),
/* 7*/ DEF_VALS2(TST_PING , "PING_DATA"),
/* 8*/ DEF_VALS2(TST_USERID , "USERID_DATA"),
/* 9*/ DEF_VALS2(TST_HEARTBEAT , "HEARTBEAT"),
/* 10*/ DEF_VALS2(TST_CONAUTH_INFO , "CONAUTH_INFO"),
/* 11*/ DEF_VALS2(TST_RENEGOTIATE_DATA , "RENEGOTIATE_DATA"),
/* 12*/ DEF_VALS2(TST_SOCKET_ACTION , "SOCKET_ACTION"),
/* 13*/ DEF_VALS2(TST_ASYNC_MESSAGE , "ASYNC_MESSAGE"),
/* 14*/ DEF_VALS2(TST_REQUEST_MSGS , "REQUEST_MSGS"),
/* 15*/ DEF_VALS2(TST_NOTIFICATION , "NOTIFICATION"),
/* 129*/ DEF_VALS2(TST_MQCONN , "MQCONN"),
/* 130*/ DEF_VALS2(TST_MQDISC , "MQDISC"),
/* 131*/ DEF_VALS2(TST_MQOPEN , "MQOPEN"),
/* 132*/ DEF_VALS2(TST_MQCLOSE , "MQCLOSE"),
/* 133*/ DEF_VALS2(TST_MQGET , "MQGET"),
/* 134*/ DEF_VALS2(TST_MQPUT , "MQPUT"),
/* 135*/ DEF_VALS2(TST_MQPUT1 , "MQPUT1"),
/* 136*/ DEF_VALS2(TST_MQSET , "MQSET"),
/* 137*/ DEF_VALS2(TST_MQINQ , "MQINQ"),
/* 138*/ DEF_VALS2(TST_MQCMIT , "MQCMIT"),
/* 139*/ DEF_VALS2(TST_MQBACK , "MQBACK"),
/* 140*/ DEF_VALS2(TST_SPI , "SPI"),
/* 141*/ DEF_VALS2(TST_MQSTAT , "MQSTAT"),
/* 142*/ DEF_VALS2(TST_MQSUB , "MQSUB"),
/* 143*/ DEF_VALS2(TST_MQSUBRQ , "MQSUBRQ"),
/* 145*/ DEF_VALS2(TST_MQCONN_REPLY , "MQCONN_REPLY"),
/* 146*/ DEF_VALS2(TST_MQDISC_REPLY , "MQDISC_REPLY"),
/* 147*/ DEF_VALS2(TST_MQOPEN_REPLY , "MQOPEN_REPLY"),
/* 148*/ DEF_VALS2(TST_MQCLOSE_REPLY , "MQCLOSE_REPLY"),
/* 149*/ DEF_VALS2(TST_MQGET_REPLY , "MQGET_REPLY"),
/* 150*/ DEF_VALS2(TST_MQPUT_REPLY , "MQPUT_REPLY"),
/* 151*/ DEF_VALS2(TST_MQPUT1_REPLY , "MQPUT1_REPLY"),
/* 152*/ DEF_VALS2(TST_MQSET_REPLY , "MQSET_REPLY"),
/* 153*/ DEF_VALS2(TST_MQINQ_REPLY , "MQINQ_REPLY"),
/* 154*/ DEF_VALS2(TST_MQCMIT_REPLY , "MQCMIT_REPLY"),
/* 155*/ DEF_VALS2(TST_MQBACK_REPLY , "MQBACK_REPLY"),
/* 156*/ DEF_VALS2(TST_SPI_REPLY , "SPI_REPLY"),
/* 157*/ DEF_VALS2(TST_MQSTAT_REPLY , "MQSTAT_REPLY"),
/* 158*/ DEF_VALS2(TST_MQSUB_REPLY , "MQSUB_REPLY"),
/* 159*/ DEF_VALS2(TST_MQSUBRQ_REPLY , "MQSUBRQ_REPLY"),
/* 161*/ DEF_VALS2(TST_XA_START , "XA_START"),
/* 162*/ DEF_VALS2(TST_XA_END , "XA_END"),
/* 163*/ DEF_VALS2(TST_XA_OPEN , "XA_OPEN"),
/* 164*/ DEF_VALS2(TST_XA_CLOSE , "XA_CLOSE"),
/* 165*/ DEF_VALS2(TST_XA_PREPARE , "XA_PREPARE"),
/* 166*/ DEF_VALS2(TST_XA_COMMIT , "XA_COMMIT"),
/* 167*/ DEF_VALS2(TST_XA_ROLLBACK , "XA_ROLLBACK"),
/* 168*/ DEF_VALS2(TST_XA_FORGET , "XA_FORGET"),
/* 169*/ DEF_VALS2(TST_XA_RECOVER , "XA_RECOVER"),
/* 170*/ DEF_VALS2(TST_XA_COMPLETE , "XA_COMPLETE"),
/* 177*/ DEF_VALS2(TST_XA_START_REPLY , "XA_START_REPLY"),
/* 178*/ DEF_VALS2(TST_XA_END_REPLY , "XA_END_REPLY"),
/* 179*/ DEF_VALS2(TST_XA_OPEN_REPLY , "XA_OPEN_REPLY"),
/* 180*/ DEF_VALS2(TST_XA_CLOSE_REPLY , "XA_CLOSE_REPLY"),
/* 181*/ DEF_VALS2(TST_XA_PREPARE_REPLY , "XA_PREPARE_REPLY"),
/* 182*/ DEF_VALS2(TST_XA_COMMIT_REPLY , "XA_COMMIT_REPLY"),
/* 183*/ DEF_VALS2(TST_XA_ROLLBACK_REPLY, "XA_ROLLBACK_REPLY"),
/* 184*/ DEF_VALS2(TST_XA_FORGET_REPLY , "XA_FORGET_REPLY"),
/* 185*/ DEF_VALS2(TST_XA_RECOVER_REPLY , "XA_RECOVER_REPLY"),
/* 186*/ DEF_VALS2(TST_XA_COMPLETE_REPLY, "XA_COMPLETE_REPLY"),
DEF_VALSE;
DEF_VALS_EXTB(opcode);
DEF_VALSB(xaer)
DEF_VALS2(XA_RBROLLBACK , "XA_RBROLLBACK"),
DEF_VALS2(XA_RBCOMMFAIL , "XA_RBCOMMFAIL"),
@ -1545,7 +1545,7 @@ DEF_VALSB(xaer)
DEF_VALS2(XAER_OUTSIDE , "XAER_OUTSIDE"),
DEF_VALSE;
DEF_VALSBX(StructID)
DEF_VALSB(StructID)
DEF_VALS2(STRUCTID_CAUT , MQ_TEXT_CAUT),
DEF_VALS2(STRUCTID_CIH , MQ_TEXT_CIH),
DEF_VALS2(STRUCTID_DH , MQ_TEXT_DH),
@ -3808,42 +3808,6 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
}
/*
function used to compare value_string when sorting the array
*/
static int _mq_vals_fncomp(const void *e1, const void *e2)
{
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
sort the array to improve the use of the bsearch type
*/
static void _try_mq_vals_sort(value_string_ext *pExt)
{
if (pExt->_vs_match2 == _try_val_to_str_ext_init)
{
qsort((void *)(value_string_ext *)pExt->_vs_p,
pExt->_vs_num_entries, sizeof(value_string), _mq_vals_fncomp);
}
}
static void _mq_sort_value_string_ext(void)
{
_try_mq_vals_sort(GET_VALS_EXTP(mqrc));
_try_mq_vals_sort(GET_VALS_EXTP(mqcmd));
_try_mq_vals_sort(GET_VALS_EXTP(PrmId));
_try_mq_vals_sort(GET_VALS_EXTP(selector));
_try_mq_vals_sort(GET_VALS_EXTP(MQCFINT_Parse));
_try_mq_vals_sort(GET_VALS_EXTP(mqat));
_try_mq_vals_sort(GET_VALS_EXTP(PrmTyp));
_try_mq_vals_sort(GET_VALS_EXTP(objtype));
_try_mq_vals_sort(GET_VALS_EXTP(StructID));
}
static int reassemble_mq(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
mq_parm_t mq_parm;
@ -4281,7 +4245,7 @@ void proto_register_mq(void)
{ &hf_mq_inq_nbsel , {"Selector count..", "mq.inq.nbsel", FT_UINT32, BASE_DEC, NULL, 0x0, "INQ Selector count", HFILL }},
{ &hf_mq_inq_nbint , {"Integer count...", "mq.inq.nbint", FT_UINT32, BASE_DEC, NULL, 0x0, "INQ Integer count", HFILL }},
{ &hf_mq_inq_charlen , {"Character length", "mq.inq.charlen", FT_UINT32, BASE_DEC, NULL, 0x0, "INQ Character length", HFILL }},
{ &hf_mq_inq_sel , {"Selector........", "mq.inq.sel", FT_UINT32, BASE_DEC, VALS(GET_VALSV(selector)), 0x0, "INQ Selector", HFILL }},
{ &hf_mq_inq_sel , {"Selector........", "mq.inq.sel", FT_UINT32, BASE_DEC | BASE_EXT_STRING, GET_VALS_EXTP(selector), 0x0, "INQ Selector", HFILL }},
{ &hf_mq_inq_intvalue , {"Integer value...", "mq.inq.intvalue", FT_UINT32, BASE_DEC, NULL, 0x0, "INQ Integer value", HFILL }},
{ &hf_mq_inq_charvalues, {"Char values.....", "mq.inq.charvalues", FT_STRINGZ, BASE_NONE, NULL, 0x0, "INQ Character values", HFILL }},
@ -4783,11 +4747,6 @@ void proto_register_mq(void)
module_t *mq_module;
/*
Sort value_string_exts
*/
_mq_sort_value_string_ext();
proto_mq = proto_register_protocol("WebSphere MQ", "MQ", "mq");
proto_register_field_array(proto_mq, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));

View File

@ -4876,29 +4876,14 @@ extern void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree
DEF_VALSX(mqcc);
DEF_VALSX(mqrc);
DEF_VALS_EXTX(mqrc);
DEF_VALSX(mqcmd);
DEF_VALS_EXTX(mqcmd);
DEF_VALSX(PrmId);
DEF_VALS_EXTX(PrmId);
DEF_VALSX(selector);
DEF_VALS_EXTX(selector);
DEF_VALSX(MQCFINT_Parse);
DEF_VALS_EXTX(MQCFINT_Parse);
DEF_VALSX(mqat);
DEF_VALS_EXTX(mqat);
DEF_VALSX(PrmTyp);
DEF_VALS_EXTX(PrmTyp);
DEF_VALSX(objtype);
DEF_VALS_EXTX(mqcmd);
DEF_VALS_EXTX(mqrc);
DEF_VALS_EXTX(objtype);
DEF_VALS_EXTX(PrmId);
DEF_VALS_EXTX(PrmTyp);
DEF_VALS_EXTX(selector);
DEF_VALS_EXTX(MQCFINT_Parse);
DEF_VALSX(CtlOpt);
DEF_VALSX(mqcft);