diff options
author | Michael Mann <mmann78@netscape.net> | 2013-11-02 13:05:58 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-11-02 13:05:58 +0000 |
commit | 872f3efeca821b9bf41152c1e962a10bbd13374d (patch) | |
tree | 5e0db679a4f57c7c7731fdfd77a404a9098bb75a | |
parent | 26105b7739e8cf7bdefa6549155dfe62419d07ba (diff) | |
download | wireshark-872f3efeca821b9bf41152c1e962a10bbd13374d.tar.gz |
Prep a few more dissectors to receive their string data through dissector data.
svn path=/trunk/; revision=53045
-rw-r--r-- | epan/dissectors/packet-http-urlencoded.c | 20 | ||||
-rw-r--r-- | epan/dissectors/packet-isup.c | 9 | ||||
-rw-r--r-- | epan/dissectors/packet-l1-events.c | 20 | ||||
-rw-r--r-- | epan/dissectors/packet-media.c | 12 | ||||
-rw-r--r-- | epan/dissectors/packet-multipart.c | 13 |
5 files changed, 46 insertions, 28 deletions
diff --git a/epan/dissectors/packet-http-urlencoded.c b/epan/dissectors/packet-http-urlencoded.c index c4fea32689..4e89e43ca2 100644 --- a/epan/dissectors/packet-http-urlencoded.c +++ b/epan/dissectors/packet-http-urlencoded.c @@ -133,8 +133,8 @@ get_form_key_value(tvbuff_t *tvb, char **ptr, int offset, char stop) } -static void -dissect_form_urlencoded(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +static int +dissect_form_urlencoded(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { proto_tree *url_tree; proto_tree *sub; @@ -147,12 +147,18 @@ dissect_form_urlencoded(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* * No information from "match_string" */ - data_name = (char *)(pinfo->private_data); + data_name = (char *)data; if (! (data_name && data_name[0])) { /* - * No information from "private_data" + * No information from dissector data */ - data_name = NULL; + data_name = (char *)(pinfo->private_data); + if (! (data_name && data_name[0])) { + /* + * No information from "private_data" + */ + data_name = NULL; + } } } @@ -190,6 +196,8 @@ dissect_form_urlencoded(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item_set_len(ti, offset - start_offset); } + + return tvb_length(tvb); } void @@ -211,7 +219,7 @@ proto_register_http_urlencoded(void) proto_urlencoded = proto_register_protocol("HTML Form URL Encoded", "URL Encoded Form Data", "urlencoded-form"); hfi_urlencoded = proto_registrar_get_nth(proto_urlencoded); - form_urlencoded_handle = register_dissector("urlencoded-form", dissect_form_urlencoded, proto_urlencoded); + form_urlencoded_handle = new_register_dissector("urlencoded-form", dissect_form_urlencoded, proto_urlencoded); proto_register_fields(proto_urlencoded, hfi, array_length(hfi)); proto_register_subtree_array(ett, array_length(ett)); diff --git a/epan/dissectors/packet-isup.c b/epan/dissectors/packet-isup.c index 234ee17dcb..3bd5325447 100644 --- a/epan/dissectors/packet-isup.c +++ b/epan/dissectors/packet-isup.c @@ -10734,8 +10734,8 @@ dissect_bicc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_fence(pinfo->cinfo, COL_INFO); } -static void -dissect_application_isup(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +static int +dissect_application_isup(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { /* Set up structures needed to add the protocol subtree and manage it */ proto_item *ti; @@ -10762,7 +10762,7 @@ dissect_application_isup(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) message_tvb = tvb_new_subset_remaining(tvb, 0); dissect_ansi_isup_message(message_tvb, pinfo, isup_tree, ISUP_ITU_STANDARD_VARIANT); - return; + return tvb_length(tvb); } else if(strstr(content_type_parameter_str,"spirou")) { isup_standard = ITU_STANDARD; itu_isup_variant = ISUP_FRENCH_VARIANT; @@ -10824,6 +10824,7 @@ dissect_application_isup(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) message_tvb = tvb_new_subset_remaining(tvb, 0); dissect_isup_message(message_tvb, pinfo, isup_tree, itu_isup_variant); + return tvb_length(tvb); } /* ---------------------------------------------------- stats tree */ @@ -12181,7 +12182,7 @@ proto_reg_handoff_isup(void) dissector_handle_t application_isup_handle; isup_handle = create_dissector_handle(dissect_isup, proto_isup); - application_isup_handle = create_dissector_handle(dissect_application_isup, proto_isup); + application_isup_handle = new_create_dissector_handle(dissect_application_isup, proto_isup); dissector_add_uint("mtp3.service_indicator", MTP_SI_ISUP, isup_handle); dissector_add_string("media_type","application/isup", application_isup_handle); dissector_add_string("tali.opcode", "isot", isup_handle); diff --git a/epan/dissectors/packet-l1-events.c b/epan/dissectors/packet-l1-events.c index f1b1fd4284..dca9a6a3c4 100644 --- a/epan/dissectors/packet-l1-events.c +++ b/epan/dissectors/packet-l1-events.c @@ -47,8 +47,8 @@ static gint proto_l1_events = -1; /* Subtrees */ static gint ett_l1_events = -1; -static void -dissect_l1_events(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +static int +dissect_l1_events(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { proto_tree *subtree; proto_item *ti; @@ -61,12 +61,18 @@ dissect_l1_events(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* * No information from "match_string" */ - data_name = (char *)(pinfo->private_data); + data_name = (char *)data; if (! (data_name && data_name[0])) { /* - * No information from "private_data" + * No information from dissector data */ - data_name = NULL; + data_name = (char *)(pinfo->private_data); + if (! (data_name && data_name[0])) { + /* + * No information from "private_data" + */ + data_name = NULL; + } } } @@ -111,6 +117,8 @@ dissect_l1_events(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) offset = next_offset; } } + + return tvb_length(tvb); } void @@ -126,7 +134,7 @@ proto_register_l1_events(void) "Layer 1 Event Messages", /* Long name */ "Layer 1 Events", /* Short name */ "data-l1-events"); /* Filter name */ - register_dissector("data-l1-events", dissect_l1_events, proto_l1_events); + new_register_dissector("data-l1-events", dissect_l1_events, proto_l1_events); } void diff --git a/epan/dissectors/packet-media.c b/epan/dissectors/packet-media.c index a4c80310d4..9de3b935d3 100644 --- a/epan/dissectors/packet-media.c +++ b/epan/dissectors/packet-media.c @@ -40,15 +40,15 @@ int proto_media = -1; static gint ett_media = -1; static heur_dissector_list_t heur_subdissector_list; -static void -dissect_media(tvbuff_t *tvb, packet_info *pinfo , proto_tree *tree) +static int +dissect_media(tvbuff_t *tvb, packet_info *pinfo , proto_tree *tree, void* data) { int bytes; proto_item *ti; proto_tree *media_tree = 0; - if (dissector_try_heuristic(heur_subdissector_list, tvb, pinfo, tree, NULL)) { - return; + if (dissector_try_heuristic(heur_subdissector_list, tvb, pinfo, tree, data)) { + return tvb_length(tvb); } /* Add media type to the INFO column if it is visible */ @@ -75,6 +75,8 @@ dissect_media(tvbuff_t *tvb, packet_info *pinfo , proto_tree *tree) } } } + + return tvb_length(tvb); } void @@ -89,7 +91,7 @@ proto_register_media(void) "Media", /* short name */ "media" /* abbrev */ ); - register_dissector("media", dissect_media, proto_media); + new_register_dissector("media", dissect_media, proto_media); register_heur_dissector_list("media", &heur_subdissector_list); proto_register_subtree_array(ett, array_length(ett)); diff --git a/epan/dissectors/packet-multipart.c b/epan/dissectors/packet-multipart.c index 7baffacf4e..a1794c7181 100644 --- a/epan/dissectors/packet-multipart.c +++ b/epan/dissectors/packet-multipart.c @@ -797,8 +797,7 @@ process_body_part(proto_tree *tree, tvbuff_t *tvb, const guint8 *boundary, * Call this method to actually dissect the multipart body. * NOTE - Only do so if a boundary string has been found! */ -static void dissect_multipart(tvbuff_t *tvb, packet_info *pinfo, - proto_tree *tree) +static int dissect_multipart(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { proto_tree *subtree = NULL; proto_item *ti = NULL; @@ -816,7 +815,7 @@ static void dissect_multipart(tvbuff_t *tvb, packet_info *pinfo, "The multipart dissector could not find " "the required boundary parameter."); call_dissector(data_handle, tvb, pinfo, tree); - return; + return tvb_length(tvb); } boundary = (guint8 *)m_info->boundary; boundary_len = m_info->boundary_length; @@ -853,7 +852,7 @@ static void dissect_multipart(tvbuff_t *tvb, packet_info *pinfo, call_dissector(data_handle, tvb, pinfo, subtree); /* Clean up the dynamically allocated memory */ cleanup_multipart_info(m_info); - return; + return tvb_length(tvb); } /* * Process the encapsulated bodies @@ -864,7 +863,7 @@ static void dissect_multipart(tvbuff_t *tvb, packet_info *pinfo, if (header_start == -1) { /* Clean up the dynamically allocated memory */ cleanup_multipart_info(m_info); - return; + return tvb_length(tvb); } } /* @@ -877,7 +876,7 @@ static void dissect_multipart(tvbuff_t *tvb, packet_info *pinfo, } /* Clean up the dynamically allocated memory */ cleanup_multipart_info(m_info); - return; + return tvb_length(tvb); } /* Returns index of method in multipart_headers */ @@ -1059,7 +1058,7 @@ proto_reg_handoff_multipart(void) /* * Handle for multipart dissection */ - multipart_handle = create_dissector_handle( + multipart_handle = new_create_dissector_handle( dissect_multipart, proto_multipart); dissector_add_string("media_type", |