Batch of filterable expert infos
svn path=/trunk/; revision=49600
This commit is contained in:
parent
0ee4d0a00a
commit
b0090fd046
|
@ -220,6 +220,12 @@ static gint ett_pcp_text_ident = -1;
|
|||
static gint ett_pcp_text_buflen = -1;
|
||||
static gint ett_pcp_text_buffer = -1;
|
||||
|
||||
static expert_field ei_pcp_type_event_unimplemented = EI_INIT;
|
||||
static expert_field ei_pcp_type_nosupport_unsupported = EI_INIT;
|
||||
static expert_field ei_pcp_type_unknown_unknown_value = EI_INIT;
|
||||
static expert_field ei_pcp_unimplemented_value = EI_INIT;
|
||||
static expert_field ei_pcp_unimplemented_packet_type = EI_INIT;
|
||||
|
||||
/* packet types */
|
||||
static const value_string packettypenames[] = {
|
||||
#define START_OR_ERROR 0x7000
|
||||
|
@ -985,20 +991,16 @@ static int dissect_pcp_message_result(tvbuff_t *tvb, packet_info *pinfo, proto_t
|
|||
pmvalueblock_offset, pmvalueblock_value_length-4, ENC_NA);
|
||||
break;
|
||||
case PM_TYPE_EVENT:
|
||||
expert_add_info_format(pinfo, pcp_result_instance_tree, PI_UNDECODED, PI_WARN,
|
||||
"PM_TYPE_EVENT: Unimplemented Value Type");
|
||||
expert_add_info(pinfo, pcp_result_instance_tree, &ei_pcp_type_event_unimplemented);
|
||||
break;
|
||||
case PM_TYPE_NOSUPPORT:
|
||||
expert_add_info_format(pinfo, pcp_result_instance_tree, PI_UNDECODED, PI_WARN,
|
||||
"PM_TYPE_NOSUPPORT: Unsupported Value Type");
|
||||
expert_add_info(pinfo, pcp_result_instance_tree, &ei_pcp_type_nosupport_unsupported);
|
||||
break;
|
||||
case PM_TYPE_UNKNOWN:
|
||||
expert_add_info_format(pinfo, pcp_result_instance_tree, PI_UNDECODED,
|
||||
PI_WARN, "PM_TYPE_UNKNOWN: Unknown Value Type");
|
||||
expert_add_info(pinfo, pcp_result_instance_tree, &ei_pcp_type_unknown_unknown_value);
|
||||
break;
|
||||
default:
|
||||
expert_add_info_format(pinfo, pcp_result_instance_tree, PI_UNDECODED, PI_WARN,
|
||||
"Unimplemented Value Type");
|
||||
expert_add_info(pinfo, pcp_result_instance_tree, &ei_pcp_unimplemented_value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1479,7 +1481,7 @@ static void dissect_pcp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
|
|||
/* append the type of packet */
|
||||
col_append_str(pinfo->cinfo, COL_INFO, "[UNIMPLEMENTED TYPE]");
|
||||
/* if we got here, then we didn't get a packet type that we know of */
|
||||
expert_add_info_format(pinfo, pcp_tree, PI_UNDECODED, PI_WARN, "Unimplemented Packet Type");
|
||||
expert_add_info(pinfo, pcp_tree, &ei_pcp_unimplemented_packet_type);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2235,6 +2237,19 @@ void proto_register_pcp(void)
|
|||
&ett_pcp_text_buffer,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_pcp_type_event_unimplemented, { "pcp.pmid.type.event.unimplemented", PI_UNDECODED, PI_WARN, "PM_TYPE_EVENT: Unimplemented Value Type", EXPFILL }},
|
||||
{ &ei_pcp_type_nosupport_unsupported, { "pcp.pmid.type.nosupport.unsupported", PI_UNDECODED, PI_WARN, "PM_TYPE_NOSUPPORT: Unsupported Value Type", EXPFILL }},
|
||||
{ &ei_pcp_type_unknown_unknown_value, { "pcp.pmid.type.unknown.unknown_value", PI_UNDECODED, PI_WARN, "PM_TYPE_UNKNOWN: Unknown Value Type", EXPFILL }},
|
||||
{ &ei_pcp_unimplemented_value, { "pcp.pmid.type.unimplemented", PI_UNDECODED, PI_WARN, "Unimplemented Value Type", EXPFILL }},
|
||||
{ &ei_pcp_unimplemented_packet_type, { "pcp.type.unimplemented", PI_UNDECODED, PI_WARN, "Unimplemented Packet Type", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_pcp;
|
||||
|
||||
expert_pcp = expert_register_protocol(proto_pcp);
|
||||
expert_register_field_array(expert_pcp, ei, array_length(ei));
|
||||
|
||||
proto_pcp = proto_register_protocol("Performance Co-Pilot", "PCP", "pcp");
|
||||
|
||||
proto_register_field_array(proto_pcp, hf, array_length(hf));
|
||||
|
|
|
@ -70,6 +70,8 @@ static int hf_pflog_sport = -1;
|
|||
static int hf_pflog_dport = -1;
|
||||
static gint ett_pflog = -1;
|
||||
|
||||
static expert_field ei_pflog_invalid_header_length = EI_INIT;
|
||||
|
||||
/* old header */
|
||||
static int proto_old_pflog = -1;
|
||||
static int hf_old_pflog_af = -1;
|
||||
|
@ -176,7 +178,7 @@ dissect_pflog(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
ti_len = proto_tree_add_item(pflog_tree, hf_pflog_length, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
if(length < LEN_PFLOG_BSD34)
|
||||
{
|
||||
expert_add_info_format(pinfo, ti_len, PI_MALFORMED, PI_ERROR, "Invalid header length %u", length);
|
||||
expert_add_info_format_text(pinfo, ti_len, &ei_pflog_invalid_header_length, "Invalid header length %u", length);
|
||||
}
|
||||
|
||||
offset += 1;
|
||||
|
@ -381,10 +383,18 @@ proto_register_pflog(void)
|
|||
};
|
||||
static gint *ett[] = { &ett_pflog };
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_pflog_invalid_header_length, { "pflog.invalid_header_length", PI_MALFORMED, PI_ERROR, "Invalid header length ", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_pflog;
|
||||
|
||||
proto_pflog = proto_register_protocol("OpenBSD Packet Filter log file",
|
||||
"PFLOG", "pflog");
|
||||
proto_register_field_array(proto_pflog, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_pflog = expert_register_protocol(proto_pflog);
|
||||
expert_register_field_array(expert_pflog, ei, array_length(ei));
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -85,6 +85,8 @@ static int hf_pptp_receive_accm = -1;
|
|||
|
||||
static gint ett_pptp = -1;
|
||||
|
||||
static expert_field ei_pptp_incorrect_magic_cookie = EI_INIT;
|
||||
|
||||
static dissector_handle_t data_handle;
|
||||
|
||||
#define TCP_PORT_PPTP 1723
|
||||
|
@ -621,7 +623,7 @@ dissect_pptp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
proto_item_append_text(item," (correct)");
|
||||
else {
|
||||
proto_item_append_text(item," (incorrect)");
|
||||
expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN, "Incorrect Magic Cookie");
|
||||
expert_add_info(pinfo, item, &ei_pptp_incorrect_magic_cookie);
|
||||
}
|
||||
|
||||
if (tree) {
|
||||
|
@ -940,10 +942,18 @@ proto_register_pptp(void)
|
|||
},
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_pptp_incorrect_magic_cookie, { "pptp.magic_cookie.incorrect", PI_PROTOCOL, PI_WARN, "Incorrect Magic Cookie", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_pptp;
|
||||
|
||||
proto_pptp = proto_register_protocol("Point-to-Point Tunnelling Protocol",
|
||||
"PPTP", "pptp");
|
||||
proto_register_field_array(proto_pptp, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_pptp = expert_register_protocol(proto_pptp);
|
||||
expert_register_field_array(expert_pptp, ei, array_length(ei));
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -74,6 +74,7 @@ static gint ett_reload_framing = -1;
|
|||
static gint ett_reload_framing_message = -1;
|
||||
static gint ett_reload_framing_received = -1;
|
||||
|
||||
static expert_field ei_reload_no_dissector = EI_INIT;
|
||||
|
||||
#define UDP_PORT_RELOAD 6084
|
||||
#define TCP_PORT_RELOAD 6084
|
||||
|
@ -329,7 +330,7 @@ dissect_reload_framing_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
|
|||
proto_tree_add_item(message_tree, hf_reload_framing_message_data, tvb, offset, message_length, ENC_NA);
|
||||
next_tvb = tvb_new_subset(tvb, offset, effective_length - offset, message_length);
|
||||
if (reload_handle == NULL) {
|
||||
expert_add_info_format(pinfo, ti, PI_PROTOCOL, PI_WARN, "Can not find reload dissector");
|
||||
expert_add_info(pinfo, ti, &ei_reload_no_dissector);
|
||||
return tvb_length(tvb);
|
||||
}
|
||||
call_dissector_only(reload_handle, next_tvb, pinfo, tree, NULL);
|
||||
|
@ -538,12 +539,20 @@ proto_register_reload_framing(void)
|
|||
&ett_reload_framing_received,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_reload_no_dissector, { "reload_framing.no_dissector", PI_PROTOCOL, PI_WARN, "Can not find reload dissector", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_reload_framing;
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_reload_framing = proto_register_protocol("REsource LOcation And Discovery Framing", "RELOAD FRAMING", "reload-framing");
|
||||
|
||||
/* Required function calls to register the header fields and subtrees used */
|
||||
proto_register_field_array(proto_reload_framing, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_reload_framing = expert_register_protocol(proto_reload_framing);
|
||||
expert_register_field_array(expert_reload_framing, ei, array_length(ei));
|
||||
|
||||
register_dissector("reload-framing", dissect_reload_framing_message_no_return, proto_reload_framing);
|
||||
|
||||
|
|
|
@ -58,6 +58,8 @@ static int hf_payload = -1;
|
|||
|
||||
static int ett_main = -1;
|
||||
|
||||
static expert_field ei_version1_only = EI_INIT;
|
||||
|
||||
static dissector_handle_t xml_handle;
|
||||
static dissector_handle_t rmt_lct_handle;
|
||||
static dissector_handle_t rmt_fec_handle;
|
||||
|
@ -106,7 +108,7 @@ dissect_alc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
* If version > 1 print only version field and quit.
|
||||
*/
|
||||
if (version != 1) {
|
||||
expert_add_info_format(pinfo, ti, PI_PROTOCOL, PI_WARN, "Sorry, this dissector supports ALC version 1 only");
|
||||
expert_add_info(pinfo, ti, &ei_version1_only);
|
||||
|
||||
/* Complete entry in Info column on summary display */
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "Version: %u (not supported)", version);
|
||||
|
@ -202,7 +204,12 @@ void proto_register_alc(void)
|
|||
&ett_main,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_version1_only, { "alc.version1_only", PI_PROTOCOL, PI_WARN, "Sorry, this dissector supports ALC version 1 only", EXPFILL }},
|
||||
};
|
||||
|
||||
module_t *module;
|
||||
expert_module_t* expert_rmt_alc;
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_rmt_alc = proto_register_protocol("Asynchronous Layered Coding", "ALC", "alc");
|
||||
|
@ -211,6 +218,8 @@ void proto_register_alc(void)
|
|||
/* Register the header fields and subtrees used */
|
||||
proto_register_field_array(proto_rmt_alc, hf_ptr, array_length(hf_ptr));
|
||||
proto_register_subtree_array(ett_ptr, array_length(ett_ptr));
|
||||
expert_rmt_alc = expert_register_protocol(proto_rmt_alc);
|
||||
expert_register_field_array(expert_rmt_alc, ei, array_length(ei));
|
||||
|
||||
/* Register preferences */
|
||||
module = prefs_register_protocol(proto_rmt_alc, proto_reg_handoff_alc);
|
||||
|
|
|
@ -67,6 +67,8 @@ static int hf_fti_alignment = -1;
|
|||
|
||||
static int ett_main = -1;
|
||||
|
||||
static expert_field ei_fec_encoding_id = EI_INIT;
|
||||
|
||||
typedef struct fec_packet_data
|
||||
{
|
||||
guint8 instance_id;
|
||||
|
@ -131,7 +133,7 @@ void fec_decode_ext_fti(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
|
|||
proto_tree_add_uint64(tree, hf_fti_transfer_length, tvb, offset+2, 6, transfer_length);
|
||||
ti = proto_tree_add_item(tree, hf_instance_id, tvb, offset+8, 2, ENC_BIG_ENDIAN);
|
||||
if ((encoding_id < 128) && (instance_id != 0)) {
|
||||
expert_add_info_format(pinfo, ti, PI_PROTOCOL, PI_WARN, "FEC Encoding ID < 128, should be zero");
|
||||
expert_add_info(pinfo, ti, &ei_fec_encoding_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -307,6 +309,12 @@ void proto_register_rmt_fec(void)
|
|||
&ett_main,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_fec_encoding_id, { "rmt-fec.encoding_id.not0", PI_PROTOCOL, PI_WARN, "FEC Encoding ID < 128, should be zero", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_rmt_fec;
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_rmt_fec = proto_register_protocol("Forward Error Correction (FEC)", "RMT-FEC", "rmt-fec");
|
||||
new_register_dissector("rmt-fec", dissect_fec, proto_rmt_fec);
|
||||
|
@ -314,6 +322,8 @@ void proto_register_rmt_fec(void)
|
|||
/* Required function calls to register the header fields and subtrees used */
|
||||
proto_register_field_array(proto_rmt_fec, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_rmt_fec = expert_register_protocol(proto_rmt_fec);
|
||||
expert_register_field_array(expert_rmt_fec, ei, array_length(ei));
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -207,6 +207,7 @@ static int ett_streampayload = -1;
|
|||
static int ett_congestioncontrol = -1;
|
||||
static int ett_nackdata = -1;
|
||||
|
||||
static expert_field ei_version1_only = EI_INIT;
|
||||
|
||||
static const double RTT_MIN = 1.0e-06;
|
||||
static const double RTT_MAX = 1000;
|
||||
|
@ -600,7 +601,7 @@ dissect_norm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
|
|||
* If version > 1 print only version field and quit.
|
||||
*/
|
||||
if (version != 1) {
|
||||
expert_add_info_format(pinfo, ti, PI_PROTOCOL, PI_WARN, "Sorry, this dissector supports ALC version 1 only");
|
||||
expert_add_info(pinfo, ti, &ei_version1_only);
|
||||
|
||||
/* Complete entry in Info column on summary display */
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "Version: %u (not supported)", version);
|
||||
|
@ -816,7 +817,12 @@ void proto_register_norm(void)
|
|||
&ett_nackdata,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_version1_only, { "alc.version1_only", PI_PROTOCOL, PI_WARN, "Sorry, this dissector supports ALC version 1 only", EXPFILL }},
|
||||
};
|
||||
|
||||
module_t *module;
|
||||
expert_module_t* expert_rmt_norm;
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_rmt_norm = proto_register_protocol("Negative-acknowledgment Oriented Reliable Multicast", "NORM", "norm");
|
||||
|
@ -824,6 +830,8 @@ void proto_register_norm(void)
|
|||
/* Register the header fields and subtrees used */
|
||||
proto_register_field_array(proto_rmt_norm, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_rmt_norm = expert_register_protocol(proto_rmt_norm);
|
||||
expert_register_field_array(expert_rmt_norm, ei, array_length(ei));
|
||||
|
||||
|
||||
/* Register preferences */
|
||||
|
|
|
@ -104,6 +104,8 @@ static int hf_roofnet_link_dst = -1;
|
|||
static gint ett_roofnet = -1;
|
||||
static gint ett_roofnet_link = -1;
|
||||
|
||||
static expert_field ei_rooftop_too_many_links = EI_INIT;
|
||||
|
||||
/*
|
||||
* dissect the header of roofnet
|
||||
*/
|
||||
|
@ -224,9 +226,7 @@ static void dissect_roofnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
roofnet_nlinks= tvb_get_guint8(tvb, ROOFNET_OFFSET_NLINKS);
|
||||
/* Check that we do not have a malformed roofnet packet */
|
||||
if ((roofnet_nlinks*6*4)+ROOFNET_HEADER_LENGTH > ROOFNET_MAX_LENGTH) {
|
||||
if (tree) {
|
||||
expert_add_info_format(pinfo, it, PI_MALFORMED, PI_ERROR, "Too many links (%u)\n", roofnet_nlinks);
|
||||
}
|
||||
expert_add_info_format_text(pinfo, it, &ei_rooftop_too_many_links, "Too many links (%u)\n", roofnet_nlinks);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -338,6 +338,12 @@ void proto_register_roofnet(void)
|
|||
&ett_roofnet_link
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_rooftop_too_many_links, { "rooftop.too_many_links", PI_MALFORMED, PI_ERROR, "Too many links", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_roofnet;
|
||||
|
||||
proto_roofnet = proto_register_protocol(
|
||||
"Roofnet Protocol", /* Name */
|
||||
"Roofnet", /* Short Name */
|
||||
|
@ -346,6 +352,8 @@ void proto_register_roofnet(void)
|
|||
|
||||
proto_register_field_array(proto_roofnet, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_roofnet = expert_register_protocol(proto_roofnet);
|
||||
expert_register_field_array(expert_roofnet, ei, array_length(ei));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -208,6 +208,8 @@ static gint ett_sasp_weight_entry_data_comp = -1;
|
|||
static gint ett_wt_entry_data_flag = -1;
|
||||
static gint ett_sasp_wt_rep = -1;
|
||||
|
||||
static expert_field ei_msg_type_invalid = EI_INIT;
|
||||
|
||||
/* desegmentation of SASP over TCP */
|
||||
static gboolean sasp_desegment = TRUE;
|
||||
|
||||
|
@ -384,7 +386,7 @@ dissect_sasp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
hti = proto_tree_add_uint_format(sasp_tree, hf_sasp_type, tvb, offset, 2, hdr_type,
|
||||
"Type: %s", (hdr_type == SASP_HDR_TYPE) ? "SASP" : "[Invalid]");
|
||||
if (hdr_type != SASP_HDR_TYPE) {
|
||||
expert_add_info_format(pinfo, hti, PI_MALFORMED, PI_ERROR,
|
||||
expert_add_info_format_text(pinfo, hti, &ei_msg_type_invalid,
|
||||
"Invalid SASP Header Type [0x%04x]", hdr_type);
|
||||
/* XXX: The folowing should actually happen automatically ? */
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "[Malformed: Invalid SASP Header Type]");
|
||||
|
@ -502,7 +504,7 @@ dissect_sasp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
/* Unknown SASP Message Type */
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"[Malformed: Unknown Message Type [0x%04x]", msg_type);
|
||||
expert_add_info_format(pinfo, mti, PI_MALFORMED, PI_WARN,
|
||||
expert_add_info_format_text(pinfo, mti, &ei_msg_type_invalid,
|
||||
"Unknown SASP Message Type: 0x%4x", msg_type);
|
||||
return;
|
||||
}
|
||||
|
@ -1705,12 +1707,19 @@ void proto_register_sasp(void)
|
|||
&ett_sasp_wt_rep,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_msg_type_invalid, { "sasp.msg.type.invalid", PI_PROTOCOL, PI_WARN, "Invalid Type", EXPFILL }},
|
||||
};
|
||||
|
||||
module_t *sasp_module;
|
||||
expert_module_t* expert_sasp;
|
||||
|
||||
proto_sasp = proto_register_protocol("Server/Application State Protocol", "SASP", "sasp");
|
||||
|
||||
proto_register_field_array(proto_sasp, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_sasp = expert_register_protocol(proto_sasp);
|
||||
expert_register_field_array(expert_sasp, ei, array_length(ei));
|
||||
|
||||
sasp_module = prefs_register_protocol(proto_sasp, NULL);
|
||||
prefs_register_bool_preference(sasp_module, "desegment_sasp_messages",
|
||||
|
|
|
@ -60,6 +60,8 @@ static int hf_sbc_data = -1;
|
|||
static gint ett_sbc = -1;
|
||||
static gint ett_sbc_list = -1;
|
||||
|
||||
static expert_field ei_sbc_syncword = EI_INIT;
|
||||
|
||||
static dissector_handle_t data_handle;
|
||||
|
||||
extern value_string_ext media_codec_audio_type_vals_ext;
|
||||
|
@ -192,8 +194,7 @@ dissect_sbc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
pitem = proto_tree_add_item(rtree, hf_sbc_syncword, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
syncword = tvb_get_guint8(tvb, offset);
|
||||
if (syncword != 0x9C) {
|
||||
expert_add_info_format(pinfo, pitem, PI_PROTOCOL, PI_WARN,
|
||||
"Unexpected syncword");
|
||||
expert_add_info(pinfo, pitem, &ei_sbc_syncword);
|
||||
}
|
||||
offset += 1;
|
||||
|
||||
|
@ -232,6 +233,7 @@ void
|
|||
proto_register_sbc(void)
|
||||
{
|
||||
module_t *module;
|
||||
expert_module_t* expert_sbc;
|
||||
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_sbc_fragmented,
|
||||
|
@ -312,10 +314,16 @@ proto_register_sbc(void)
|
|||
&ett_sbc_list,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_sbc_syncword, { "sbc.syncword.unexpected", PI_PROTOCOL, PI_WARN, "Unexpected syncword", EXPFILL }},
|
||||
};
|
||||
|
||||
proto_sbc = proto_register_protocol("Bluetooth SBC Codec", "SBC", "sbc");
|
||||
|
||||
proto_register_field_array(proto_sbc, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_sbc = expert_register_protocol(proto_sbc);
|
||||
expert_register_field_array(expert_sbc, ei, array_length(ei));
|
||||
|
||||
new_register_dissector("sbc", dissect_sbc, proto_sbc);
|
||||
|
||||
|
|
|
@ -205,6 +205,9 @@ static int ett_sdp_fmtp = -1;
|
|||
static int ett_sdp_key_mgmt = -1;
|
||||
static int ett_sdp_crypto_key_parameters = -1;
|
||||
|
||||
static expert_field ei_sdp_invalid_key_param = EI_INIT;
|
||||
static expert_field ei_sdp_invalid_line = EI_INIT;
|
||||
|
||||
#define SDP_RTP_PROTO 0x00000001
|
||||
#define SDP_SRTP_PROTO 0x00000002
|
||||
#define SDP_T38_PROTO 0x00000004
|
||||
|
@ -1484,8 +1487,7 @@ static void dissect_sdp_media_attribute(tvbuff_t *tvb, packet_info *pinfo, proto
|
|||
/* key-method or key-method-ext */
|
||||
next_offset = tvb_find_guint8(tvb, offset, -1, ':');
|
||||
if (next_offset == -1) {
|
||||
expert_add_info_format(pinfo, parameter_item, PI_MALFORMED, PI_NOTE,
|
||||
"Invalid key-param (no ':' delimiter)");
|
||||
expert_add_info(pinfo, parameter_item, &ei_sdp_invalid_key_param);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2058,8 +2060,7 @@ dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
delim = tvb_get_guint8(tvb, offset + 1);
|
||||
if (delim != '=') {
|
||||
proto_item *ti2 = proto_tree_add_item(sdp_tree, hf_invalid, tvb, offset, linelen, ENC_ASCII|ENC_NA);
|
||||
expert_add_info_format(pinfo, ti2, PI_MALFORMED, PI_NOTE,
|
||||
"Invalid SDP line (no '=' delimiter)");
|
||||
expert_add_info(pinfo, ti2, &ei_sdp_invalid_line);
|
||||
offset = next_offset;
|
||||
continue;
|
||||
}
|
||||
|
@ -2702,12 +2703,20 @@ proto_register_sdp(void)
|
|||
&ett_sdp_crypto_key_parameters,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_sdp_invalid_key_param, { "sdp.invalid_key_param", PI_MALFORMED, PI_NOTE, "Invalid key-param (no ':' delimiter)", EXPFILL }},
|
||||
{ &ei_sdp_invalid_line, { "sdp.invalid_line", PI_MALFORMED, PI_NOTE, "Invalid SDP line (no '=' delimiter)", EXPFILL }},
|
||||
};
|
||||
|
||||
module_t *sdp_module;
|
||||
expert_module_t* expert_sdp;
|
||||
|
||||
proto_sdp = proto_register_protocol("Session Description Protocol",
|
||||
"SDP", "sdp");
|
||||
proto_register_field_array(proto_sdp, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_sdp = expert_register_protocol(proto_sdp);
|
||||
expert_register_field_array(expert_sdp, ei, array_length(ei));
|
||||
|
||||
key_mgmt_dissector_table = register_dissector_table("key_mgmt",
|
||||
"Key Management", FT_STRING, BASE_NONE);
|
||||
|
|
|
@ -676,6 +676,8 @@ static gint ett_sflow_245_gw_as_dst_seg = -1;
|
|||
static gint ett_sflow_245_gw_community = -1;
|
||||
static gint ett_sflow_245_sampled_header = -1;
|
||||
|
||||
static expert_field ei_sflow_invalid_address_type = EI_INIT;
|
||||
|
||||
/* dissectors for other protocols */
|
||||
static dissector_handle_t eth_withoutfcs_handle;
|
||||
static dissector_handle_t tr_handle;
|
||||
|
@ -895,7 +897,7 @@ dissect_sflow_245_address_type(tvbuff_t *tvb, packet_info *pinfo,
|
|||
Note that we have a problem, though. */
|
||||
len = 0;
|
||||
pi = proto_tree_add_text(tree, tvb, offset - 4, 4, "Unknown address type (%u)", addr_type);
|
||||
expert_add_info_format(pinfo, pi, PI_MALFORMED, PI_ERROR, "Unknown/invalid address type");
|
||||
expert_add_info(pinfo, pi, &ei_sflow_invalid_address_type);
|
||||
}
|
||||
|
||||
if (addr_detail) {
|
||||
|
@ -3348,6 +3350,12 @@ proto_register_sflow(void) {
|
|||
&ett_sflow_245_sampled_header,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_sflow_invalid_address_type, { "sflow.invalid_address_type", PI_MALFORMED, PI_ERROR, "Unknown/invalid address type", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_sflow;
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_sflow = proto_register_protocol(
|
||||
"InMon sFlow", /* name */
|
||||
|
@ -3358,6 +3366,8 @@ proto_register_sflow(void) {
|
|||
/* Required function calls to register the header fields and subtrees used */
|
||||
proto_register_field_array(proto_sflow, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_sflow = expert_register_protocol(proto_sflow);
|
||||
expert_register_field_array(expert_sflow, ei, array_length(ei));
|
||||
|
||||
/* Register our configuration options for sFlow */
|
||||
sflow_245_module = prefs_register_protocol(proto_sflow, proto_reg_handoff_sflow_245);
|
||||
|
|
|
@ -115,6 +115,8 @@ static gint ett_sigcomp_udvm = -1;
|
|||
static gint ett_sigcomp_udvm_exe = -1;
|
||||
static gint ett_raw_text = -1;
|
||||
|
||||
static expert_field ei_sigcomp_nack_failed_op_code = EI_INIT;
|
||||
|
||||
static dissector_handle_t sip_handle;
|
||||
/* set the udp ports */
|
||||
static guint SigCompUDPPort1 = 5555;
|
||||
|
@ -829,7 +831,7 @@ dissect_sigcomp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *sigcomp_tr
|
|||
offset++;
|
||||
|
||||
/* Add expert item for NACK */
|
||||
expert_add_info_format(pinfo, reason_ti, PI_SEQUENCE, PI_WARN,
|
||||
expert_add_info_format_text(pinfo, reason_ti, &ei_sigcomp_nack_failed_op_code,
|
||||
"SigComp NACK (reason=%s, opcode=%s)",
|
||||
val_to_str_const(octet, sigcomp_nack_reason_code_vals, "Unknown"),
|
||||
val_to_str_const(opcode, udvm_instruction_code_vals, "Unknown"));
|
||||
|
@ -2582,7 +2584,13 @@ proto_register_sigcomp(void)
|
|||
&ett_raw_text,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_sigcomp_nack_failed_op_code, { "sigcomp.nack.failed_op_code.expert", PI_SEQUENCE, PI_WARN, "SigComp NACK", EXPFILL }},
|
||||
};
|
||||
|
||||
module_t *sigcomp_module;
|
||||
expert_module_t* expert_sigcomp;
|
||||
|
||||
static const enum_val_t udvm_detail_vals[] = {
|
||||
{"no-printout", "No-Printout", 0},
|
||||
{"low-detail", "Low-detail", 1},
|
||||
|
@ -2604,6 +2612,8 @@ proto_register_sigcomp(void)
|
|||
proto_register_field_array(proto_sigcomp, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
proto_register_subtree_array(ett_raw, array_length(ett_raw));
|
||||
expert_sigcomp = expert_register_protocol(proto_sigcomp);
|
||||
expert_register_field_array(expert_sigcomp, ei, array_length(ei));
|
||||
|
||||
/* Register a configuration option for port */
|
||||
sigcomp_module = prefs_register_protocol(proto_sigcomp,
|
||||
|
|
|
@ -208,6 +208,9 @@ static gint ett_sip_pmiss_uri = -1;
|
|||
static gint ett_sip_ppi_uri = -1;
|
||||
static gint ett_sip_tc_uri = -1;
|
||||
|
||||
static expert_field ei_sip_unrecognized_header = EI_INIT;
|
||||
static expert_field ei_sip_header_not_terminated = EI_INIT;
|
||||
|
||||
/* PUBLISH method added as per http://www.ietf.org/internet-drafts/draft-ietf-sip-publish-01.txt */
|
||||
static const char *sip_methods[] = {
|
||||
#define SIP_METHOD_INVALID 0
|
||||
|
@ -2378,8 +2381,7 @@ dissect_sip_common(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
|
|||
next_tvb2 = tvb_new_subset(tvb, value_offset, value_len, value_len);
|
||||
dissector_try_string(ext_hdr_subdissector_table, header_name, next_tvb2, pinfo, proto_item_add_subtree(ti_c, ett_sip_ext_hdr));
|
||||
} else {
|
||||
expert_add_info_format(pinfo, ti_c,
|
||||
PI_UNDECODED, PI_NOTE,
|
||||
expert_add_info_format_text(pinfo, ti_c, &ei_sip_unrecognized_header,
|
||||
"Unrecognised SIP header (%s)",
|
||||
tvb_format_text(tvb, offset, header_len));
|
||||
}
|
||||
|
@ -3097,9 +3099,7 @@ dissect_sip_common(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
|
|||
"[Header not terminated by empty line (CRLF)]");
|
||||
|
||||
proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
|
||||
expert_add_info_format(pinfo, sip_element_item,
|
||||
PI_MALFORMED, PI_WARN,
|
||||
"Header not terminated by empty line (CRLF)");
|
||||
expert_add_info(pinfo, sip_element_item, &ei_sip_header_not_terminated);
|
||||
}
|
||||
offset = next_offset;
|
||||
}/* End while */
|
||||
|
@ -5168,7 +5168,13 @@ void proto_register_sip(void)
|
|||
&ett_raw_text,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_sip_unrecognized_header, { "sip.unrecognized_header", PI_UNDECODED, PI_NOTE, "Unrecognised SIP header", EXPFILL }},
|
||||
{ &ei_sip_header_not_terminated, { "sip.header_not_terminated", PI_MALFORMED, PI_WARN, "Header not terminated by empty line (CRLF)", EXPFILL }},
|
||||
};
|
||||
|
||||
module_t *sip_module;
|
||||
expert_module_t* expert_sip;
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_sip = proto_register_protocol("Session Initiation Protocol",
|
||||
|
@ -5181,6 +5187,8 @@ void proto_register_sip(void)
|
|||
/* Required function calls to register the header fields and subtrees used */
|
||||
proto_register_field_array(proto_sip, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_sip = expert_register_protocol(proto_sip);
|
||||
expert_register_field_array(expert_sip, ei, array_length(ei));
|
||||
proto_register_subtree_array(ett_raw, array_length(ett_raw));
|
||||
|
||||
/* Register raw_sip field(s) */
|
||||
|
|
|
@ -110,6 +110,8 @@ static int hf_slsk_ranking = -1;
|
|||
static gint ett_slsk = -1;
|
||||
static gint ett_slsk_compr_packet = -1;
|
||||
|
||||
static expert_field ei_slsk_unknown_data = EI_INIT;
|
||||
|
||||
#define TCP_PORT_SLSK_1 2234
|
||||
#define TCP_PORT_SLSK_2 5534
|
||||
#define TCP_PORT_SLSK_3 2240
|
||||
|
@ -2379,7 +2381,7 @@ static void dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
|
|||
|
||||
}
|
||||
if(offset < (int)msg_len){
|
||||
expert_add_info_format(pinfo, ti_len, PI_UNDECODED, PI_WARN, "Unknown Data (not interpreted)");
|
||||
expert_add_info(pinfo, ti_len, &ei_slsk_unknown_data);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2591,7 +2593,13 @@ proto_register_slsk(void)
|
|||
&ett_slsk,
|
||||
&ett_slsk_compr_packet,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_slsk_unknown_data, { "slsk.unknown_data", PI_UNDECODED, PI_WARN, "Unknown Data (not interpreted)", EXPFILL }},
|
||||
};
|
||||
|
||||
module_t *slsk_module;
|
||||
expert_module_t* expert_slsk;
|
||||
|
||||
/* Registers the protocol name and description */
|
||||
proto_slsk = proto_register_protocol("SoulSeek Protocol", "SoulSeek", "slsk");
|
||||
|
@ -2599,6 +2607,8 @@ proto_register_slsk(void)
|
|||
/* Required function calls to register the header fields and subtrees used */
|
||||
proto_register_field_array(proto_slsk, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_slsk = expert_register_protocol(proto_slsk);
|
||||
expert_register_field_array(expert_slsk, ei, array_length(ei));
|
||||
|
||||
slsk_module = prefs_register_protocol(proto_slsk, NULL);
|
||||
|
||||
|
|
|
@ -800,6 +800,8 @@ static gint ett_smb_posix_ace = -1;
|
|||
static gint ett_smb_posix_ace_perms = -1;
|
||||
static gint ett_smb_info2_file_flags = -1;
|
||||
|
||||
static expert_field ei_smb_mal_information_level = EI_INIT;
|
||||
|
||||
static int smb_tap = -1;
|
||||
static int smb_eo_tap = -1;
|
||||
|
||||
|
@ -13411,8 +13413,7 @@ dissect_qpi_loi_vals(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
|
|||
}
|
||||
|
||||
if (trunc) {
|
||||
expert_add_info_format(pinfo, item, PI_MALFORMED, PI_ERROR,
|
||||
"Information level structure goes past the end of the transation data.");
|
||||
expert_add_info(pinfo, item, &ei_smb_mal_information_level);
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
@ -13548,8 +13549,7 @@ dissect_spi_loi_vals(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
|
|||
}
|
||||
|
||||
if (trunc) {
|
||||
expert_add_info_format(pinfo, item, PI_MALFORMED, PI_ERROR,
|
||||
"Information level structure goes past the end of the transation data.");
|
||||
expert_add_info(pinfo, item, &ei_smb_mal_information_level);
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
@ -21055,12 +21055,20 @@ proto_register_smb(void)
|
|||
&ett_smb_posix_ace_perms,
|
||||
&ett_smb_info2_file_flags
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_smb_mal_information_level, { "smb.information_level.malformed", PI_MALFORMED, PI_ERROR, "Information level structure goes past the end of the transation data.", EXPFILL }},
|
||||
};
|
||||
|
||||
module_t *smb_module;
|
||||
expert_module_t* expert_smb;
|
||||
|
||||
proto_smb = proto_register_protocol("SMB (Server Message Block Protocol)",
|
||||
"SMB", "smb");
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
proto_register_field_array(proto_smb, hf, array_length(hf));
|
||||
expert_smb = expert_register_protocol(proto_smb);
|
||||
expert_register_field_array(expert_smb, ei, array_length(ei));
|
||||
|
||||
proto_do_register_windows_common(proto_smb);
|
||||
|
||||
|
|
|
@ -1026,6 +1026,8 @@ static int hf_severity = -1;
|
|||
static int hf_visibility = -1;
|
||||
static int hf_num_glyphs = -1;
|
||||
|
||||
static expert_field ei_spice_decompress_error = EI_INIT;
|
||||
|
||||
static dissector_handle_t jpeg_handle;
|
||||
|
||||
static guint32
|
||||
|
@ -1486,7 +1488,7 @@ dissect_ImageZLIB_GLZ_stream(tvbuff_t *tvb, proto_tree *ZLIB_GLZ_tree, packet_in
|
|||
Uncomp_tree = proto_item_add_subtree(ti, ett_Uncomp_tree);
|
||||
dissect_ImageGLZ_RGB(uncompressed_tvb, Uncomp_tree, 0, ZLIB_uncompSize);
|
||||
} else {
|
||||
expert_add_info_format(pinfo, ti, PI_PROTOCOL, PI_WARN, "Error: Unable to decompress content");
|
||||
expert_add_info(pinfo, ti, &ei_spice_decompress_error);
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
@ -4343,6 +4345,12 @@ proto_register_spice(void)
|
|||
&ett_cap_tree
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_spice_decompress_error, { "spice.decompress_error", PI_PROTOCOL, PI_WARN, "Error: Unable to decompress content", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_spice;
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_spice = proto_register_protocol("Spice protocol",
|
||||
"Spice", "spice");
|
||||
|
@ -4350,6 +4358,8 @@ proto_register_spice(void)
|
|||
/* Required function calls to register the header fields and subtrees */
|
||||
proto_register_field_array(proto_spice, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_spice = expert_register_protocol(proto_spice);
|
||||
expert_register_field_array(expert_spice, ei, array_length(ei));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -498,6 +498,8 @@ static gint ett_init_msg_all_fields = -1;
|
|||
static gint ett_jminfo_msg_cat_data = -1;
|
||||
static gint ett_connect_msg_adt = -1;
|
||||
|
||||
static expert_field ei_sprt_sequence_number_0 = EI_INIT;
|
||||
|
||||
/* value strings & range strings */
|
||||
static const value_string sprt_transport_channel_characteristics[] = {
|
||||
{ 0, "Unreliable, unsequenced" },
|
||||
|
@ -1437,7 +1439,7 @@ dissect_sprt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
|
|||
proto_tree_add_item(sprt_tree, hf_sprt_transport_channel_id, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
ti = proto_tree_add_item(sprt_tree, hf_sprt_sequence_number, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
if (tc == 0 && seqnum != 0)
|
||||
expert_add_info_format(pinfo, ti, PI_PROTOCOL, PI_WARN, "Should be 0 for transport channel 0");
|
||||
expert_add_info(pinfo, ti, &ei_sprt_sequence_number_0);
|
||||
|
||||
p_conv_data->seqnum[tc] = seqnum; /* keep track of seqnum values */
|
||||
offset+=2;
|
||||
|
@ -1518,6 +1520,7 @@ void
|
|||
proto_register_sprt(void)
|
||||
{
|
||||
module_t *sprt_module;
|
||||
expert_module_t* expert_sprt;
|
||||
|
||||
static hf_register_info hf[] =
|
||||
{
|
||||
|
@ -3393,12 +3396,18 @@ proto_register_sprt(void)
|
|||
&ett_connect_msg_adt
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_sprt_sequence_number_0, { "sprt.sequence_number_0", PI_PROTOCOL, PI_WARN, "Should be 0 for transport channel 0", EXPFILL }},
|
||||
};
|
||||
|
||||
/* register protocol name & description */
|
||||
proto_sprt = proto_register_protocol("Simple Packet Relay Transport", "SPRT", "sprt");
|
||||
|
||||
/* required function calls to register the header fields and subtrees used */
|
||||
proto_register_field_array(proto_sprt, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_sprt = expert_register_protocol(proto_sprt);
|
||||
expert_register_field_array(expert_sprt, ei, array_length(ei));
|
||||
|
||||
/* register the dissector */
|
||||
new_register_dissector("sprt", dissect_sprt, proto_sprt);
|
||||
|
|
|
@ -145,6 +145,8 @@ static gint ett_key_init = -1;
|
|||
static gint ett_ssh1 = -1;
|
||||
static gint ett_ssh2 = -1;
|
||||
|
||||
static expert_field ei_ssh_packet_length = EI_INIT;
|
||||
|
||||
static gboolean ssh_desegment = TRUE;
|
||||
|
||||
#define TCP_PORT_SSH 22
|
||||
|
@ -634,7 +636,7 @@ ssh_dissect_key_exchange(tvbuff_t *tvb, packet_info *pinfo,
|
|||
ti = proto_tree_add_uint(tree, hf_ssh_packet_length, tvb,
|
||||
offset, 4, plen);
|
||||
if (plen >= 0xffff) {
|
||||
expert_add_info_format(pinfo, ti, PI_PROTOCOL, PI_WARN, "Overly large number %d",plen);
|
||||
expert_add_info_format_text(pinfo, ti, &ei_ssh_packet_length, "Overly large number %d", plen);
|
||||
plen = remain_length-4;
|
||||
}
|
||||
offset+=4;
|
||||
|
@ -1237,11 +1239,19 @@ proto_register_ssh(void)
|
|||
&ett_ssh2,
|
||||
&ett_key_init
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_ssh_packet_length, { "ssh.packet_length.error", PI_PROTOCOL, PI_WARN, "Overly large number", EXPFILL }},
|
||||
};
|
||||
|
||||
module_t *ssh_module;
|
||||
expert_module_t* expert_ssh;
|
||||
|
||||
proto_ssh = proto_register_protocol("SSH Protocol", "SSH", "ssh");
|
||||
proto_register_field_array(proto_ssh, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_ssh = expert_register_protocol(proto_ssh);
|
||||
expert_register_field_array(expert_ssh, ei, array_length(ei));
|
||||
|
||||
ssh_module = prefs_register_protocol(proto_ssh, NULL);
|
||||
prefs_register_bool_preference(ssh_module, "desegment_buffers",
|
||||
|
|
|
@ -302,6 +302,10 @@ static gint ett_pct_exch_suites = -1;
|
|||
static gint ett_ssl_segments = -1;
|
||||
static gint ett_ssl_segment = -1;
|
||||
|
||||
static expert_field ei_ssl_handshake_cipher_suites_mult2 = EI_INIT;
|
||||
static expert_field ei_ssl_handshake_sig_hash_algs_mult2 = EI_INIT;
|
||||
static expert_field ei_ssl2_handshake_session_id_len_error = EI_INIT;
|
||||
|
||||
|
||||
/* not all of the hf_fields below make sense for SSL but we have to provide
|
||||
them anyways to comply with the api (which was aimed for ip fragment
|
||||
|
@ -2727,7 +2731,7 @@ dissect_ssl3_hnd_cli_hello(tvbuff_t *tvb, packet_info *pinfo,
|
|||
if (cipher_suite_length % 2) {
|
||||
proto_tree_add_text(tree, tvb, offset, 2,
|
||||
"Invalid cipher suite length: %d", cipher_suite_length);
|
||||
expert_add_info_format(pinfo, NULL, PI_MALFORMED, PI_ERROR,
|
||||
expert_add_info_format_text(pinfo, NULL, &ei_ssl_handshake_cipher_suites_mult2,
|
||||
"Cipher suite length (%d) must be a multiple of 2",
|
||||
cipher_suite_length);
|
||||
return;
|
||||
|
@ -3083,7 +3087,7 @@ dissect_ssl3_hnd_cert_req(tvbuff_t *tvb,
|
|||
if (sh_alg_length % 2) {
|
||||
proto_tree_add_text(tree, tvb, offset, 2,
|
||||
"Invalid Signature Hash Algorithm length: %d", sh_alg_length);
|
||||
expert_add_info_format(pinfo, NULL, PI_MALFORMED, PI_ERROR,
|
||||
expert_add_info_format_text(pinfo, NULL, &ei_ssl_handshake_sig_hash_algs_mult2,
|
||||
"Signature Hash Algorithm length (%d) must be a multiple of 2",
|
||||
sh_alg_length);
|
||||
return;
|
||||
|
@ -4017,7 +4021,7 @@ dissect_ssl2_hnd_client_hello(tvbuff_t *tvb, packet_info *pinfo,
|
|||
if (session_id_length > SSLV2_MAX_SESSION_ID_LENGTH_IN_BYTES) {
|
||||
proto_tree_add_text(tree, tvb, offset, 2,
|
||||
"Invalid session ID length: %d", session_id_length);
|
||||
expert_add_info_format(pinfo, NULL, PI_MALFORMED, PI_ERROR,
|
||||
expert_add_info_format_text(pinfo, NULL, &ei_ssl2_handshake_session_id_len_error,
|
||||
"Session ID length (%u) must be less than %u.",
|
||||
session_id_length, SSLV2_MAX_SESSION_ID_LENGTH_IN_BYTES);
|
||||
return;
|
||||
|
@ -5868,6 +5872,14 @@ proto_register_ssl(void)
|
|||
&ett_ssl_segment
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_ssl_handshake_cipher_suites_mult2, { "ssl.handshake.cipher_suites_length.mult2", PI_MALFORMED, PI_ERROR, "Cipher suite length must be a multiple of 2", EXPFILL }},
|
||||
{ &ei_ssl_handshake_sig_hash_algs_mult2, { "ssl.handshake.sig_hash_alg_len.mult2", PI_MALFORMED, PI_ERROR, "Signature Hash Algorithm length must be a multiple of 2", EXPFILL }},
|
||||
{ &ei_ssl2_handshake_session_id_len_error, { "ssl.handshake.session_id_length.error", PI_MALFORMED, PI_ERROR, "Session ID length error", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_ssl;
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_ssl = proto_register_protocol("Secure Sockets Layer",
|
||||
"SSL", "ssl");
|
||||
|
@ -5876,6 +5888,8 @@ proto_register_ssl(void)
|
|||
* subtrees used */
|
||||
proto_register_field_array(proto_ssl, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_ssl = expert_register_protocol(proto_ssl);
|
||||
expert_register_field_array(expert_ssl, ei, array_length(ei));
|
||||
|
||||
{
|
||||
module_t *ssl_module = prefs_register_protocol(proto_ssl, proto_reg_handoff_ssl);
|
||||
|
|
|
@ -93,11 +93,13 @@ static int hf_digitech_ack_request_proc_id = -1;
|
|||
static int hf_digitech_nack_request_proc_id = -1;
|
||||
|
||||
static int hf_digitech_checksum = -1;
|
||||
static int hf_digitech_checksum_bad = -1;
|
||||
|
||||
|
||||
static gint ett_sysex = -1;
|
||||
|
||||
static expert_field ei_sysex_message_start_byte = EI_INIT;
|
||||
static expert_field ei_digitech_checksum_bad = EI_INIT;
|
||||
static expert_field ei_sysex_message_end_byte = EI_INIT;
|
||||
|
||||
#define SYSEX_MANUFACTURER_DOD 0x000010
|
||||
|
||||
static const value_string sysex_three_byte_manufacturer_id[] = {
|
||||
|
@ -1122,8 +1124,7 @@ dissect_sysex_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree
|
|||
item = proto_tree_add_item(tree, hf_sysex_message_start, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
if (sysex_helper != 0xF0)
|
||||
{
|
||||
expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN,
|
||||
"SYSEX Error: Wrong start byte");
|
||||
expert_add_info(pinfo, item, &ei_sysex_message_start_byte);
|
||||
}
|
||||
|
||||
offset++;
|
||||
|
@ -1180,25 +1181,16 @@ dissect_sysex_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree
|
|||
digitech_helper ^= *data_ptr++;
|
||||
}
|
||||
|
||||
item = proto_tree_add_item(tree, hf_digitech_checksum, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
checksum = tvb_get_guint8(tvb, offset);
|
||||
if (digitech_helper == 0)
|
||||
{
|
||||
proto_tree_add_uint_format(tree,
|
||||
hf_digitech_checksum, tvb, offset, 1, checksum,
|
||||
"Checksum: 0x%02x (correct)", checksum);
|
||||
|
||||
proto_item_append_text(item, " (correct)");
|
||||
}
|
||||
else
|
||||
{
|
||||
item = proto_tree_add_uint_format(tree,
|
||||
hf_digitech_checksum, tvb, offset, 1, checksum,
|
||||
"Checksum: 0x%02x (NOT correct)", checksum);
|
||||
expert_add_info_format(pinfo, item, PI_CHECKSUM, PI_ERROR,
|
||||
"Bad checksum");
|
||||
item = proto_tree_add_boolean(tree,
|
||||
hf_digitech_checksum_bad, tvb, offset, 1, TRUE);
|
||||
PROTO_ITEM_SET_HIDDEN(item);
|
||||
PROTO_ITEM_SET_GENERATED(item);
|
||||
proto_item_append_text(item, " (NOT correct)");
|
||||
expert_add_info(pinfo, item, &ei_digitech_checksum_bad);
|
||||
}
|
||||
offset++;
|
||||
break;
|
||||
|
@ -1219,8 +1211,7 @@ dissect_sysex_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree
|
|||
item = proto_tree_add_item(tree, hf_sysex_message_eox, tvb, data_len - 1, 1, ENC_BIG_ENDIAN);
|
||||
if (sysex_helper != 0xF7)
|
||||
{
|
||||
expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN,
|
||||
"SYSEX Error: Wrong end byte");
|
||||
expert_add_info(pinfo, item, &ei_sysex_message_end_byte);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1396,18 +1387,25 @@ proto_register_sysex(void)
|
|||
{ &hf_digitech_checksum,
|
||||
{ "Checksum", "sysex.digitech.checksum", FT_UINT8, BASE_HEX,
|
||||
NULL, 0, NULL, HFILL }},
|
||||
{ &hf_digitech_checksum_bad,
|
||||
{ "Bad Checksum", "sysex.digitech.checksum_bad", FT_BOOLEAN, BASE_NONE,
|
||||
NULL, 0, "A bad checksum in command", HFILL }},
|
||||
};
|
||||
|
||||
static gint *sysex_subtrees[] = {
|
||||
&ett_sysex
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_sysex_message_start_byte, { "sysex.message_start_byte", PI_PROTOCOL, PI_WARN, "SYSEX Error: Wrong start byte", EXPFILL }},
|
||||
{ &ei_digitech_checksum_bad, { "sysex.digitech.checksum_bad", PI_CHECKSUM, PI_WARN, "ARP packet storm detected", EXPFILL }},
|
||||
{ &ei_sysex_message_end_byte, { "sysex.message_end_byte", PI_PROTOCOL, PI_WARN, "SYSEX Error: Wrong end byte", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_sysex;
|
||||
|
||||
proto_sysex = proto_register_protocol("MIDI System Exclusive", "SYSEX", "sysex");
|
||||
proto_register_field_array(proto_sysex, hf, array_length(hf));
|
||||
proto_register_subtree_array(sysex_subtrees, array_length(sysex_subtrees));
|
||||
expert_sysex = expert_register_protocol(proto_sysex);
|
||||
expert_register_field_array(expert_sysex, ei, array_length(ei));
|
||||
|
||||
register_dissector("sysex", dissect_sysex_command, proto_sysex);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue