From 4af535f240fcd6804785aa473b800b021d453cb4 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Fri, 29 May 2015 18:30:26 +0200 Subject: update for usage with wireshark 1.12 --- src/isi-call.c | 3 +-- src/isi-commgr.c | 3 +-- src/isi-gpds.c | 7 +++---- src/isi-light.c | 3 +-- src/isi-mtc.c | 3 +-- src/isi-nameservice.c | 3 +-- src/isi-network.c | 8 ++++---- src/isi-phoneinfo.c | 15 +++++++-------- src/isi-pipe.c | 5 ++--- src/isi-radiosettings.c | 3 +-- src/isi-selftest.c | 21 ++++++++++----------- src/isi-sim.c | 1 - src/packet-isi.c | 26 ++++++++++++++------------ src/packet-isi.h | 4 ++++ 14 files changed, 50 insertions(+), 55 deletions(-) diff --git a/src/isi-call.c b/src/isi-call.c index 3e289a8..98a4839 100644 --- a/src/isi-call.c +++ b/src/isi-call.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "packet-isi.h" #include "isi-call.h" @@ -680,7 +679,7 @@ static void dissect_isi_call(tvbuff_t *tvb, packet_info *pinfo, proto_item *isit break; default: col_set_str(pinfo->cinfo, COL_INFO, "unhandled Call packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-commgr.c b/src/isi-commgr.c index ef7cd92..c28245d 100644 --- a/src/isi-commgr.c +++ b/src/isi-commgr.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "packet-isi.h" #include "isi-commgr.h" @@ -107,7 +106,7 @@ static void dissect_isi_commgr(tvbuff_t *tvb, packet_info *pinfo, proto_item *is default: col_set_str(pinfo->cinfo, COL_INFO, "unknown Indication packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-gpds.c b/src/isi-gpds.c index 02e7400..ef6cfba 100644 --- a/src/isi-gpds.c +++ b/src/isi-gpds.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "packet-isi.h" #include "isi-gpds.h" @@ -684,7 +683,7 @@ static void _sub_gpds_qos_neg_info(tvbuff_t *tvb, proto_tree *tree) { static void _sub_gpds_string(guint32 hf, guint8 offset, tvbuff_t *tvb, proto_tree *tree) { guint8 l = tvb_get_guint8(tvb, offset); - proto_tree_add_string(tree, hf, tvb, offset+1, l, tvb_memdup(tvb, offset+1, l)); + proto_tree_add_string(tree, hf, tvb, offset+1, l, tvb_memdup(NULL, tvb, offset+1, l)); } static void _sub_gpds_dns_address_req_info(tvbuff_t *tvb, proto_tree *tree) { @@ -762,7 +761,7 @@ static void dissect_isi_gpds_subblock(guint8 sptype, tvbuff_t *tvb, packet_info case 0xFB: /* GPDS_SHARED_MBMS_SERVICE_LIST_INFO */ case 0xFC: /* GPDS_SHARED_INITIAL_DL_DCH_RATE */ default: - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported subblock"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported subblock"); break; } } @@ -956,7 +955,7 @@ static void dissect_isi_gpds(tvbuff_t *tvb, packet_info *pinfo, proto_item *isit case 0xEE: /* GPDS_RESP */ default: col_set_str(pinfo->cinfo, COL_INFO, "unhandled GPDS packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-light.c b/src/isi-light.c index 5b0f16e..212355e 100644 --- a/src/isi-light.c +++ b/src/isi-light.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "packet-isi.h" #include "isi-light.h" @@ -131,7 +130,7 @@ static void dissect_isi_light(tvbuff_t *tvb, packet_info *pinfo, proto_item *isi switch (cmd) { default: col_set_str(pinfo->cinfo, COL_INFO, "unknown Light packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-mtc.c b/src/isi-mtc.c index abaefee..4306ffa 100644 --- a/src/isi-mtc.c +++ b/src/isi-mtc.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "packet-isi.h" #include "isi-mtc.h" @@ -527,7 +526,7 @@ static void dissect_isi_mtc(tvbuff_t *tvb, packet_info *pinfo, proto_item *isitr break; default: col_set_str(pinfo->cinfo, COL_INFO, "unknown MTC packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-nameservice.c b/src/isi-nameservice.c index 7a9b6ec..53367b8 100644 --- a/src/isi-nameservice.c +++ b/src/isi-nameservice.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "packet-isi.h" #include "isi-nameservice.h" @@ -168,7 +167,7 @@ static void dissect_isi_nameservice(tvbuff_t *tvb, packet_info *pinfo, proto_ite default: col_set_str(pinfo->cinfo, COL_INFO, "unknown Nameservice packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-network.c b/src/isi-network.c index 579d097..3462d58 100644 --- a/src/isi-network.c +++ b/src/isi-network.c @@ -20,9 +20,9 @@ #endif #include +#include #include #include -#include #include "packet-isi.h" #include "isi-network.h" @@ -526,7 +526,7 @@ static void _sub_gsm_reg_network_info(tvbuff_t *tvb, proto_tree *tree) { guint8 l = tvb_get_guint8(tvb, 5); proto_tree_add_item(tree, hf_isi_network_name_type, tvb, 2, 1, FALSE); proto_tree_add_item(tree, hf_isi_network_country_initials, tvb, 3, 1, FALSE); - char *utf16 = tvb_memdup(tvb, 6, l*2); + char *utf16 = tvb_memdup(NULL, tvb, 6, l*2); char *ascii = utf16_to_ascii(utf16, l); proto_tree_add_string(tree, hf_isi_network_status_sub_msg, tvb, 6, l*2, ascii); } @@ -587,7 +587,7 @@ static void dissect_isi_network_subpacket(guint8 sptype, tvbuff_t *tvb, packet_i case 0xE7: /* NET_OPER_NAME_INFO */ default: //proto_tree_add_item(tree, hf_isi_network_data_sub_type, tvb, - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } @@ -821,7 +821,7 @@ static void dissect_isi_network(tvbuff_t *tvb, packet_info *pinfo, proto_item *i break; default: col_set_str(pinfo->cinfo, COL_INFO, "unknown Network packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-phoneinfo.c b/src/isi-phoneinfo.c index 30271f2..c689d58 100644 --- a/src/isi-phoneinfo.c +++ b/src/isi-phoneinfo.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "packet-isi.h" #include "isi-phoneinfo.h" @@ -311,7 +310,7 @@ void proto_register_isi_phoneinfo(void) { static void _sub_sb_string(tvbuff_t *tvb, proto_tree *tree, guint8 offset, guint32 hf) { guint8 l = tvb_get_guint8(tvb, offset); - proto_tree_add_string(tree, hf, tvb, offset+1, l, tvb_memdup(tvb, offset+1, l)); + proto_tree_add_string(tree, hf, tvb, offset+1, l, tvb_memdup(NULL, tvb, offset+1, l)); } @@ -325,7 +324,7 @@ static void dissect_isi_phoneinfo_subpacket_wt(guint8 sptype, tvbuff_t *tvb, pac case 0x06: /* INFO_SB_WT_WIS */ case 0x07: /* INFO_SB_WT_RPF */ default: - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported subblock (wt)"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported subblock (wt)"); break; } } @@ -337,7 +336,7 @@ static void dissect_isi_phoneinfo_subpacket_cs(guint8 sptype, tvbuff_t *tvb, pac case 0x02: /* INFO_SB_PRODUCT_TYPE_HW_INFO */ case 0x03: /* INFO_SB_PRODUCT_TYPE_CS_SEC */ default: - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported subblock (cs)"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported subblock (cs)"); break; } } @@ -360,7 +359,7 @@ static void dissect_isi_phoneinfo_subpacket_product(guint8 sptype, tvbuff_t *tvb case 0x0E: /* INFO_SB_USB_SICD_ID */ case 0x10: /* INFO_SB_USB_RNDIS_ID */ default: - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported subblock (product)"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported subblock (product)"); break; } } @@ -371,7 +370,7 @@ static void dissect_isi_phoneinfo_subpacket_bt(guint8 sptype, tvbuff_t *tvb, pac case 0x02: /* INFO_SB_BT_ID_SEC */ case 0x0F: /* INFO_SB_BT_PID */ default: - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported subblock (bt)"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported subblock (bt)"); break; } } @@ -451,7 +450,7 @@ static void dissect_isi_phoneinfo_subpacket(guint8 sptype, tvbuff_t *tvb, packet case 0xA8: /* INFO_SB_ACCELEROMETER_VERSION */ //case 0xF000: /* INFO_SB_RAT_BAND_INFO */ default: - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported subblock"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported subblock"); break; } } @@ -548,7 +547,7 @@ static void dissect_isi_phoneinfo(tvbuff_t *tvb, packet_info *pinfo, proto_item case 0x31: /* INFO_PRODUCT_RAT_BAND_WRITE_RESP */ default: col_set_str(pinfo->cinfo, COL_INFO, "unknown PhoneInfo packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-pipe.c b/src/isi-pipe.c index bd85215..6c2ae8a 100644 --- a/src/isi-pipe.c +++ b/src/isi-pipe.c @@ -24,7 +24,6 @@ #include #include #include -#include #include "packet-isi.h" #include "isi-pipe.h" @@ -220,7 +219,7 @@ static void dissect_isi_pipe_subblock(guint8 sptype, tvbuff_t *tvb, packet_info case 0x04: /* PN_PIPE_SB_REQUIRED_FC_TX */ case 0x05: /* PN_PIPE_SB_PREFERRED_FC_RX */ default: - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported subblock"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported subblock"); break; } } @@ -335,7 +334,7 @@ static void dissect_isi_pipe(tvbuff_t *tvb, packet_info *pinfo, proto_item *isit case 0x4D: /* PNS_PEP_DISABLE_RESP */ default: col_set_str(pinfo->cinfo, COL_INFO, "unhandled Pipe packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-radiosettings.c b/src/isi-radiosettings.c index 4701a3a..e8ec36b 100644 --- a/src/isi-radiosettings.c +++ b/src/isi-radiosettings.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "packet-isi.h" #include "isi-radiosettings.h" @@ -78,7 +77,7 @@ static void dissect_isi_radiosettings(tvbuff_t *tvb, packet_info *pinfo, proto_i default: col_set_str(pinfo->cinfo, COL_INFO, "unknown Radio Settings packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-selftest.c b/src/isi-selftest.c index 1905054..fd68a97 100644 --- a/src/isi-selftest.c +++ b/src/isi-selftest.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "packet-isi.h" #include "isi-selftest.h" @@ -301,7 +300,7 @@ static void dissect_isi_selftest_subblock(guint8 sptype, tvbuff_t *tvb, packet_i case 0x05: /* ST_SB_TVOUT_PATTERN */ default: - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } @@ -341,35 +340,35 @@ static void dissect_isi_selftest(tvbuff_t *tvb, packet_info *pinfo, proto_item * break; case 0x04: /* ST_SELFTEST_LIST_GET_REQ */ col_set_str(pinfo->cinfo, COL_INFO, "Selftest List Get Request"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; case 0x05: /* ST_SELFTEST_LIST_GET_RESP */ col_set_str(pinfo->cinfo, COL_INFO, "Selftest List Get Response"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; case 0x06: /* ST_SELFTEST_NAMES_GET_REQ */ col_set_str(pinfo->cinfo, COL_INFO, "Selftest Names Get Request"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; case 0x07: /* ST_SELFTEST_NAMES_GET_RESP */ col_set_str(pinfo->cinfo, COL_INFO, "Selftest Names Get Response"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; case 0x08: /* ST_DETAILED_RESULTS_GET_REQ */ col_set_str(pinfo->cinfo, COL_INFO, "Selftest Detailed Results Get Request"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; case 0x09: /* ST_DETAILED_RESULTS_GET_RESP */ col_set_str(pinfo->cinfo, COL_INFO, "Selftest Detailed Results Get Response"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; case 0x0A: /* ST_PRODUCT_TEST_REQ */ col_set_str(pinfo->cinfo, COL_INFO, "Selftest Product Test Request"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; case 0x0B: /* ST_PRODUCT_TEST_RESP */ col_set_str(pinfo->cinfo, COL_INFO, "Selftest Product Test Response"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; case 0xF0: /* COMMON_MESSAGE */ @@ -377,7 +376,7 @@ static void dissect_isi_selftest(tvbuff_t *tvb, packet_info *pinfo, proto_item * break; default: col_set_str(pinfo->cinfo, COL_INFO, "unhandled Selftest packet"); - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } } diff --git a/src/isi-sim.c b/src/isi-sim.c index ccbda76..d135302 100644 --- a/src/isi-sim.c +++ b/src/isi-sim.c @@ -25,7 +25,6 @@ #include #include -#include #include "packet-isi.h" #include "isi-sim.h" diff --git a/src/packet-isi.c b/src/packet-isi.c index e86b429..07b0b31 100644 --- a/src/packet-isi.c +++ b/src/packet-isi.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "handler.h" #include "packet-isi.h" @@ -330,6 +329,8 @@ gint32 ett_isi_network_gsm_band_info = -1; gint32 ett_isi_nameservice_entry = -1; gint32 ett_isi_info = -1; +expert_field ei_isi_unknown_packet = EI_INIT; + #ifdef ISI_USB /* Experimental approach based upon the one used for PPP*/ static gboolean dissect_usb_isi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -413,6 +414,10 @@ void proto_register_isi(void) { { "Subpacket Length", "isi.sub.length", FT_UINT8, BASE_DEC, NULL, 0x0, "Subpacket Length", HFILL }}, }; + static ei_register_info ei[] = { + { &ei_isi_unknown_packet, { "isi.unknown.packet", PI_UNDECODED, PI_WARN, "Unknown packet", EXPFILL }}, + }; + static gint *ett[] = { &ett_isi, &ett_isi_msg, @@ -421,8 +426,13 @@ void proto_register_isi(void) { &ett_isi_info, }; + expert_module_t* expert_isi; + proto_isi = proto_register_protocol("Intelligent Service Interface", "ISI", "isi"); + expert_isi = expert_register_protocol(proto_isi); + expert_register_field_array(expert_isi, ei, array_length(ei)); + proto_register_field_array(proto_isi, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); register_dissector("isi", dissect_isi, proto_isi); @@ -492,11 +502,8 @@ static void dissect_isi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { guint8 resource = 0; guint16 length = 0; - if(check_col(pinfo->cinfo, COL_PROTOCOL)) - col_set_str(pinfo->cinfo, COL_PROTOCOL, "ISI"); - - if(check_col(pinfo->cinfo,COL_INFO)) - col_clear(pinfo->cinfo,COL_INFO); + col_set_str(pinfo->cinfo, COL_PROTOCOL, "ISI"); + col_clear(pinfo->cinfo,COL_INFO); if(tree) { /* If tree != NULL, we're doing a detailed dissection of the @@ -520,11 +527,6 @@ static void dissect_isi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { dst = tvb_get_guint8(tvb, 0); src = tvb_get_guint8(tvb, 1); - if(tvb_length(tvb) - 8 < length) { - expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "Broken Length (%d > %d)", length, tvb_length(tvb)-8); - length = tvb_length(tvb) - 8; - } - col_set_str(pinfo->cinfo, COL_DEF_SRC, val_to_str_const(src, hf_isi_device, "Unknown")); col_set_str(pinfo->cinfo, COL_DEF_DST, val_to_str_const(dst, hf_isi_device, "Unknown")); @@ -608,7 +610,7 @@ void dissect_isi_common(const char *resource, tvbuff_t *tvb, packet_info *pinfo, c_subcmd = "Service Not Authenticated Response"; break; default: - //expert_add_info_format(pinfo, item, PI_PROTOCOL, PI_WARN, "unsupported packet"); + //expert_add_info_format(pinfo, item, &ei_isi_unknown_packet, "unsupported packet"); break; } diff --git a/src/packet-isi.h b/src/packet-isi.h index 9cdfb34..fba7569 100644 --- a/src/packet-isi.h +++ b/src/packet-isi.h @@ -1,6 +1,8 @@ #ifndef _PACKET_ISI_H #define _PACKET_ISI_H +#include + /* Wireshark ID of the protocol */ extern int proto_isi; @@ -14,4 +16,6 @@ extern gint32 hf_isi_res; void dissect_isi_common(const char *resource, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); void dissect_isi_subpacket(gint32 hf_sub_type, guint8 offset, tvbuff_t *tvb, packet_info *pinfo, proto_item *item, proto_tree *tree, void (*detail_cb)(guint8, tvbuff_t*, packet_info*, proto_item*, proto_tree*)); +extern expert_field ei_isi_unknown_packet; + #endif -- cgit v1.2.3