summaryrefslogtreecommitdiff
path: root/sharkd_session.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2017-02-07 17:05:17 -0500
committerAnders Broman <a.broman58@gmail.com>2017-03-06 11:41:54 +0000
commit56aaa5b705fc87830a0f74f0ad34997ed76f7c92 (patch)
treedd6ec6c8d7fee0aa341b5a3b4b2ff136089c36ba /sharkd_session.c
parentcfa50019b6366404f54da57700e50862aa87ebb0 (diff)
downloadwireshark-56aaa5b705fc87830a0f74f0ad34997ed76f7c92.tar.gz
Switch conversations to use wmem_tree_t instead of (sorted) GSList.
Change-Id: Ifaf25ca5a7974f1d398ceebbb4c6733d4d3e001a Reviewed-on: https://code.wireshark.org/review/20006 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'sharkd_session.c')
-rw-r--r--sharkd_session.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/sharkd_session.c b/sharkd_session.c
index 20cd23a9ec..ba06184e3e 100644
--- a/sharkd_session.c
+++ b/sharkd_session.c
@@ -67,20 +67,7 @@
static struct register_ct *
_get_conversation_table_by_name(const char *name)
{
- guint count = conversation_table_get_num();
- guint i;
-
- /* XXX, wow O(n^2), move to libwireshark */
- for (i = 0; i < count; i++)
- {
- struct register_ct *table = get_conversation_table_by_num(i);
- const char *label = proto_get_protocol_short_name(find_protocol_by_id(get_conversation_proto_id(table)));
-
- if (!strcmp(label, name))
- return table;
- }
-
- return NULL;
+ return get_conversation_by_proto_id(proto_get_id_by_short_name(name));
}
static void
@@ -226,13 +213,13 @@ sharkd_session_filter_data(const char *filter)
}
}
-static void
-sharkd_session_process_info_conv_cb(gpointer data, gpointer user_data)
+static gboolean
+sharkd_session_process_info_conv_cb(const void* key, void* value, void* userdata)
{
- struct register_ct *table = (struct register_ct *) data;
- int *pi = (int *) user_data;
+ struct register_ct *table = (struct register_ct *) value;
+ int *pi = (int *) userdata;
- const char *label = proto_get_protocol_short_name(find_protocol_by_id(get_conversation_proto_id(table)));
+ const char *label = (const char*)key;
if (get_conversation_packet_func(table))
{
@@ -253,6 +240,7 @@ sharkd_session_process_info_conv_cb(gpointer data, gpointer user_data)
*pi = *pi + 1;
}
+ return FALSE;
}
/**