diff options
author | Michael Mann <mmann78@netscape.net> | 2014-08-17 16:11:15 -0400 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-08-18 07:53:39 +0000 |
commit | 945b371a259ef8ed4fb94b13798162e688234f64 (patch) | |
tree | bdc7bc1620287a6b95452a5f7a0db9ed83d86f5f /epan/dissectors/packet-openflow.c | |
parent | 83ad0d063c47aa3cc8da53a8f3c61cdd68027145 (diff) |
Eliminate proto_tree_add_text from some dissectors.
Other minor cleanup while in the neighborhood.
Change-Id: I77cac916d617f56f92f686e9cd9f15fba058facf
Reviewed-on: https://code.wireshark.org/review/3675
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-openflow.c')
-rw-r--r-- | epan/dissectors/packet-openflow.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/epan/dissectors/packet-openflow.c b/epan/dissectors/packet-openflow.c index d98b6b85fa..3d8d87965d 100644 --- a/epan/dissectors/packet-openflow.c +++ b/epan/dissectors/packet-openflow.c @@ -29,6 +29,7 @@ #include <glib.h> #include <epan/packet.h> +#include <epan/expert.h> #include <epan/prefs.h> #include "packet-tcp.h" @@ -51,6 +52,8 @@ static dissector_handle_t openflow_v5_handle; static int proto_openflow = -1; static int hf_openflow_version = -1; +static expert_field ei_openflow_version = EI_INIT; + static gboolean openflow_desegment = TRUE; #define OFP_VERSION_1_0 1 @@ -79,6 +82,7 @@ dissect_openflow_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo { guint offset = 0; guint8 version; + proto_item* ti; version = tvb_get_guint8(tvb, 0); /* Set the Protocol column to the constant string of openflow */ @@ -96,8 +100,8 @@ dissect_openflow_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo call_dissector(openflow_v5_handle, tvb, pinfo, tree); break; default: - proto_tree_add_item(tree, hf_openflow_version, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_text(tree, tvb, offset, -1, "Unsuported version not dissected"); + ti = proto_tree_add_item(tree, hf_openflow_version, tvb, offset, 1, ENC_BIG_ENDIAN); + expert_add_info(pinfo, ti, &ei_openflow_version); break; } return tvb_reported_length(tvb); @@ -150,7 +154,12 @@ proto_register_openflow(void) } }; + static ei_register_info ei[] = { + { &ei_openflow_version, { "openflow.version.unknown", PI_UNDECODED, PI_WARN, "Unsupported version not dissected", EXPFILL }}, + }; + module_t *openflow_module; + expert_module_t* expert_openflow; /* Register the protocol name and description */ proto_openflow = proto_register_protocol("OpenFlow", @@ -160,6 +169,8 @@ proto_register_openflow(void) /* Required function calls to register the header fields and subtrees */ proto_register_field_array(proto_openflow, hf, array_length(hf)); + expert_openflow = expert_register_protocol(proto_openflow); + expert_register_field_array(expert_openflow, ei, array_length(ei)); openflow_module = prefs_register_protocol(proto_openflow, proto_reg_handoff_openflow); |