Skip to content

Commit

Permalink
Batch of filterable expert infos with some minor cleanup I noticed wh…
Browse files Browse the repository at this point in the history
…ile doing the filter conversions.

svn path=/trunk/; revision=49893
  • Loading branch information
mmann78 committed Jun 12, 2013
1 parent 66a7193 commit 93be0fb
Show file tree
Hide file tree
Showing 17 changed files with 486 additions and 368 deletions.
10 changes: 10 additions & 0 deletions asn1/h450-ros/packet-h450-ros-template.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ static int proto_h450_ros = -1;
/* Initialize the subtree pointers */
#include "packet-h450-ros-ett.c"

static expert_field ei_ros_undecoded = EI_INIT;

/* Preferences */

/* Subdissectors */
Expand Down Expand Up @@ -83,13 +85,21 @@ void proto_register_h450_ros(void) {
#include "packet-h450-ros-ettarr.c"
};

static ei_register_info ei[] = {
{ &ei_ros_undecoded, { "h450.ros.undecoded", PI_UNDECODED, PI_WARN, "Undecoded", EXPFILL }},
};

expert_module_t* expert_h450_ros;

/* Register protocol and dissector */
proto_h450_ros = proto_register_protocol(PNAME, PSNAME, PFNAME);
proto_set_cant_toggle(proto_h450_ros);

/* Register fields and subtrees */
proto_register_field_array(proto_h450_ros, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_h450_ros = expert_register_protocol(proto_h450_ros);
expert_register_field_array(expert_h450_ros, ei, array_length(ei));
}

/*--- proto_reg_handoff_h450_ros --------------------------------------------*/
Expand Down
10 changes: 10 additions & 0 deletions asn1/q932-ros/packet-q932-ros-template.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ static int proto_q932_ros = -1;
/* Initialize the subtree pointers */
#include "packet-q932-ros-ett.c"

static expert_field ei_ros_undecoded = EI_INIT;

/* Preferences */

/* Subdissectors */
Expand Down Expand Up @@ -78,13 +80,21 @@ void proto_register_q932_ros(void) {
#include "packet-q932-ros-ettarr.c"
};

static ei_register_info ei[] = {
{ &ei_ros_undecoded, { "q932.ros.undecoded", PI_UNDECODED, PI_WARN, "Undecoded", EXPFILL }},
};

expert_module_t* expert_q932_ros;

/* Register protocol and dissector */
proto_q932_ros = proto_register_protocol(PNAME, PSNAME, PFNAME);
proto_set_cant_toggle(proto_q932_ros);

/* Register fields and subtrees */
proto_register_field_array(proto_q932_ros, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_q932_ros = expert_register_protocol(proto_q932_ros);
expert_register_field_array(expert_q932_ros, ei, array_length(ei));

new_register_dissector(PFNAME, dissect_q932_ros, proto_q932_ros);
}
Expand Down
23 changes: 13 additions & 10 deletions asn1/tetra/packet-tetra-template.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ static gint ett_tetra_text = -1;

#include "packet-tetra-ett.c"

static expert_field ei_tetra_channels_incorrect = EI_INIT;

#include "packet-tetra-fn.c"

static const value_string channeltypenames[] = {
Expand Down Expand Up @@ -342,8 +344,7 @@ static void dissect_tetra_UNITDATA_IND(tvbuff_t *tvb, packet_info *pinfo, proto_
tetra_sub_item = proto_tree_add_uint( tetra_tree, hf_tetra_channels, tvb, offset, 4, channels );
tetra_header_tree = proto_item_add_subtree(tetra_sub_item, ett_tetra);
if (channels > 3) {
expert_add_info_format(pinfo, tetra_sub_item, PI_MALFORMED, PI_WARN,
"Channel count incorrect, must be <= 3");
expert_add_info(pinfo, tetra_sub_item, &ei_tetra_channels_incorrect);
channels = 3;
}

Expand Down Expand Up @@ -403,8 +404,7 @@ void dissect_tetra_UNITDATA_REQ(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
txreg >>= 4;

if (channels > 3) {
expert_add_info_format(pinfo, tetra_sub_item, PI_MALFORMED, PI_WARN,
"Channel count incorrect, must be <= 3");
expert_add_info(pinfo, tetra_sub_item, &ei_tetra_channels_incorrect);
channels = 3;
}

Expand Down Expand Up @@ -562,7 +562,8 @@ void proto_reg_handoff_tetra(void)

void proto_register_tetra (void)
{
module_t *per_module;
module_t *tetra_module;
expert_module_t* expert_tetra;

/*
* A header field is something you can search/filter on.
Expand Down Expand Up @@ -634,17 +635,19 @@ void proto_register_tetra (void)
#include "packet-tetra-ettarr.c"
};

/* execute protocol initialization only once */
if (proto_tetra != -1)
return;
static ei_register_info ei[] = {
{ &ei_tetra_channels_incorrect, { "tetra.channels.incorrect", PI_MALFORMED, PI_WARN, "Channel count incorrect, must be <= 3", EXPFILL }},
};

proto_tetra = proto_register_protocol("TETRA Protocol", "tetra", "tetra");
proto_register_field_array (proto_tetra, hf, array_length (hf));
proto_register_subtree_array (ett, array_length (ett));
register_dissector("tetra", dissect_tetra, proto_tetra);
expert_tetra = expert_register_protocol(proto_tetra);
expert_register_field_array(expert_tetra, ei, array_length(ei));

per_module = prefs_register_protocol(proto_tetra, NULL);
prefs_register_bool_preference(per_module, "include_carrier_number",
tetra_module = prefs_register_protocol(proto_tetra, NULL);
prefs_register_bool_preference(tetra_module, "include_carrier_number",
"The data include carrier numbers",
"Whether the captured data include carrier number",
&include_carrier_number);
Expand Down
65 changes: 32 additions & 33 deletions epan/dissectors/packet-dmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,9 @@ static gint ett_checksum = -1;

static gint ett_analysis = -1;

static expert_field ei_reserved_value = EI_INIT;
static expert_field ei_message_sic_illegal = EI_INIT;

static dissector_handle_t dmp_handle;

typedef struct _dmp_id_key {
Expand Down Expand Up @@ -1737,7 +1740,7 @@ static gint dissect_dmp_sic (tvbuff_t *tvb, packet_info *pinfo,
"SIC: %s [A-Z0-9 only]%s", sic,
failure ? " (invalid)": "");
if (failure) {
expert_add_info_format (pinfo, sf, PI_UNDECODED, PI_NOTE, "Illegal SIC");
expert_add_info(pinfo, sf, &ei_message_sic_illegal);
}
offset += 2;

Expand All @@ -1752,7 +1755,7 @@ static gint dissect_dmp_sic (tvbuff_t *tvb, packet_info *pinfo,
"SIC: %s [any character]%s", sic,
failure ? " (invalid)": "");
if (failure) {
expert_add_info_format (pinfo, sf, PI_UNDECODED, PI_NOTE, "Illegal SIC");
expert_add_info(pinfo, sf, &ei_message_sic_illegal);
}
offset += 3;

Expand Down Expand Up @@ -1792,8 +1795,7 @@ static gint dissect_dmp_sic (tvbuff_t *tvb, packet_info *pinfo,
"SIC %d: %s%s", i + 1, sic,
failure ? " (invalid)": "");
if (failure) {
expert_add_info_format (pinfo, bf, PI_UNDECODED, PI_NOTE,
"Illegal SIC");
expert_add_info(pinfo, bf, &ei_message_sic_illegal);
}
offset += bytes;
}
Expand Down Expand Up @@ -1907,8 +1909,7 @@ static gint dissect_dmp_sic (tvbuff_t *tvb, packet_info *pinfo,
}
}
if (failure) {
expert_add_info_format (pinfo, bf, PI_UNDECODED, PI_NOTE,
"Illegal SIC");
expert_add_info(pinfo, bf, &ei_message_sic_illegal);
}
offset += bytes;
}
Expand Down Expand Up @@ -1973,8 +1974,7 @@ static gint dissect_dmp_direct_addr (tvbuff_t *tvb, packet_info *pinfo,
proto_tree_add_item (addr_tree, hf_addr_dir_addr_ext, tvb, offset, 1, ENC_BIG_ENDIAN);
en = proto_tree_add_item (addr_tree, hf_reserved_0x40, tvb, offset, 1, ENC_BIG_ENDIAN);
if (value & 0x40) {
expert_add_info_format (pinfo, en, PI_UNDECODED, PI_WARN,
"Reserved value");
expert_add_info(pinfo, en, &ei_reserved_value);
}
proto_tree_add_item (addr_tree, hf_addr_dir_address2, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
Expand All @@ -1991,8 +1991,7 @@ static gint dissect_dmp_direct_addr (tvbuff_t *tvb, packet_info *pinfo,
addr_tree = proto_item_add_subtree (en, ett_address_direct);
en = proto_tree_add_item (addr_tree, hf_reserved_0xC0, tvb, offset, 1, ENC_BIG_ENDIAN);
if (value & 0xC0) {
expert_add_info_format (pinfo, en, PI_UNDECODED, PI_WARN,
"Reserved value");
expert_add_info(pinfo, en, &ei_reserved_value);
}
proto_tree_add_item (addr_tree, hf_addr_dir_address3, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
Expand Down Expand Up @@ -2174,8 +2173,7 @@ static gint dissect_dmp_originator (tvbuff_t *tvb, packet_info *pinfo,

en = proto_tree_add_item (rec_tree, hf_reserved_0x1F, tvb, offset, 1, ENC_BIG_ENDIAN);
if (value & 0x1F) {
expert_add_info_format (pinfo, en, PI_UNDECODED, PI_WARN,
"Reserved value");
expert_add_info(pinfo, en, &ei_reserved_value);
}
offset += 1;

Expand Down Expand Up @@ -2376,8 +2374,7 @@ static gint dissect_dmp_direct_encoding (tvbuff_t *tvb, packet_info *pinfo,
proto_tree_add_item (rec_tree, hf_addr_dir_rep_req3, tvb, offset, 1, ENC_BIG_ENDIAN);
en = proto_tree_add_item (rec_tree, hf_reserved_0x20, tvb, offset, 1, ENC_BIG_ENDIAN);
if (value & 0x20) {
expert_add_info_format (pinfo, en, PI_UNDECODED, PI_WARN,
"Reserved value");
expert_add_info(pinfo, en, &ei_reserved_value);
}
proto_tree_add_item (rec_tree, hf_addr_dir_rec_no3, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
Expand Down Expand Up @@ -2930,7 +2927,7 @@ static gint dissect_dmp_envelope (tvbuff_t *tvb, packet_info *pinfo,
} else {
tf = proto_tree_add_item (field_tree, hf_reserved_0x0F, tvb, offset, 1, ENC_BIG_ENDIAN);
if (envelope & 0x0F) {
expert_add_info_format (pinfo, tf, PI_UNDECODED, PI_WARN, "Reserved value");
expert_add_info(pinfo, tf, &ei_reserved_value);
}
offset += 1;
}
Expand Down Expand Up @@ -3035,8 +3032,7 @@ static gint dissect_dmp_envelope (tvbuff_t *tvb, packet_info *pinfo,
field_tree = proto_item_add_subtree (tf, ett_envelope_ext_recipients);
en = proto_tree_add_item (field_tree, hf_reserved_0x8000, tvb, offset, 2, ENC_BIG_ENDIAN);
if (value16 & 0x8000) {
expert_add_info_format (pinfo, en, PI_UNDECODED, PI_WARN,
"Reserved value");
expert_add_info(pinfo, en, &ei_reserved_value);
}
proto_tree_add_item (field_tree, hf_envelope_ext_recipients, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
Expand Down Expand Up @@ -3169,8 +3165,7 @@ static gint dissect_dmp_message (tvbuff_t *tvb, packet_info *pinfo,
"Reserved: %d", message & 0x07);
field_tree = proto_item_add_subtree (tf, ett_message_body_reserved);
tf = proto_tree_add_item (field_tree, hf_reserved_0x07, tvb, offset, 1, ENC_BIG_ENDIAN);
expert_add_info_format (pinfo, tf, PI_UNDECODED, PI_WARN,
"Reserved value");
expert_add_info(pinfo, tf, &ei_reserved_value);
}
offset += 1;
}
Expand Down Expand Up @@ -3287,8 +3282,7 @@ static gint dissect_dmp_report (tvbuff_t *tvb, packet_info *pinfo,
"Reserved: %d", report & 0x1F);
field_tree = proto_item_add_subtree (tf, ett_report_reserved);
tf = proto_tree_add_item (field_tree, hf_reserved_0x1F, tvb, offset, 1, ENC_BIG_ENDIAN);
expert_add_info_format (pinfo, tf, PI_UNDECODED, PI_WARN,
"Reserved value");
expert_add_info(pinfo, tf, &ei_reserved_value);

}
offset += 1;
Expand Down Expand Up @@ -3516,11 +3510,11 @@ static gint dissect_dmp_security_category (tvbuff_t *tvb, packet_info *pinfo,

tr = proto_tree_add_item (field_tree, hf_reserved_0x08, tvb, offset, 1, ENC_BIG_ENDIAN);
if (message & 0x08) {
expert_add_info_format (pinfo, tr, PI_UNDECODED, PI_WARN, "Reserved value");
expert_add_info(pinfo, tr, &ei_reserved_value);
}
tr = proto_tree_add_item (field_tree, hf_reserved_0x04, tvb, offset, 1, ENC_BIG_ENDIAN);
if (message & 0x04) {
expert_add_info_format (pinfo, tr, PI_UNDECODED, PI_WARN, "Reserved value");
expert_add_info(pinfo, tr, &ei_reserved_value);
}

if (message & 0xF0) {
Expand All @@ -3545,7 +3539,7 @@ static gint dissect_dmp_security_category (tvbuff_t *tvb, packet_info *pinfo,
proto_item_append_text (tf, ": rel-to-%s", get_nat_pol_id_short (message >> 2));
*label_string = ep_strdup_printf("%s,rel-to-%s", *label_string, get_nat_pol_id_short (message >> 2));
if ((message >> 2) == 0) {
expert_add_info_format (pinfo, tr, PI_UNDECODED, PI_WARN, "Reserved value");
expert_add_info(pinfo, tr, &ei_reserved_value);
}
}
break;
Expand All @@ -3564,16 +3558,16 @@ static gint dissect_dmp_security_category (tvbuff_t *tvb, packet_info *pinfo,
if (dmp.version == 1) {
tr = proto_tree_add_item (field_tree, hf_reserved_0x02, tvb, offset, 1, ENC_BIG_ENDIAN);
if (message & 0x02) {
expert_add_info_format (pinfo, tr, PI_UNDECODED, PI_WARN, "Reserved value");
expert_add_info(pinfo, tr, &ei_reserved_value);
}
tr = proto_tree_add_item (field_tree, hf_reserved_0x01, tvb, offset, 1, ENC_BIG_ENDIAN);
if (message & 0x01) {
expert_add_info_format (pinfo, tr, PI_UNDECODED, PI_WARN, "Reserved value");
expert_add_info(pinfo, tr, &ei_reserved_value);
}
} else {
tr = proto_tree_add_item (field_tree, hf_message_sec_cat_extended, tvb, offset, 1, ENC_BIG_ENDIAN);
if ((message & 0x01) && (message & 0x02)) {
expert_add_info_format (pinfo, tr, PI_UNDECODED, PI_WARN, "Reserved value");
expert_add_info(pinfo, tr, &ei_reserved_value);
} else if (message & 0x01 || message & 0x02) {
proto_item_append_text (tf, " (extended)");
offset = dissect_dmp_security_category (tvb, pinfo, tree, label_string, offset+1, message & 0x03);
Expand Down Expand Up @@ -3643,8 +3637,7 @@ static gint dissect_dmp_content (tvbuff_t *tvb, packet_info *pinfo,
"Reserved: %d", (message & 0x20)>>5);
field_tree = proto_item_add_subtree (tf, ett_message_reserved);
tf = proto_tree_add_item (field_tree, hf_reserved_0x20, tvb, offset, 1, ENC_BIG_ENDIAN);
expert_add_info_format (pinfo, tf, PI_UNDECODED, PI_WARN,
"Reserved value");
expert_add_info(pinfo, tf, &ei_reserved_value);
}

/* Precedence */
Expand All @@ -3665,8 +3658,7 @@ static gint dissect_dmp_content (tvbuff_t *tvb, packet_info *pinfo,
"Reserved: %d", (message & 0xE0)>>5);
field_tree = proto_item_add_subtree (tf, ett_message_reserved);
tf = proto_tree_add_item (field_tree, hf_reserved_0xE0, tvb, offset, 1, ENC_BIG_ENDIAN);
expert_add_info_format (pinfo, tf, PI_UNDECODED, PI_WARN,
"Reserved value");
expert_add_info(pinfo, tf, &ei_reserved_value);
}

/* Importance */
Expand Down Expand Up @@ -3767,8 +3759,7 @@ static gint dissect_dmp_content (tvbuff_t *tvb, packet_info *pinfo,
"Reserved: %d", message & 0x02);
field_tree = proto_item_add_subtree (tf, ett_message_reserved);
tf = proto_tree_add_item (field_tree, hf_reserved_0x02, tvb, offset, 1, ENC_BIG_ENDIAN);
expert_add_info_format (pinfo, tf, PI_UNDECODED, PI_WARN,
"Reserved value");
expert_add_info(pinfo, tf, &ei_reserved_value);
}
offset += 1;

Expand Down Expand Up @@ -4959,6 +4950,11 @@ void proto_register_dmp (void)
&ett_analysis
};

static ei_register_info ei[] = {
{ &ei_reserved_value, { "dmp.reserved.expert", PI_UNDECODED, PI_WARN, "Reserved value", EXPFILL }},
{ &ei_message_sic_illegal, { "dmp.sic.illegal", PI_UNDECODED, PI_NOTE, "Illegal SIC", EXPFILL }},
};

static uat_field_t attributes_flds[] = {
UAT_FLD_VS(dmp_security_class,nation, "Nation", nat_pol_id, 0),
UAT_FLD_DEC(dmp_security_class,sec_class, "Classification", "Security Classification"),
Expand All @@ -4981,12 +4977,15 @@ void proto_register_dmp (void)
attributes_flds);

module_t *dmp_module;
expert_module_t* expert_dmp;

proto_dmp = proto_register_protocol (PNAME, PSNAME, PFNAME);
register_dissector(PFNAME, dissect_dmp, proto_dmp);

proto_register_field_array (proto_dmp, hf, array_length (hf));
proto_register_subtree_array (ett, array_length (ett));
expert_dmp = expert_register_protocol(proto_dmp);
expert_register_field_array(expert_dmp, ei, array_length(ei));
register_init_routine (&dmp_init_routine);

/* Set default UDP ports */
Expand Down
10 changes: 5 additions & 5 deletions epan/dissectors/packet-dtls.c
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ static gint ett_dtls_fragments = -1;
static expert_field ei_dtls_handshake_fragment_length_too_long = EI_INIT;
static expert_field ei_dtls_handshake_fragment_past_end_msg = EI_INIT;
static expert_field ei_dtls_msg_len_diff_fragment = EI_INIT;
static expert_field ei_dtls_handshake_sig_hash_alg_len_bad = EI_INIT;

static GHashTable *dtls_session_hash = NULL;
static GHashTable *dtls_key_hash = NULL;
Expand Down Expand Up @@ -2248,7 +2249,7 @@ dissect_dtls_hnd_cert_req(tvbuff_t *tvb,
*
*/

proto_tree *ti;
proto_tree *ti, *ti2;
proto_tree *subtree;
proto_tree *saved_subtree;
guint8 cert_types_count;
Expand Down Expand Up @@ -2292,7 +2293,7 @@ dissect_dtls_hnd_cert_req(tvbuff_t *tvb,
switch (*conv_version) {
case SSL_VER_DTLS1DOT2:
sh_alg_length = tvb_get_ntohs(tvb, offset);
proto_tree_add_uint(tree, hf_dtls_handshake_sig_hash_alg_len,
ti2 = proto_tree_add_uint(tree, hf_dtls_handshake_sig_hash_alg_len,
tvb, offset, 2, sh_alg_length);
offset += 2;

Expand All @@ -2311,9 +2312,7 @@ dissect_dtls_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, ti2, &ei_dtls_handshake_sig_hash_alg_len_bad,
"Signature Hash Algorithm length (%d) must be a multiple of 2",
sh_alg_length);
return;
Expand Down Expand Up @@ -3483,6 +3482,7 @@ proto_register_dtls(void)
{ &ei_dtls_handshake_fragment_length_too_long, { "dtls.handshake.fragment_length.too_long", PI_PROTOCOL, PI_ERROR, "Fragment length is larger than message length", EXPFILL }},
{ &ei_dtls_handshake_fragment_past_end_msg, { "dtls.handshake.fragment_past_end_msg", PI_PROTOCOL, PI_ERROR, "Fragment runs past the end of the message", EXPFILL }},
{ &ei_dtls_msg_len_diff_fragment, { "dtls.msg_len_diff_fragment", PI_PROTOCOL, PI_ERROR, "Message length differs from value in earlier fragment", EXPFILL }},
{ &ei_dtls_handshake_sig_hash_alg_len_bad, { "dtls.handshake.sig_hash_alg_len.bad", PI_MALFORMED, PI_ERROR, "Signature Hash Algorithm length must be a multiple of 2", EXPFILL }},
};

expert_module_t* expert_dtls;
Expand Down
Loading

0 comments on commit 93be0fb

Please sign in to comment.