aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-xmpp-conference.c140
-rw-r--r--epan/dissectors/packet-xmpp-conference.h4
-rw-r--r--epan/dissectors/packet-xmpp-core.c300
-rw-r--r--epan/dissectors/packet-xmpp-core.h22
-rw-r--r--epan/dissectors/packet-xmpp-gtalk.c311
-rw-r--r--epan/dissectors/packet-xmpp-gtalk.h20
-rw-r--r--epan/dissectors/packet-xmpp-jingle.c440
-rw-r--r--epan/dissectors/packet-xmpp-jingle.h6
-rw-r--r--epan/dissectors/packet-xmpp-other.c554
-rw-r--r--epan/dissectors/packet-xmpp-other.h52
-rw-r--r--epan/dissectors/packet-xmpp-utils.c281
-rw-r--r--epan/dissectors/packet-xmpp-utils.h144
-rw-r--r--epan/dissectors/packet-xmpp.c33
13 files changed, 1136 insertions, 1171 deletions
diff --git a/epan/dissectors/packet-xmpp-conference.c b/epan/dissectors/packet-xmpp-conference.c
index 0d6ad51bfd..f9fc1c5c71 100644
--- a/epan/dissectors/packet-xmpp-conference.c
+++ b/epan/dissectors/packet-xmpp-conference.c
@@ -31,13 +31,9 @@
#endif
#include <glib.h>
-#include <stdio.h>
-#include <epan/proto.h>
#include <epan/packet.h>
-#include <epan/packet_info.h>
-#include <epan/epan.h>
-#include <epan/expert.h>
+
#include <epan/dissectors/packet-xml.h>
#include <packet-xmpp.h>
@@ -45,50 +41,50 @@
#include <packet-xmpp-conference.h>
-static void xmpp_conf_desc(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_conf_state(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_conf_users(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_conf_user(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_conf_endpoint(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_conf_media(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+static void xmpp_conf_desc(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_conf_state(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_conf_users(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_conf_user(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_conf_endpoint(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_conf_media(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
void
-xmpp_conferece_info_advert(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_conferece_info_advert(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *cinfo_item;
proto_tree *cinfo_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"isfocus", -1, TRUE, TRUE, NULL, NULL}
};
- cinfo_item = proto_tree_add_item(tree, hf_xmpp_conf_info, tvb, element->offset, element->length,
+ cinfo_item = proto_tree_add_item(tree, hf_xmpp_conf_info, tvb, element->offset, element->length,
ENC_BIG_ENDIAN);
cinfo_tree = proto_item_add_subtree(cinfo_item, ett_xmpp_conf_info);
- display_attrs(cinfo_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(cinfo_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(cinfo_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(cinfo_tree, element, pinfo, tvb, NULL, 0);
}
void
-xmpp_conference_info(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_conference_info(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *cinfo_item;
proto_tree *cinfo_tree;
const gchar *state_enums[] = {"full", "partial", "deleted"};
- array_t *state_array = ep_init_array_t(state_enums, array_length(state_enums));
+ xmpp_array_t *state_array = xmpp_ep_init_array_t(state_enums, array_length(state_enums));
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"entity", -1, TRUE, TRUE, NULL, NULL},
- {"state", -1, FALSE, TRUE, val_enum_list, state_array},
+ {"state", -1, FALSE, TRUE, xmpp_val_enum_list, state_array},
{"version", -1, FALSE, TRUE, NULL, NULL},
{"sid", hf_xmpp_conf_info_sid, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "conference-description", xmpp_conf_desc, ONE},
{NAME, "conference-state", xmpp_conf_state, ONE},
/*{NAME, "host-info", xmpp_conf_host_info, ONE},*/
@@ -99,21 +95,21 @@ xmpp_conference_info(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, elemen
col_append_fstr(pinfo->cinfo, COL_INFO, "CONFERENC-INFO ");
- cinfo_item = proto_tree_add_item(tree, hf_xmpp_conf_info, tvb, element->offset, element->length,
+ cinfo_item = proto_tree_add_item(tree, hf_xmpp_conf_info, tvb, element->offset, element->length,
ENC_BIG_ENDIAN);
cinfo_tree = proto_item_add_subtree(cinfo_item, ett_xmpp_conf_info);
- display_attrs(cinfo_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(cinfo_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(cinfo_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(cinfo_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_conf_desc(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_conf_desc(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *desc_item;
proto_tree *desc_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"subject", -1, FALSE, TRUE, NULL, NULL},
{"display-text", -1, FALSE, FALSE, NULL, NULL},
{"free-text", -1, FALSE, FALSE, NULL, NULL},
@@ -121,7 +117,7 @@ xmpp_conf_desc(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *e
};
/*
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "keywords", xmpp_conf_desc_keywords, ONE},
{NAME, "conf-uris", xmpp_conf_desc_conf_uris, ONE},
{NAME, "service-uris", xmpp_conf_desc_serv_uris, ONE},
@@ -132,22 +128,22 @@ xmpp_conf_desc(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *e
desc_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "CONFERENCE DESCRIPTION");
desc_tree = proto_item_add_subtree(desc_item, ett_xmpp_conf_desc);
- change_elem_to_attrib("subject", "subject", element, transform_func_cdata);
- change_elem_to_attrib("display-text", "display-text", element, transform_func_cdata);
- change_elem_to_attrib("free-text", "free-text", element, transform_func_cdata);
- change_elem_to_attrib("maximum-user-count", "max-user-count", element, transform_func_cdata);
+ xmpp_change_elem_to_attrib("subject", "subject", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("display-text", "display-text", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("free-text", "free-text", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("maximum-user-count", "max-user-count", element, xmpp_transform_func_cdata);
- display_attrs(desc_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(desc_tree, element, pinfo, tvb, NULL,0);
+ xmpp_display_attrs(desc_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(desc_tree, element, pinfo, tvb, NULL,0);
}
static void
-xmpp_conf_state(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_conf_state(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *state_item;
proto_tree *state_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"user-count", -1, FALSE, TRUE, NULL, NULL},
{"active", -1, FALSE, TRUE, NULL, NULL},
{"locked", -1, FALSE, TRUE, NULL, NULL}
@@ -156,49 +152,49 @@ xmpp_conf_state(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *
state_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "CONFERENCE STATE");
state_tree = proto_item_add_subtree(state_item, ett_xmpp_conf_state);
- change_elem_to_attrib("user-count", "user-count", element, transform_func_cdata);
- change_elem_to_attrib("active", "active", element, transform_func_cdata);
- change_elem_to_attrib("locked", "locked", element, transform_func_cdata);
+ xmpp_change_elem_to_attrib("user-count", "user-count", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("active", "active", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("locked", "locked", element, xmpp_transform_func_cdata);
+
+ xmpp_display_attrs(state_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(state_tree, element, pinfo, tvb, NULL,0);
- display_attrs(state_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(state_tree, element, pinfo, tvb, NULL,0);
-
}
static void
-xmpp_conf_users(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_conf_users(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *users_item;
proto_tree *users_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"state", -1, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "user", xmpp_conf_user, MANY}
};
users_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "USERS");
- users_tree = proto_item_add_subtree(users_item, ett_xmpp_conf_users);
+ users_tree = proto_item_add_subtree(users_item, ett_xmpp_conf_users);
- display_attrs(users_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(users_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(users_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(users_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_conf_user(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_conf_user(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *user_item;
proto_tree *user_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"entity", -1, FALSE, TRUE, NULL, NULL},
{"state", -1, FALSE, TRUE, NULL, NULL},
{"display-text", -1, FALSE, TRUE, NULL, NULL},
{"cascaded-focus", -1, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
/*{NAME, "associated-aors", xmpp_conf_assoc_aors, ONE},*/
/*{NAME, "roles", xmpp_conf_roles, ONE},*/
/*{NAME, "languages", xmpp_conf_langs, ONE},*/
@@ -208,20 +204,20 @@ xmpp_conf_user(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *e
user_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "USERS");
user_tree = proto_item_add_subtree(user_item, ett_xmpp_conf_user);
- change_elem_to_attrib("display-text", "display-text", element, transform_func_cdata);
- change_elem_to_attrib("cascaded-focus", "cascaded-focus", element, transform_func_cdata);
+ xmpp_change_elem_to_attrib("display-text", "display-text", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("cascaded-focus", "cascaded-focus", element, xmpp_transform_func_cdata);
- display_attrs(user_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(user_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(user_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(user_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_conf_endpoint(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_conf_endpoint(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *endpoint_item;
proto_tree *endpoint_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"entity", -1, FALSE, TRUE, NULL, NULL},
{"state", -1, FALSE, TRUE, NULL, NULL},
{"display-text", -1, FALSE, TRUE, NULL, NULL},
@@ -230,7 +226,7 @@ xmpp_conf_endpoint(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_
{"disconnection-method", -1, FALSE, TRUE, NULL, NULL},
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
/*{NAME,"referred",...,ONE},*/
/*{NAME,"joining-info",...,ONE},*/
/*{NAME,"disconnection-info",...,ONE},*/
@@ -242,23 +238,23 @@ xmpp_conf_endpoint(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_
endpoint_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "ENDPOINT");
endpoint_tree = proto_item_add_subtree(endpoint_item, ett_xmpp_conf_endpoint);
- change_elem_to_attrib("display-text", "display-text", element, transform_func_cdata);
- change_elem_to_attrib("status", "status", element, transform_func_cdata);
- change_elem_to_attrib("joining-method", "joining-method", element, transform_func_cdata);
- change_elem_to_attrib("disconnection-method", "disconnection-method", element, transform_func_cdata);
+ xmpp_change_elem_to_attrib("display-text", "display-text", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("status", "status", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("joining-method", "joining-method", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("disconnection-method", "disconnection-method", element, xmpp_transform_func_cdata);
- display_attrs(endpoint_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(endpoint_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(endpoint_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(endpoint_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_conf_media(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_conf_media(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *media_item;
proto_tree *media_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"id", -1, TRUE, TRUE, NULL, NULL},
{"display-text", -1, FALSE, TRUE, NULL, NULL},
{"type", -1, FALSE, TRUE, NULL, NULL},
@@ -270,14 +266,14 @@ xmpp_conf_media(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *
media_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "MEDIA");
media_tree = proto_item_add_subtree(media_item, ett_xmpp_conf_media);
- change_elem_to_attrib("display-text", "display-text", element, transform_func_cdata);
- change_elem_to_attrib("type", "type", element, transform_func_cdata);
- change_elem_to_attrib("label", "label", element, transform_func_cdata);
- change_elem_to_attrib("src-id", "src-id", element, transform_func_cdata);
- change_elem_to_attrib("status", "status", element, transform_func_cdata);
+ xmpp_change_elem_to_attrib("display-text", "display-text", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("type", "type", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("label", "label", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("src-id", "src-id", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("status", "status", element, xmpp_transform_func_cdata);
- display_attrs(media_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(media_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(media_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(media_tree, element, pinfo, tvb, NULL, 0);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
diff --git a/epan/dissectors/packet-xmpp-conference.h b/epan/dissectors/packet-xmpp-conference.h
index 9f8d48b169..9972f7f467 100644
--- a/epan/dissectors/packet-xmpp-conference.h
+++ b/epan/dissectors/packet-xmpp-conference.h
@@ -26,8 +26,8 @@
#ifndef XMPP_CONFERENCE_H
#define XMPP_CONFERENCE_H
-extern void xmpp_conferece_info_advert(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_conference_info(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_conferece_info_advert(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_conference_info(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
#endif /* XMPP_CONFERENCE_H */
diff --git a/epan/dissectors/packet-xmpp-core.c b/epan/dissectors/packet-xmpp-core.c
index 3a1cf4c8b9..7640cc5f69 100644
--- a/epan/dissectors/packet-xmpp-core.c
+++ b/epan/dissectors/packet-xmpp-core.c
@@ -28,17 +28,11 @@
#include "config.h"
#endif
-
-#include<stdio.h>
-#include<string.h>
#include <glib.h>
#include <epan/packet.h>
-#include <epan/proto.h>
-#include <epan/tvbuff.h>
#include <epan/emem.h>
#include <epan/conversation.h>
-#include <epan/strutil.h>
#include <epan/expert.h>
#include <epan/dissectors/packet-xml.h>
@@ -56,37 +50,37 @@
#include "epan/tvbparse.h"
-void xmpp_auth(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
+void xmpp_auth(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
void xmpp_challenge_response_success(proto_tree *tree, tvbuff_t *tvb,
- packet_info *pinfo, element_t *packet, gint hf, gint ett, const char *col_info);
+ packet_info *pinfo, xmpp_element_t *packet, gint hf, gint ett, const char *col_info);
-void xmpp_iq(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
+void xmpp_iq(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
-static void xmpp_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_error_text(proto_tree *tree, tvbuff_t *tvb, element_t *element);
+static void xmpp_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_error_text(proto_tree *tree, tvbuff_t *tvb, xmpp_element_t *element);
-void xmpp_presence(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
-static void xmpp_presence_status(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+void xmpp_presence(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
+static void xmpp_presence_status(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-void xmpp_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
-static void xmpp_message_thread(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_message_body(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_message_subject(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+void xmpp_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
+static void xmpp_message_thread(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_message_body(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_message_subject(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-void xmpp_failure(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
-static void xmpp_failure_text(proto_tree *tree, tvbuff_t *tvb, element_t *element);
+void xmpp_failure(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
+static void xmpp_failure_text(proto_tree *tree, tvbuff_t *tvb, xmpp_element_t *element);
-static void xmpp_features_mechanisms(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
+static void xmpp_features_mechanisms(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
void
-xmpp_iq(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
+xmpp_iq(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet)
{
proto_item *xmpp_iq_item;
proto_tree *xmpp_iq_tree;
- attr_t *attr_id, *attr_type;
+ xmpp_attr_t *attr_id, *attr_type;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, FALSE, NULL, NULL},
{"id", hf_xmpp_id, TRUE, TRUE, NULL, NULL},
{"type", hf_xmpp_type, TRUE, TRUE, NULL, NULL},
@@ -99,40 +93,40 @@ xmpp_iq(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
xmpp_conv_info_t *xmpp_info = NULL;
xmpp_transaction_t *reqresp_trans = NULL;
- elem_info elems_info [] = {
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns","http://jabber.org/protocol/disco#items"), xmpp_disco_items_query, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns", "jabber:iq:roster"), xmpp_roster_query, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns", "http://jabber.org/protocol/disco#info"), xmpp_disco_info_query, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns", "http://jabber.org/protocol/bytestreams"), xmpp_bytestreams_query, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns", "http://jabber.org/protocol/muc#owner"), xmpp_muc_owner_query, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns", "http://jabber.org/protocol/muc#admin"), xmpp_muc_admin_query, ONE},
+ xmpp_elem_info elems_info [] = {
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns","http://jabber.org/protocol/disco#items"), xmpp_disco_items_query, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns", "jabber:iq:roster"), xmpp_roster_query, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns", "http://jabber.org/protocol/disco#info"), xmpp_disco_info_query, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns", "http://jabber.org/protocol/bytestreams"), xmpp_bytestreams_query, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns", "http://jabber.org/protocol/muc#owner"), xmpp_muc_owner_query, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns", "http://jabber.org/protocol/muc#admin"), xmpp_muc_admin_query, ONE},
{NAME, "bind", xmpp_iq_bind, ONE},
- {NAME_AND_ATTR, name_attr_struct("session", "xmlns", "urn:ietf:params:xml:ns:xmpp-session"), xmpp_session, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("session", "xmlns", "urn:ietf:params:xml:ns:xmpp-session"), xmpp_session, ONE},
{NAME, "vCard", xmpp_vcard, ONE},
{NAME, "jingle", xmpp_jingle, ONE},
- {NAME_AND_ATTR, name_attr_struct("services", "xmlns", "http://jabber.org/protocol/jinglenodes"), xmpp_jinglenodes_services, ONE},
- {NAME_AND_ATTR, name_attr_struct("channel", "xmlns", "http://jabber.org/protocol/jinglenodes#channel"), xmpp_jinglenodes_channel, ONE},
- {NAME_AND_ATTR, name_attr_struct("open", "xmlns", "http://jabber.org/protocol/ibb"), xmpp_ibb_open, ONE},
- {NAME_AND_ATTR, name_attr_struct("close", "xmlns", "http://jabber.org/protocol/ibb"), xmpp_ibb_close, ONE},
- {NAME_AND_ATTR, name_attr_struct("data", "xmlns", "http://jabber.org/protocol/ibb"), xmpp_ibb_data, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("services", "xmlns", "http://jabber.org/protocol/jinglenodes"), xmpp_jinglenodes_services, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("channel", "xmlns", "http://jabber.org/protocol/jinglenodes#channel"), xmpp_jinglenodes_channel, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("open", "xmlns", "http://jabber.org/protocol/ibb"), xmpp_ibb_open, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("close", "xmlns", "http://jabber.org/protocol/ibb"), xmpp_ibb_close, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("data", "xmlns", "http://jabber.org/protocol/ibb"), xmpp_ibb_data, ONE},
{NAME, "si", xmpp_si, ONE},
{NAME, "error", xmpp_error, ONE},
- {NAME_AND_ATTR, name_attr_struct("session", "xmlns", "http://www.google.com/session"), xmpp_gtalk_session, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns","google:jingleinfo"), xmpp_gtalk_jingleinfo_query, ONE},
- {NAME_AND_ATTR, name_attr_struct("usersetting", "xmlns","google:setting"), xmpp_gtalk_usersetting, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns","jabber:iq:last"), xmpp_last_query, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns","jabber:iq:version"), xmpp_version_query, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns","google:mail:notify"), xmpp_gtalk_mail_query, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("session", "xmlns", "http://www.google.com/session"), xmpp_gtalk_session, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns","google:jingleinfo"), xmpp_gtalk_jingleinfo_query, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("usersetting", "xmlns","google:setting"), xmpp_gtalk_usersetting, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns","jabber:iq:last"), xmpp_last_query, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns","jabber:iq:version"), xmpp_version_query, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns","google:mail:notify"), xmpp_gtalk_mail_query, ONE},
{NAME, "mailbox", xmpp_gtalk_mail_mailbox, ONE},
{NAME, "new-mail", xmpp_gtalk_mail_new_mail, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns","google:shared-status"), xmpp_gtalk_status_query, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns","google:shared-status"), xmpp_gtalk_status_query, ONE},
{NAME, "conference-info", xmpp_conference_info, ONE},
- {NAME_AND_ATTR, name_attr_struct("ping", "xmlns","urn:xmpp:ping"), xmpp_ping, ONE},
- {NAME_AND_ATTR, name_attr_struct("inputevt", "xmlns","http://jitsi.org/protocol/inputevt"), xmpp_jitsi_inputevt, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("ping", "xmlns","urn:xmpp:ping"), xmpp_ping, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("inputevt", "xmlns","http://jitsi.org/protocol/inputevt"), xmpp_jitsi_inputevt, ONE},
};
- attr_id = get_attr(packet, "id");
- attr_type = get_attr(packet, "type");
+ attr_id = xmpp_get_attr(packet, "id");
+ attr_type = xmpp_get_attr(packet, "type");
conversation = find_or_create_conversation(pinfo);
xmpp_info = conversation_get_proto_data(conversation, proto_xmpp);
@@ -140,13 +134,13 @@ xmpp_iq(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
xmpp_iq_item = proto_tree_add_item(tree, hf_xmpp_iq, tvb, packet->offset, packet->length, ENC_LITTLE_ENDIAN);
xmpp_iq_tree = proto_item_add_subtree(xmpp_iq_item,ett_xmpp_iq);
- display_attrs(xmpp_iq_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(xmpp_iq_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
col_clear(pinfo->cinfo, COL_INFO);
col_add_fstr(pinfo->cinfo, COL_INFO, "IQ(%s) ", attr_type?attr_type->value:"");
- display_elems(xmpp_iq_tree, packet, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_elems(xmpp_iq_tree, packet, pinfo, tvb, elems_info, array_length(elems_info));
/*displays generated info such as req/resp tracking, jingle sid
* in each packet related to specified jingle session and IBB sid in packet related to it*/
@@ -205,14 +199,14 @@ xmpp_iq(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
static void
-xmpp_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *error_item;
proto_tree *error_tree;
- element_t *text_element, *cond_element;
+ xmpp_element_t *text_element, *cond_element;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"type", hf_xmpp_error_type, TRUE, TRUE, NULL, NULL},
{"code", hf_xmpp_error_code, FALSE, TRUE, NULL, NULL},
{"condition", hf_xmpp_error_condition, TRUE, TRUE, NULL, NULL} /*TODO: validate list to the condition element*/
@@ -220,26 +214,26 @@ xmpp_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *eleme
gchar *error_info;
- attr_t *fake_condition = NULL;
+ xmpp_attr_t *fake_condition = NULL;
error_info = ep_strdup("Stanza error");
error_item = proto_tree_add_item(tree, hf_xmpp_error, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
error_tree = proto_item_add_subtree(error_item, ett_xmpp_query_item);
- cond_element = steal_element_by_attr(element, "xmlns", "urn:ietf:params:xml:ns:xmpp-stanzas");
+ cond_element = xmpp_steal_element_by_attr(element, "xmlns", "urn:ietf:params:xml:ns:xmpp-stanzas");
if(cond_element)
{
- fake_condition = ep_init_attr_t(cond_element->name, cond_element->offset, cond_element->length);
+ fake_condition = xmpp_ep_init_attr_t(cond_element->name, cond_element->offset, cond_element->length);
g_hash_table_insert(element->attrs,"condition", fake_condition);
error_info = ep_strdup_printf("%s: %s;", error_info, cond_element->name);
}
- display_attrs(error_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(error_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- while((text_element = steal_element_by_name(element, "text")) != NULL)
+ while((text_element = xmpp_steal_element_by_name(element, "text")) != NULL)
{
xmpp_error_text(error_tree, tvb, text_element);
@@ -252,49 +246,49 @@ xmpp_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *eleme
}
static void
-xmpp_error_text(proto_tree *tree, tvbuff_t *tvb, element_t *element)
+xmpp_error_text(proto_tree *tree, tvbuff_t *tvb, xmpp_element_t *element)
{
proto_tree_add_string(tree, hf_xmpp_error_text, tvb, element->offset, element->length, element->data?element->data->value:"");
}
void
-xmpp_presence(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
+xmpp_presence(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet)
{
proto_item *presence_item;
proto_tree *presence_tree;
const gchar *type_enums[] = {"error", "probe", "subscribe", "subscribed",
"unavailable", "unsubscribe", "unsubscribed"};
- array_t *type_array = ep_init_array_t(type_enums, array_length(type_enums));
+ xmpp_array_t *type_array = xmpp_ep_init_array_t(type_enums, array_length(type_enums));
const gchar *show_enums[] = {"away", "chat", "dnd", "xa"};
- array_t *show_array = ep_init_array_t(show_enums, array_length(show_enums));
+ xmpp_array_t *show_array = xmpp_ep_init_array_t(show_enums, array_length(show_enums));
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"from", hf_xmpp_from, FALSE, FALSE, NULL, NULL},
{"id", hf_xmpp_id, FALSE, TRUE, NULL, NULL},
{"to", hf_xmpp_to, FALSE, FALSE, NULL, NULL},
- {"type", hf_xmpp_type, FALSE, TRUE, val_enum_list, type_array},
+ {"type", hf_xmpp_type, FALSE, TRUE, xmpp_val_enum_list, type_array},
{"xml:lang",-1, FALSE, FALSE, NULL,NULL},
- {"show", hf_xmpp_presence_show, FALSE, TRUE, val_enum_list, show_array},
+ {"show", hf_xmpp_presence_show, FALSE, TRUE, xmpp_val_enum_list, show_array},
{"priority", -1, FALSE, FALSE, NULL, NULL}
};
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "status", xmpp_presence_status, MANY},
- {NAME_AND_ATTR, name_attr_struct("c","xmlns","http://jabber.org/protocol/caps"), xmpp_presence_caps, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("c","xmlns","http://jabber.org/protocol/caps"), xmpp_presence_caps, ONE},
{NAME, "delay", xmpp_delay, ONE},
- {NAME_AND_ATTR, name_attr_struct("x","xmlns", "jabber:x:delay"), xmpp_delay, ONE},
- {NAME_AND_ATTR, name_attr_struct("x","xmlns", "vcard-temp:x:update"), xmpp_vcard_x_update, ONE},
- {NAME_AND_ATTR, name_attr_struct("x","xmlns","http://jabber.org/protocol/muc"), xmpp_muc_x, ONE},
- {NAME_AND_ATTR, name_attr_struct("x","xmlns","http://jabber.org/protocol/muc#user"), xmpp_muc_user_x, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("x","xmlns", "jabber:x:delay"), xmpp_delay, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("x","xmlns", "vcard-temp:x:update"), xmpp_vcard_x_update, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("x","xmlns","http://jabber.org/protocol/muc"), xmpp_muc_x, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("x","xmlns","http://jabber.org/protocol/muc#user"), xmpp_muc_user_x, ONE},
{NAME, "error", xmpp_error, ONE},
- {NAME_AND_ATTR, name_attr_struct("query", "xmlns","jabber:iq:last"), xmpp_last_query, ONE}
+ {NAME_AND_ATTR, xmpp_name_attr_struct("query", "xmlns","jabber:iq:last"), xmpp_last_query, ONE}
};
- element_t *show, *priority;
+ xmpp_element_t *show, *priority;
col_clear(pinfo->cinfo, COL_INFO);
col_append_fstr(pinfo->cinfo, COL_INFO, "PRESENCE ");
@@ -302,85 +296,85 @@ xmpp_presence(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *pa
presence_item = proto_tree_add_item(tree, hf_xmpp_presence, tvb, packet->offset, packet->length, ENC_BIG_ENDIAN);
presence_tree = proto_item_add_subtree(presence_item, ett_xmpp_presence);
- if((show = steal_element_by_name(packet, "show"))!=NULL)
+ if((show = xmpp_steal_element_by_name(packet, "show"))!=NULL)
{
- attr_t *fake_show = ep_init_attr_t(show->data?show->data->value:"",show->offset, show->length);
+ xmpp_attr_t *fake_show = xmpp_ep_init_attr_t(show->data?show->data->value:"",show->offset, show->length);
g_hash_table_insert(packet->attrs, "show", fake_show);
}
- if((priority = steal_element_by_name(packet, "priority"))!=NULL)
+ if((priority = xmpp_steal_element_by_name(packet, "priority"))!=NULL)
{
- attr_t *fake_priority = ep_init_attr_t(priority->data?priority->data->value:"",priority->offset, priority->length);
+ xmpp_attr_t *fake_priority = xmpp_ep_init_attr_t(priority->data?priority->data->value:"",priority->offset, priority->length);
g_hash_table_insert(packet->attrs, "priority", fake_priority);
}
- display_attrs(presence_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(presence_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(presence_tree, packet, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_elems(presence_tree, packet, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_presence_status(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_presence_status(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *status_item;
proto_tree *status_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xml:lang", -1, FALSE, TRUE, NULL, NULL},
{"value", -1, TRUE, TRUE, NULL, NULL}
};
- attr_t *fake_value;
+ xmpp_attr_t *fake_value;
status_item = proto_tree_add_item(tree, hf_xmpp_presence_status, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
status_tree = proto_item_add_subtree(status_item, ett_xmpp_presence_status);
if(element->data)
- fake_value = ep_init_attr_t(element->data->value, element->offset, element->length);
+ fake_value = xmpp_ep_init_attr_t(element->data->value, element->offset, element->length);
else
- fake_value = ep_init_attr_t("(empty)", element->offset, element->length);
+ fake_value = xmpp_ep_init_attr_t("(empty)", element->offset, element->length);
g_hash_table_insert(element->attrs, "value", fake_value);
- display_attrs(status_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(status_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(status_tree, tvb, pinfo, element);
}
void
-xmpp_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
+xmpp_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet)
{
proto_item *message_item;
proto_tree *message_tree;
const gchar *type_enums[] = {"chat", "error", "groupchat", "headline", "normal"};
- array_t *type_array = ep_init_array_t(type_enums, array_length(type_enums));
+ xmpp_array_t *type_array = xmpp_ep_init_array_t(type_enums, array_length(type_enums));
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"from", hf_xmpp_from, FALSE, FALSE, NULL, NULL},
{"id", hf_xmpp_id, FALSE, TRUE, NULL, NULL},
{"to", hf_xmpp_to, FALSE, FALSE, NULL, NULL},
- {"type", hf_xmpp_type, FALSE, TRUE, val_enum_list, type_array},
+ {"type", hf_xmpp_type, FALSE, TRUE, xmpp_val_enum_list, type_array},
{"xml:lang",-1, FALSE, FALSE, NULL,NULL},
{"chatstate", hf_xmpp_message_chatstate, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
- {NAME_AND_ATTR, name_attr_struct("data", "xmlns", "http://jabber.org/protocol/ibb"), xmpp_ibb_data, ONE},
+ xmpp_elem_info elems_info [] = {
+ {NAME_AND_ATTR, xmpp_name_attr_struct("data", "xmlns", "http://jabber.org/protocol/ibb"), xmpp_ibb_data, ONE},
{NAME, "thread", xmpp_message_thread, ONE},
{NAME, "body", xmpp_message_body, MANY},
{NAME, "subject", xmpp_message_subject, MANY},
{NAME, "delay", xmpp_delay, ONE},
- {NAME_AND_ATTR, name_attr_struct("x","xmlns","jabber:x:event"), xmpp_x_event, ONE},
- {NAME_AND_ATTR, name_attr_struct("x","xmlns","http://jabber.org/protocol/muc#user"), xmpp_muc_user_x, ONE},
- {NAME_AND_ATTR, name_attr_struct("x","xmlns","google:nosave"), xmpp_gtalk_nosave_x, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("x","xmlns","jabber:x:event"), xmpp_x_event, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("x","xmlns","http://jabber.org/protocol/muc#user"), xmpp_muc_user_x, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("x","xmlns","google:nosave"), xmpp_gtalk_nosave_x, ONE},
{NAME, "error", xmpp_error, ONE}
};
- element_t *chatstate;
+ xmpp_element_t *chatstate;
- attr_t *id = NULL;
+ xmpp_attr_t *id = NULL;
conversation_t *conversation = NULL;
xmpp_conv_info_t *xmpp_info = NULL;
@@ -388,7 +382,7 @@ xmpp_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *pac
col_clear(pinfo->cinfo, COL_INFO);
col_append_fstr(pinfo->cinfo, COL_INFO, "MESSAGE ");
- id = get_attr(packet, "id");
+ id = xmpp_get_attr(packet, "id");
conversation = find_or_create_conversation(pinfo);
xmpp_info = conversation_get_proto_data(conversation, proto_xmpp);
@@ -396,15 +390,15 @@ xmpp_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *pac
message_item = proto_tree_add_item(tree, hf_xmpp_message, tvb, packet->offset, packet->length, ENC_BIG_ENDIAN);
message_tree = proto_item_add_subtree(message_item, ett_xmpp_message);
- if((chatstate = steal_element_by_attr(packet, "xmlns", "http://jabber.org/protocol/chatstates"))!=NULL)
+ if((chatstate = xmpp_steal_element_by_attr(packet, "xmlns", "http://jabber.org/protocol/chatstates"))!=NULL)
{
- attr_t *fake_chatstate_attr = ep_init_attr_t(chatstate->name, chatstate->offset, chatstate->length);
+ xmpp_attr_t *fake_chatstate_attr = xmpp_ep_init_attr_t(chatstate->name, chatstate->offset, chatstate->length);
g_hash_table_insert(packet->attrs, "chatstate", fake_chatstate_attr);
}
- display_attrs(message_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(message_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(message_tree, packet, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_elems(message_tree, packet, pinfo, tvb, elems_info, array_length(elems_info));
/*Displays data about IBB session*/
if(xmpp_info && id)
@@ -422,86 +416,86 @@ xmpp_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *pac
}
static void
-xmpp_message_body(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_message_body(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *body_item;
proto_tree *body_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xml:lang", -1, FALSE, TRUE, NULL, NULL},
{"value", -1, TRUE, TRUE, NULL, NULL}
};
- attr_t *fake_data_attr;
+ xmpp_attr_t *fake_data_attr;
body_item = proto_tree_add_item(tree, hf_xmpp_message_body, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
body_tree = proto_item_add_subtree(body_item, ett_xmpp_message_body);
- fake_data_attr = ep_init_attr_t(element->data?element->data->value:"", element->offset, element->length);
+ fake_data_attr = xmpp_ep_init_attr_t(element->data?element->data->value:"", element->offset, element->length);
g_hash_table_insert(element->attrs, "value", fake_data_attr);
- display_attrs(body_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(body_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(body_tree, tvb, pinfo, element);
}
static void
-xmpp_message_subject(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element) {
+xmpp_message_subject(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element) {
proto_item *subject_item;
proto_tree *subject_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xml:lang", -1, FALSE, TRUE, NULL, NULL},
{"value", -1, TRUE, FALSE, NULL, NULL}
};
- attr_t *fake_data_attr;
+ xmpp_attr_t *fake_data_attr;
subject_item = proto_tree_add_item(tree, hf_xmpp_message_subject, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
subject_tree = proto_item_add_subtree(subject_item, ett_xmpp_message_subject);
- fake_data_attr = ep_init_attr_t(element->data?element->data->value:"", element->offset, element->length);
+ fake_data_attr = xmpp_ep_init_attr_t(element->data?element->data->value:"", element->offset, element->length);
g_hash_table_insert(element->attrs, "value", fake_data_attr);
- display_attrs(subject_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(subject_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(subject_tree, tvb, pinfo, element);
}
static void
-xmpp_message_thread(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_message_thread(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *thread_item;
proto_tree *thread_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"parent", hf_xmpp_message_thread_parent, FALSE, TRUE, NULL, NULL},
{"value", -1, TRUE, TRUE, NULL, NULL}
};
- attr_t *fake_value;
+ xmpp_attr_t *fake_value;
thread_item = proto_tree_add_item(tree, hf_xmpp_message_thread, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
thread_tree = proto_item_add_subtree(thread_item, ett_xmpp_message_thread);
- fake_value = ep_init_attr_t(element->data?element->data->value:"", element->offset, element->length);
+ fake_value = xmpp_ep_init_attr_t(element->data?element->data->value:"", element->offset, element->length);
g_hash_table_insert(element->attrs, "value", fake_value);
- display_attrs(thread_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(thread_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(thread_tree, tvb, pinfo, element);
}
void
-xmpp_auth(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
+xmpp_auth(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet)
{
proto_item *auth_item;
proto_tree *auth_tree;
- attr_info_ext attrs_info[]={
+ xmpp_attr_info_ext attrs_info[]={
{"urn:ietf:params:xml:ns:xmpp-sasl", {"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}},
{"urn:ietf:params:xml:ns:xmpp-sasl", {"mechanism", -1, TRUE, TRUE, NULL, NULL}},
{"http://www.google.com/talk/protocol/auth", {"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}},
@@ -514,7 +508,7 @@ xmpp_auth(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet
auth_item = proto_tree_add_item(tree, hf_xmpp_auth, tvb, packet->offset, packet->length, ENC_BIG_ENDIAN);
auth_tree = proto_item_add_subtree(auth_item, ett_xmpp_auth);
- display_attrs_ext(auth_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs_ext(auth_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_cdata(auth_tree, tvb, packet, -1);
@@ -523,12 +517,12 @@ xmpp_auth(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet
void
xmpp_challenge_response_success(proto_tree *tree, tvbuff_t *tvb,
- packet_info *pinfo, element_t *packet, gint hf, gint ett, const char *col_info)
+ packet_info *pinfo, xmpp_element_t *packet, gint hf, gint ett, const char *col_info)
{
proto_item *item;
proto_tree *subtree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
@@ -538,19 +532,19 @@ xmpp_challenge_response_success(proto_tree *tree, tvbuff_t *tvb,
item = proto_tree_add_item(tree, hf, tvb, packet->offset, packet->length, ENC_BIG_ENDIAN);
subtree = proto_item_add_subtree(item, ett);
- display_attrs(subtree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(subtree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_cdata(subtree, tvb, packet, -1);
xmpp_unknown(subtree, tvb, pinfo, packet);
}
void
-xmpp_failure(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
+xmpp_failure(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet)
{
proto_item *fail_item;
proto_tree *fail_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"condition", -1, FALSE, TRUE, NULL, NULL}
};
@@ -561,33 +555,33 @@ xmpp_failure(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *pac
"transition-needed"
};
- element_t *fail_condition, *text;
+ xmpp_element_t *fail_condition, *text;
col_add_fstr(pinfo->cinfo, COL_INFO, "FAILURE ");
fail_item = proto_tree_add_item(tree, hf_xmpp_failure, tvb, packet->offset, packet->length, ENC_BIG_ENDIAN);
fail_tree = proto_item_add_subtree(fail_item, ett_xmpp_failure);
- if((fail_condition = steal_element_by_names(packet, fail_names, array_length(fail_names)))!=NULL)
+ if((fail_condition = xmpp_steal_element_by_names(packet, fail_names, array_length(fail_names)))!=NULL)
{
- attr_t *fake_cond = ep_init_attr_t(fail_condition->name, fail_condition->offset, fail_condition->length);
+ xmpp_attr_t *fake_cond = xmpp_ep_init_attr_t(fail_condition->name, fail_condition->offset, fail_condition->length);
g_hash_table_insert(packet->attrs, "condition", fake_cond);
}
- if((text = steal_element_by_name(packet, "text"))!=NULL)
+ if((text = xmpp_steal_element_by_name(packet, "text"))!=NULL)
{
xmpp_failure_text(fail_tree, tvb, text);
}
- display_attrs(fail_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(fail_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(fail_tree, tvb, pinfo, packet);
}
static void
-xmpp_failure_text(proto_tree *tree, tvbuff_t *tvb, element_t *element)
+xmpp_failure_text(proto_tree *tree, tvbuff_t *tvb, xmpp_element_t *element)
{
- attr_t *lang = get_attr(element,"xml:lang");
+ xmpp_attr_t *lang = xmpp_get_attr(element,"xml:lang");
proto_tree_add_text(tree, tvb, element->offset, element->length, "TEXT%s: %s",
lang?ep_strdup_printf("(%s)",lang->value):"",
@@ -595,19 +589,19 @@ xmpp_failure_text(proto_tree *tree, tvbuff_t *tvb, element_t *element)
}
void
-xmpp_xml_header(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, element_t *packet)
+xmpp_xml_header(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, xmpp_element_t *packet)
{
col_add_fstr(pinfo->cinfo, COL_INFO, "XML ");
proto_tree_add_text(tree, tvb, packet->offset, packet->length, "XML HEADER VER. %s","1.0");
}
void
-xmpp_stream(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
+xmpp_stream(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet)
{
proto_item *stream_item;
proto_tree *stream_tree;
- attr_info_ext attrs_info [] = {
+ xmpp_attr_info_ext attrs_info [] = {
{"http://etherx.jabber.org/streams",{"xmlns", hf_xmpp_xmlns, FALSE, TRUE, NULL, NULL}},
{"http://etherx.jabber.org/streams",{"version", -1, FALSE, TRUE, NULL, NULL}},
{"http://etherx.jabber.org/streams",{"from",-1, FALSE, TRUE, NULL, NULL}},
@@ -623,8 +617,8 @@ xmpp_stream(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *pack
stream_item = proto_tree_add_item(tree, hf_xmpp_stream, tvb, packet->offset, packet->length, ENC_BIG_ENDIAN);
stream_tree = proto_item_add_subtree(stream_item, ett_xmpp_stream);
- display_attrs_ext(stream_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(stream_tree, packet, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs_ext(stream_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(stream_tree, packet, pinfo, tvb, NULL, 0);
}
/*returns TRUE if stream end occurs*/
@@ -664,53 +658,53 @@ xmpp_stream_close(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo)
}
void
-xmpp_features(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
+xmpp_features(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet)
{
proto_item *features_item;
proto_tree *features_tree;
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "mechanisms", xmpp_features_mechanisms, MANY}
};
- features_item = proto_tree_add_item(tree, hf_xmpp_features, tvb, packet->offset, packet->length,
+ features_item = proto_tree_add_item(tree, hf_xmpp_features, tvb, packet->offset, packet->length,
ENC_BIG_ENDIAN);
features_tree = proto_item_add_subtree(features_item, ett_xmpp_features);
col_add_fstr(pinfo->cinfo, COL_INFO, "FEATURES ");
- display_attrs(features_tree, packet, pinfo, tvb, NULL, 0);
- display_elems(features_tree, packet, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(features_tree, packet, pinfo, tvb, NULL, 0);
+ xmpp_display_elems(features_tree, packet, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_features_mechanisms(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
+xmpp_features_mechanisms(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet)
{
proto_item *mechanisms_item;
proto_tree *mechanisms_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "mechanism", xmpp_simple_cdata_elem, MANY},
};
mechanisms_item = proto_tree_add_text(tree, tvb, packet->offset, packet->length, "MECHANISMS");
mechanisms_tree = proto_item_add_subtree(mechanisms_item, ett_xmpp_features_mechanisms);
- display_attrs(mechanisms_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(mechanisms_tree, packet, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(mechanisms_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(mechanisms_tree, packet, pinfo, tvb, elems_info, array_length(elems_info));
}
void
-xmpp_starttls(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
+xmpp_starttls(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet)
{
proto_item *tls_item;
proto_tree *tls_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
};
@@ -719,17 +713,17 @@ xmpp_starttls(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *pa
tls_item = proto_tree_add_item(tree, hf_xmpp_starttls, tvb, packet->offset, packet->length, ENC_BIG_ENDIAN);
tls_tree = proto_item_add_subtree(tls_item, ett_xmpp_starttls);
- display_attrs(tls_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(tls_tree, packet, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(tls_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(tls_tree, packet, pinfo, tvb, NULL, 0);
}
void
-xmpp_proceed(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet)
+xmpp_proceed(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet)
{
proto_item *proceed_item;
proto_tree *proceed_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
};
@@ -738,8 +732,8 @@ xmpp_proceed(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *pac
proceed_item = proto_tree_add_item(tree, hf_xmpp_proceed, tvb, packet->offset, packet->length, ENC_BIG_ENDIAN);
proceed_tree = proto_item_add_subtree(proceed_item, ett_xmpp_proceed);
- display_attrs(proceed_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(proceed_tree, packet, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(proceed_tree, packet, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(proceed_tree, packet, pinfo, tvb, NULL, 0);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
diff --git a/epan/dissectors/packet-xmpp-core.h b/epan/dissectors/packet-xmpp-core.h
index e3de62854e..ee81443fd7 100644
--- a/epan/dissectors/packet-xmpp-core.h
+++ b/epan/dissectors/packet-xmpp-core.h
@@ -26,18 +26,18 @@
#ifndef XMPP_CORE_H
#define XMPP_CORE_H
-extern void xmpp_iq(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
-extern void xmpp_presence(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
-extern void xmpp_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
-extern void xmpp_auth(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
+extern void xmpp_iq(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
+extern void xmpp_presence(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
+extern void xmpp_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
+extern void xmpp_auth(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
extern void xmpp_challenge_response_success(proto_tree *tree, tvbuff_t *tvb,
- packet_info *pinfo, element_t *packet, gint hf, gint ett, const char *col_info);
-extern void xmpp_failure(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
-extern void xmpp_xml_header(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
-extern void xmpp_stream(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
+ packet_info *pinfo, xmpp_element_t *packet, gint hf, gint ett, const char *col_info);
+extern void xmpp_failure(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
+extern void xmpp_xml_header(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
+extern void xmpp_stream(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
extern gboolean xmpp_stream_close(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo);
-extern void xmpp_features(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
-extern void xmpp_starttls(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
-extern void xmpp_proceed(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *packet);
+extern void xmpp_features(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
+extern void xmpp_starttls(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
+extern void xmpp_proceed(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *packet);
#endif /* XMPP_CORE_H */
diff --git a/epan/dissectors/packet-xmpp-gtalk.c b/epan/dissectors/packet-xmpp-gtalk.c
index 462c97261f..ab0248b999 100644
--- a/epan/dissectors/packet-xmpp-gtalk.c
+++ b/epan/dissectors/packet-xmpp-gtalk.c
@@ -30,17 +30,10 @@
#include "config.h"
#endif
-#include<stdio.h>
-#include<string.h>
#include <glib.h>
#include <epan/packet.h>
-#include <epan/proto.h>
-#include <epan/tvbuff.h>
-#include <epan/emem.h>
-#include <epan/conversation.h>
-#include <epan/strutil.h>
-#include <epan/expert.h>
+
#include <epan/dissectors/packet-xml.h>
#include <packet-xmpp.h>
@@ -49,84 +42,84 @@
#include <packet-xmpp-conference.h>
-static void xmpp_gtalk_session_desc(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_session_desc_payload(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_session_cand(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_session_reason(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_jingleinfo_stun(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_jingleinfo_server(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_jingleinfo_relay(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_jingleinfo_relay_serv(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_nosave_item(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_mail_mail_info(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_mail_senders(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_mail_sender(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_mail_snippet(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_status_status_list(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_gtalk_transport_p2p_cand(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
+static void xmpp_gtalk_session_desc(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_session_desc_payload(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_session_cand(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_session_reason(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_jingleinfo_stun(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_jingleinfo_server(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_jingleinfo_relay(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_jingleinfo_relay_serv(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_nosave_item(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_mail_mail_info(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_mail_senders(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_mail_sender(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_mail_snippet(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_status_status_list(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_gtalk_transport_p2p_cand(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
void
-xmpp_gtalk_session(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_session(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *session_item;
proto_tree *session_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"type", hf_xmpp_gtalk_session_type, TRUE, TRUE, NULL, NULL},
{"initiator", -1, FALSE, TRUE, NULL, NULL},
{"id", -1, TRUE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME,"description", xmpp_gtalk_session_desc, ONE},
{NAME, "candidate", xmpp_gtalk_session_cand, MANY},
{NAME, "reason", xmpp_gtalk_session_reason, ONE},
- {NAME_AND_ATTR, name_attr_struct("transport", "xmlns", "http://www.google.com/transport/p2p"), xmpp_gtalk_transport_p2p, ONE},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("transport", "xmlns", "http://www.google.com/transport/p2p"), xmpp_gtalk_transport_p2p, ONE},
{NAME, "conference-info", xmpp_conferece_info_advert, ONE}
};
- attr_t *attr_type = get_attr(element, "type");
+ xmpp_attr_t *attr_type = xmpp_get_attr(element, "type");
col_append_fstr(pinfo->cinfo, COL_INFO, "GTALK-SESSION(%s) ", attr_type?attr_type->value:"");
session_item = proto_tree_add_item(tree, hf_xmpp_gtalk_session, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
session_tree = proto_item_add_subtree(session_item, ett_xmpp_gtalk_session);
- display_attrs(session_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(session_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(session_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_elems(session_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_session_desc(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_session_desc(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *desc_item;
proto_tree *desc_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"xml:lang", -1, FALSE, FALSE, NULL, NULL}
};
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "payload-type", xmpp_gtalk_session_desc_payload, MANY}
};
desc_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "DESCRIPTION");
desc_tree = proto_item_add_subtree(desc_item, ett_xmpp_gtalk_session_desc);
- display_attrs(desc_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(desc_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(desc_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(desc_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_session_desc_payload(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_session_desc_payload(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *payload_item;
proto_tree *payload_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, TRUE, NULL, NULL},
{"id", -1, FALSE, TRUE, NULL, NULL},
{"name", -1, FALSE, TRUE, NULL, NULL},
@@ -141,17 +134,17 @@ xmpp_gtalk_session_desc_payload(proto_tree* tree, tvbuff_t* tvb, packet_info* pi
payload_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "PAYLOAD-TYPE");
payload_tree = proto_item_add_subtree(payload_item, ett_xmpp_gtalk_session_desc_payload);
- display_attrs(payload_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(payload_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(payload_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(payload_tree, element, pinfo, tvb, NULL, 0);
}
static void
-xmpp_gtalk_session_cand(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_session_cand(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *cand_item;
proto_tree *cand_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"name", -1, TRUE, TRUE, NULL, NULL},
{"address", -1, TRUE, FALSE, NULL, NULL},
{"port", -1, TRUE, FALSE, NULL, NULL},
@@ -169,24 +162,24 @@ xmpp_gtalk_session_cand(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, ele
cand_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "CANDIDATE");
cand_tree = proto_item_add_subtree(cand_item, ett_xmpp_gtalk_session_cand);
- display_attrs(cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(cand_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(cand_tree, element, pinfo, tvb, NULL, 0);
}
static void
-xmpp_gtalk_session_reason(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_session_reason(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *reason_item;
proto_tree *reason_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"condition", -1, TRUE, TRUE, NULL, NULL},
{"text", -1, FALSE, FALSE, NULL, NULL}
};
- element_t *condition;
- element_t *text;
-
+ xmpp_element_t *condition;
+ xmpp_element_t *text;
+
const gchar *reason_names[] = { "success", "busy", "cancel"};
reason_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "REASON");
@@ -194,74 +187,74 @@ xmpp_gtalk_session_reason(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, e
/*Looks for reason description.*/
- if((condition = steal_element_by_names(element, reason_names, array_length(reason_names)))!=NULL)
+ if((condition = xmpp_steal_element_by_names(element, reason_names, array_length(reason_names)))!=NULL)
{
- attr_t *fake_cond = ep_init_attr_t(condition->name, condition->offset, condition->length);
+ xmpp_attr_t *fake_cond = xmpp_ep_init_attr_t(condition->name, condition->offset, condition->length);
g_hash_table_insert(element->attrs, "condition", fake_cond);
- }
+ }
- if((text = steal_element_by_name(element, "text"))!=NULL)
+ if((text = xmpp_steal_element_by_name(element, "text"))!=NULL)
{
- attr_t *fake_text = ep_init_attr_t(text->data?text->data->value:"", text->offset, text->length);
+ xmpp_attr_t *fake_text = xmpp_ep_init_attr_t(text->data?text->data->value:"", text->offset, text->length);
g_hash_table_insert(element->attrs, "text", fake_text);
}
- display_attrs(reason_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(reason_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(reason_tree, tvb, pinfo, element);
}
void
-xmpp_gtalk_jingleinfo_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_jingleinfo_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "stun", xmpp_gtalk_jingleinfo_stun, ONE},
{NAME, "relay", xmpp_gtalk_jingleinfo_relay, ONE}
};
col_append_fstr(pinfo->cinfo, COL_INFO, "QUERY(google:jingleinfo) ");
- query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length,
+ query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length,
ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(query_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(query_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_jingleinfo_stun(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_jingleinfo_stun(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *stun_item;
proto_tree *stun_tree;
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "server", xmpp_gtalk_jingleinfo_server, MANY},
};
stun_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "STUN");
stun_tree = proto_item_add_subtree(stun_item, ett_xmpp_gtalk_jingleinfo_stun);
- display_attrs(stun_tree, element, pinfo, tvb, NULL, 0);
- display_elems(stun_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(stun_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_elems(stun_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_jingleinfo_server(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_jingleinfo_server(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *serv_item;
proto_tree *serv_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"host", -1, TRUE, TRUE, NULL, NULL},
{"udp", -1, TRUE, TRUE, NULL, NULL}
};
@@ -269,46 +262,46 @@ xmpp_gtalk_jingleinfo_server(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo
serv_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "SERVER");
serv_tree = proto_item_add_subtree(serv_item, ett_xmpp_gtalk_jingleinfo_server);
- display_attrs(serv_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(serv_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(serv_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(serv_tree, element, pinfo, tvb, NULL, 0);
}
static void
-xmpp_gtalk_jingleinfo_relay(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_jingleinfo_relay(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *relay_item;
proto_tree *relay_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"token", -1, FALSE, FALSE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "server", xmpp_gtalk_jingleinfo_relay_serv, ONE}
};
- element_t *token;
+ xmpp_element_t *token;
relay_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "RELAY");
relay_tree = proto_item_add_subtree(relay_item, ett_xmpp_gtalk_jingleinfo_relay);
- if((token = steal_element_by_name(element, "token"))!=NULL)
+ if((token = xmpp_steal_element_by_name(element, "token"))!=NULL)
{
- attr_t *fake_token = ep_init_attr_t(token->data?token->data->value:"", token->offset, token->length);
+ xmpp_attr_t *fake_token = xmpp_ep_init_attr_t(token->data?token->data->value:"", token->offset, token->length);
g_hash_table_insert(element->attrs, "token", fake_token);
}
- display_attrs(relay_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(relay_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(relay_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(relay_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_jingleinfo_relay_serv(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_jingleinfo_relay_serv(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *serv_item;
proto_tree *serv_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"host", -1, TRUE, TRUE, NULL, NULL},
{"udp", -1, FALSE, TRUE, NULL, NULL},
{"tcp", -1, FALSE, TRUE, NULL, NULL},
@@ -318,17 +311,17 @@ xmpp_gtalk_jingleinfo_relay_serv(proto_tree* tree, tvbuff_t* tvb, packet_info* p
serv_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "SERVER");
serv_tree = proto_item_add_subtree(serv_item, ett_xmpp_gtalk_jingleinfo_relay_serv);
- display_attrs(serv_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(serv_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(serv_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(serv_tree, element, pinfo, tvb, NULL, 0);
}
void
-xmpp_gtalk_usersetting(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_usersetting(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *sett_item;
proto_tree *sett_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
@@ -337,51 +330,51 @@ xmpp_gtalk_usersetting(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, elem
sett_item = proto_tree_add_item(tree, hf_xmpp_gtalk_setting, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
sett_tree = proto_item_add_subtree(sett_item, ett_xmpp_gtalk_setting);
- display_attrs(sett_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(sett_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
for(i = 0; i < g_list_length(element->elements); i++)
{
GList *elem_l = g_list_nth(element->elements,i);
- element_t *elem = elem_l?elem_l->data:NULL;
+ xmpp_element_t *elem = elem_l?elem_l->data:NULL;
if(elem)
{
- attr_t *val = get_attr(elem,"value");
+ xmpp_attr_t *val = xmpp_get_attr(elem,"value");
proto_tree_add_text(sett_tree, tvb, elem->offset, elem->length, "%s [%s]",elem->name,val?val->value:"");
}
}
}
void
-xmpp_gtalk_nosave_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element) {
+xmpp_gtalk_nosave_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element) {
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "item", xmpp_gtalk_nosave_item, MANY},
};
col_append_fstr(pinfo->cinfo, COL_INFO, "QUERY(google:nosave) ");
- query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length,
+ query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length,
ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(query_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(query_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_nosave_item(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_nosave_item(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *item_item;
proto_tree *item_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL,NULL},
{"jid", -1, TRUE, TRUE, NULL, NULL},
{"source", -1, FALSE, TRUE, NULL, NULL},
@@ -391,36 +384,36 @@ xmpp_gtalk_nosave_item(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, elem
item_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "ITEM");
item_tree = proto_item_add_subtree(item_item, ett_xmpp_query_item);
- display_attrs(item_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(item_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(item_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(item_tree, element, pinfo, tvb, NULL, 0);
}
void
-xmpp_gtalk_nosave_x(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_nosave_x(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *x_item;
proto_tree *x_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"value", -1, FALSE, TRUE, NULL, NULL}
};
- x_item = proto_tree_add_item(tree, hf_xmpp_gtalk_nosave_x, tvb, element->offset, element->length,
+ x_item = proto_tree_add_item(tree, hf_xmpp_gtalk_nosave_x, tvb, element->offset, element->length,
ENC_BIG_ENDIAN);
x_tree = proto_item_add_subtree(x_item, ett_xmpp_gtalk_nosave_x);
- display_attrs(x_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(x_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(x_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(x_tree, element, pinfo, tvb, NULL, 0);
}
void
-xmpp_gtalk_mail_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_mail_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"newer-than-time", -1, FALSE, TRUE, NULL, NULL},
{"newer-than-tid", -1, FALSE, TRUE, NULL, NULL},
@@ -433,17 +426,17 @@ xmpp_gtalk_mail_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, eleme
ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(query_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(query_tree, element, pinfo, tvb, NULL, 0);
}
void
-xmpp_gtalk_mail_mailbox(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_mail_mailbox(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *mail_item;
proto_tree *mail_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"xmlns", hf_xmpp_xmlns, FALSE, TRUE, NULL, NULL},
{"result-time", -1, FALSE, TRUE, NULL, NULL},
{"total-matched", -1, FALSE, TRUE, NULL, NULL},
@@ -451,7 +444,7 @@ xmpp_gtalk_mail_mailbox(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, ele
{"url", -1, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME,"mail-thread-info", xmpp_gtalk_mail_mail_info, MANY}
};
@@ -460,17 +453,17 @@ xmpp_gtalk_mail_mailbox(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, ele
mail_item = proto_tree_add_item(tree, hf_xmpp_gtalk_mail_mailbox, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
mail_tree = proto_item_add_subtree(mail_item, ett_xmpp_gtalk_mail_mailbox);
- display_attrs(mail_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(mail_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(mail_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(mail_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_mail_mail_info(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_mail_mail_info(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *mail_info_item;
proto_tree *mail_info_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"tid", -1, FALSE, FALSE, NULL, NULL},
{"participation", -1, FALSE, FALSE, NULL, NULL},
{"messages", -1, FALSE, TRUE, NULL, NULL},
@@ -480,56 +473,56 @@ xmpp_gtalk_mail_mail_info(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, e
{"subject", -1, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "senders", xmpp_gtalk_mail_senders, ONE},
{NAME, "snippet", xmpp_gtalk_mail_snippet, ONE}/*or MANY?*/
};
- element_t *labels, *subject;
+ xmpp_element_t *labels, *subject;
mail_info_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "MAIL-THREAD-INFO");
mail_info_tree = proto_item_add_subtree(mail_info_item,ett_xmpp_gtalk_mail_mail_info);
- if((labels = steal_element_by_name(element,"labels"))!=NULL)
+ if((labels = xmpp_steal_element_by_name(element,"labels"))!=NULL)
{
- attr_t *fake_labels = ep_init_attr_t(labels->data?labels->data->value:"",labels->offset, labels->length);
+ xmpp_attr_t *fake_labels = xmpp_ep_init_attr_t(labels->data?labels->data->value:"",labels->offset, labels->length);
g_hash_table_insert(element->attrs, "labels", fake_labels);
}
- if((subject = steal_element_by_name(element,"subject"))!=NULL)
+ if((subject = xmpp_steal_element_by_name(element,"subject"))!=NULL)
{
- attr_t *fake_subject = ep_init_attr_t(subject->data?subject->data->value:"",subject->offset, subject->length);
+ xmpp_attr_t *fake_subject = xmpp_ep_init_attr_t(subject->data?subject->data->value:"",subject->offset, subject->length);
g_hash_table_insert(element->attrs, "subject", fake_subject);
}
- display_attrs(mail_info_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(mail_info_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(mail_info_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(mail_info_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_mail_senders(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_mail_senders(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *senders_item;
proto_tree *senders_tree;
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "sender", xmpp_gtalk_mail_sender, MANY}
};
senders_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "SENDERS");
senders_tree = proto_item_add_subtree(senders_item, ett_xmpp_gtalk_mail_senders);
- display_attrs(senders_tree, element, pinfo, tvb, NULL, 0);
- display_elems(senders_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(senders_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_elems(senders_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_mail_sender(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_mail_sender(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *sender_item;
proto_tree *sender_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"name", -1, FALSE, TRUE, NULL, NULL},
{"address", -1, FALSE, TRUE, NULL, NULL},
{"originator", -1, FALSE, TRUE, NULL, NULL},
@@ -539,34 +532,34 @@ xmpp_gtalk_mail_sender(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, elem
sender_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "SENDER");
sender_tree = proto_item_add_subtree(sender_item, ett_xmpp_gtalk_mail_sender);
- display_attrs(sender_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(sender_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(sender_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(sender_tree, element, pinfo, tvb, NULL, 0);
}
static void
-xmpp_gtalk_mail_snippet(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_mail_snippet(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_tree_add_text(tree, tvb, element->offset, element->length, "SNIPPET: %s",element->data?element->data->value:"");
xmpp_unknown(tree, tvb, pinfo, element);
}
void
-xmpp_gtalk_mail_new_mail(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_mail_new_mail(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
col_append_fstr(pinfo->cinfo, COL_INFO, "NEW-MAIL ");
- proto_tree_add_item(tree, hf_xmpp_gtalk_mail_new_mail, tvb, element->offset, element->length,
+ proto_tree_add_item(tree, hf_xmpp_gtalk_mail_new_mail, tvb, element->offset, element->length,
ENC_BIG_ENDIAN);
xmpp_unknown(tree, tvb, pinfo, element);
}
void
-xmpp_gtalk_status_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_status_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"version", -1, FALSE, TRUE, NULL, NULL},
{"status-max", -1, FALSE, FALSE, NULL, NULL},
@@ -578,11 +571,11 @@ xmpp_gtalk_status_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, ele
{"invisible", -1, FALSE, TRUE, NULL, NULL},
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "status-list", xmpp_gtalk_status_status_list, MANY}
};
- element_t *status, *show, *invisible;
+ xmpp_element_t *status, *show, *invisible;
col_append_fstr(pinfo->cinfo, COL_INFO, "QUERY(google:shared-status) ");
@@ -590,82 +583,82 @@ xmpp_gtalk_status_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, ele
ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- if((status = steal_element_by_name(element,"status"))!=NULL)
+ if((status = xmpp_steal_element_by_name(element,"status"))!=NULL)
{
- attr_t *fake_status = ep_init_attr_t(status->data?status->data->value:"",status->offset, status->length);
+ xmpp_attr_t *fake_status = xmpp_ep_init_attr_t(status->data?status->data->value:"",status->offset, status->length);
g_hash_table_insert(element->attrs, "status", fake_status);
}
- if((show = steal_element_by_name(element,"show"))!=NULL)
+ if((show = xmpp_steal_element_by_name(element,"show"))!=NULL)
{
- attr_t *fake_show = ep_init_attr_t(show->data?show->data->value:"",show->offset, show->length);
+ xmpp_attr_t *fake_show = xmpp_ep_init_attr_t(show->data?show->data->value:"",show->offset, show->length);
g_hash_table_insert(element->attrs, "show", fake_show);
}
- if((invisible = steal_element_by_name(element,"invisible"))!=NULL)
+ if((invisible = xmpp_steal_element_by_name(element,"invisible"))!=NULL)
{
- attr_t *value = get_attr(invisible, "value");
- attr_t *fake_invisible = ep_init_attr_t(value?value->value:"",invisible->offset, invisible->length);
+ xmpp_attr_t *value = xmpp_get_attr(invisible, "value");
+ xmpp_attr_t *fake_invisible = xmpp_ep_init_attr_t(value?value->value:"",invisible->offset, invisible->length);
g_hash_table_insert(element->attrs, "invisible", fake_invisible);
}
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(query_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(query_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_status_status_list(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_status_status_list(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *list_item;
proto_tree *list_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"show", -1, TRUE, TRUE, NULL, NULL}
};
- element_t *status;
+ xmpp_element_t *status;
list_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "STATUS LIST");
list_tree = proto_item_add_subtree(list_item, ett_xmpp_gtalk_status_status_list);
- while((status = steal_element_by_name(element, "status"))!=NULL)
+ while((status = xmpp_steal_element_by_name(element, "status"))!=NULL)
{
proto_tree_add_text(list_tree, tvb, status->offset, status->length, "STATUS: %s",status->data?status->data->value:"");
}
- display_attrs(list_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(list_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(list_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(list_tree, element, pinfo, tvb, NULL, 0);
}
/*http://www.google.com/transport/p2p*/
void
-xmpp_gtalk_transport_p2p(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_gtalk_transport_p2p(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *trans_item;
proto_tree *trans_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "candidate", xmpp_gtalk_transport_p2p_cand, MANY}
};
trans_item = proto_tree_add_item(tree, hf_xmpp_gtalk_transport_p2p, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
trans_tree = proto_item_add_subtree(trans_item, ett_xmpp_gtalk_transport_p2p);
- display_attrs(trans_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(trans_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(trans_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_elems(trans_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_gtalk_transport_p2p_cand(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element) {
+xmpp_gtalk_transport_p2p_cand(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element) {
proto_item *cand_item;
proto_tree *cand_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, FALSE, NULL, NULL},
{"name", -1, FALSE, TRUE, NULL, NULL},
{"generation", -1, FALSE, FALSE, NULL, NULL},
@@ -679,12 +672,12 @@ xmpp_gtalk_transport_p2p_cand(proto_tree* tree, tvbuff_t* tvb, packet_info* pinf
{"port", -1, FALSE, TRUE, NULL, NULL},
{"address", -1, FALSE, TRUE, NULL, NULL}
};
-
+
cand_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "CANDIDATE");
cand_tree = proto_item_add_subtree(cand_item, ett_xmpp_gtalk_transport_p2p_cand);
- display_attrs(cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(cand_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(cand_tree, element, pinfo, tvb, NULL, 0);
}
/*
diff --git a/epan/dissectors/packet-xmpp-gtalk.h b/epan/dissectors/packet-xmpp-gtalk.h
index f699feb23f..cc708835b9 100644
--- a/epan/dissectors/packet-xmpp-gtalk.h
+++ b/epan/dissectors/packet-xmpp-gtalk.h
@@ -26,15 +26,15 @@
#ifndef XMPP_GTALK_H
#define XMPP_GTALK_H
-extern void xmpp_gtalk_session(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-extern void xmpp_gtalk_jingleinfo_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-extern void xmpp_gtalk_usersetting(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-extern void xmpp_gtalk_nosave_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-extern void xmpp_gtalk_nosave_x(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-extern void xmpp_gtalk_mail_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-extern void xmpp_gtalk_mail_mailbox(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-extern void xmpp_gtalk_mail_new_mail(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-extern void xmpp_gtalk_status_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-extern void xmpp_gtalk_transport_p2p(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
+extern void xmpp_gtalk_session(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+extern void xmpp_gtalk_jingleinfo_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+extern void xmpp_gtalk_usersetting(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+extern void xmpp_gtalk_nosave_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+extern void xmpp_gtalk_nosave_x(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+extern void xmpp_gtalk_mail_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+extern void xmpp_gtalk_mail_mailbox(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+extern void xmpp_gtalk_mail_new_mail(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+extern void xmpp_gtalk_status_query(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+extern void xmpp_gtalk_transport_p2p(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
#endif /* XMPP_GTALK_H */
diff --git a/epan/dissectors/packet-xmpp-jingle.c b/epan/dissectors/packet-xmpp-jingle.c
index d0c79997b4..8fec791c6e 100644
--- a/epan/dissectors/packet-xmpp-jingle.c
+++ b/epan/dissectors/packet-xmpp-jingle.c
@@ -44,13 +44,9 @@
#endif
#include <glib.h>
-#include <stdio.h>
-#include <epan/proto.h>
#include <epan/packet.h>
-#include <epan/packet_info.h>
-#include <epan/epan.h>
-#include <epan/expert.h>
+
#include <epan/dissectors/packet-xml.h>
#include <packet-xmpp.h>
@@ -60,44 +56,44 @@
#include <packet-xmpp-gtalk.h>
#include <packet-xmpp-other.h>
-void xmpp_jingle(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-
-static void xmpp_jingle_content(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_content_description_rtp(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_cont_desc_rtp_payload(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_cont_desc_rtp_payload_param(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element);
-static void xmpp_jingle_cont_desc_rtp_enc(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element);
-static void xmpp_jingle_cont_desc_rtp_enc_zrtp_hash(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element);
-static void xmpp_jingle_cont_desc_rtp_enc_crypto(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element);
-static void xmpp_jingle_cont_desc_rtp_bandwidth(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element);
-static void xmpp_jingle_cont_desc_rtp_hdrext(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element);
-static void xmpp_jingle_cont_trans_ice(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_jingle_cont_trans_ice_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_cont_trans_ice_remote_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_reason(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_rtp_info(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jinglenodes_relay_stun_tracker(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_jingle_cont_trans_raw(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_jingle_cont_trans_raw_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_cont_trans_s5b(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_jingle_cont_trans_s5b_candidate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_jingle_cont_trans_s5b_activated(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_jingle_cont_trans_s5b_cand_used(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_jingle_cont_trans_s5b_cand_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_jingle_cont_trans_s5b_proxy_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_jingle_cont_trans_ibb(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-
-static void xmpp_jingle_file_transfer_desc(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_file_transfer_offer(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_file_transfer_file(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_file_transfer_request(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_file_transfer_received(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_file_transfer_abort(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_jingle_file_transfer_checksum(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
+void xmpp_jingle(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+
+static void xmpp_jingle_content(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_content_description_rtp(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_cont_desc_rtp_payload(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_cont_desc_rtp_payload_param(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element);
+static void xmpp_jingle_cont_desc_rtp_enc(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element);
+static void xmpp_jingle_cont_desc_rtp_enc_zrtp_hash(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element);
+static void xmpp_jingle_cont_desc_rtp_enc_crypto(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element);
+static void xmpp_jingle_cont_desc_rtp_bandwidth(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element);
+static void xmpp_jingle_cont_desc_rtp_hdrext(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element);
+static void xmpp_jingle_cont_trans_ice(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_jingle_cont_trans_ice_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_cont_trans_ice_remote_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_reason(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_rtp_info(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jinglenodes_relay_stun_tracker(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_jingle_cont_trans_raw(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_jingle_cont_trans_raw_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_cont_trans_s5b(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_jingle_cont_trans_s5b_candidate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_jingle_cont_trans_s5b_activated(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_jingle_cont_trans_s5b_cand_used(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_jingle_cont_trans_s5b_cand_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_jingle_cont_trans_s5b_proxy_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_jingle_cont_trans_ibb(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+
+static void xmpp_jingle_file_transfer_desc(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_file_transfer_offer(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_file_transfer_file(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_file_transfer_request(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_file_transfer_received(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_file_transfer_abort(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_jingle_file_transfer_checksum(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
/*XEP-0166: Jingle urn:xmpp:jingle:1*/
void
-xmpp_jingle(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jingle(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *jingle_item;
proto_tree *jingle_tree;
@@ -110,90 +106,90 @@ xmpp_jingle(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *elem
"transport-accept", "transport-info", "transport-reject", "transport-replace"
};
- array_t *action_array = ep_init_array_t(action_enums,array_length(action_enums));
- array_t *rtp_info_array = ep_init_array_t(rtp_info_msgs, array_length(rtp_info_msgs));
+ xmpp_array_t *action_array = xmpp_ep_init_array_t(action_enums,array_length(action_enums));
+ xmpp_array_t *rtp_info_array = xmpp_ep_init_array_t(rtp_info_msgs, array_length(rtp_info_msgs));
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
- {"action", hf_xmpp_jingle_action, TRUE, TRUE, val_enum_list, action_array},
+ {"action", hf_xmpp_jingle_action, TRUE, TRUE, xmpp_val_enum_list, action_array},
{"sid", hf_xmpp_jingle_sid, TRUE, FALSE, NULL, NULL},
{"initiator", hf_xmpp_jingle_initiator, FALSE, FALSE, NULL, NULL},
{"responder", hf_xmpp_jingle_responder, FALSE, FALSE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "content", xmpp_jingle_content, MANY},
{NAME, "reason", xmpp_jingle_reason, MANY},
{NAMES, rtp_info_array, xmpp_jingle_rtp_info, ONE},
{NAME, "conference-info", xmpp_conferece_info_advert, ONE}
};
- attr_t *action = get_attr(element,"action");
+ xmpp_attr_t *action = xmpp_get_attr(element,"action");
col_append_fstr(pinfo->cinfo, COL_INFO, "JINGLE(%s) ", action?action->value:"");
jingle_item = proto_tree_add_item(tree, hf_xmpp_jingle, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
jingle_tree = proto_item_add_subtree(jingle_item, ett_xmpp_jingle);
- display_attrs(jingle_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(jingle_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(jingle_item, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_elems(jingle_item, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_content(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_content(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *content_item;
proto_tree *content_tree;
const gchar *creator_enums[] = {"initiator","responder"};
- array_t *creator_enums_array = ep_init_array_t(creator_enums,array_length(creator_enums));
+ xmpp_array_t *creator_enums_array = xmpp_ep_init_array_t(creator_enums,array_length(creator_enums));
- attr_info attrs_info[] = {
- {"creator", hf_xmpp_jingle_content_creator, TRUE, FALSE, val_enum_list, creator_enums_array},
+ xmpp_attr_info attrs_info[] = {
+ {"creator", hf_xmpp_jingle_content_creator, TRUE, FALSE, xmpp_val_enum_list, creator_enums_array},
{"name", hf_xmpp_jingle_content_name, TRUE, TRUE, NULL, NULL},
{"disposition", hf_xmpp_jingle_content_disposition, FALSE, FALSE, NULL, NULL},
{"senders", hf_xmpp_jingle_content_senders, FALSE, FALSE, NULL, NULL}
};
- elem_info elems_info [] = {
- {NAME_AND_ATTR, name_attr_struct("description", "xmlns", "urn:xmpp:jingle:apps:rtp:1"), xmpp_jingle_content_description_rtp, MANY},
- {NAME_AND_ATTR, name_attr_struct("description", "xmlns", "urn:xmpp:jingle:apps:file-transfer:3"), xmpp_jingle_file_transfer_desc, MANY},
- {NAME_AND_ATTR, name_attr_struct("transport", "xmlns", "urn:xmpp:jingle:transports:ice-udp:1"), xmpp_jingle_cont_trans_ice, MANY},
- {NAME_AND_ATTR, name_attr_struct("transport", "xmlns", "urn:xmpp:jingle:transports:raw-udp:1"), xmpp_jingle_cont_trans_raw, MANY},
- {NAME_AND_ATTR, name_attr_struct("transport", "xmlns", "urn:xmpp:jingle:transports:s5b:1"), xmpp_jingle_cont_trans_s5b, MANY},
- {NAME_AND_ATTR, name_attr_struct("transport", "xmlns", "urn:xmpp:jingle:transports:ibb:1"), xmpp_jingle_cont_trans_ibb, MANY},
- {NAME_AND_ATTR, name_attr_struct("transport", "xmlns", "http://www.google.com/transport/p2p"), xmpp_gtalk_transport_p2p, MANY},
- {NAME_AND_ATTR, name_attr_struct("received", "xmlns", "urn:xmpp:jingle:apps:file-transfer:3"), xmpp_jingle_file_transfer_received, MANY},
- {NAME_AND_ATTR, name_attr_struct("abort", "xmlns", "urn:xmpp:jingle:apps:file-transfer:3"), xmpp_jingle_file_transfer_abort, MANY},
- {NAME_AND_ATTR, name_attr_struct("checksum", "xmlns", "urn:xmpp:jingle:apps:file-transfer:3"), xmpp_jingle_file_transfer_checksum, MANY},
- {NAME_AND_ATTR, name_attr_struct("inputevt", "xmlns","http://jitsi.org/protocol/inputevt"), xmpp_jitsi_inputevt, ONE},
+ xmpp_elem_info elems_info [] = {
+ {NAME_AND_ATTR, xmpp_name_attr_struct("description", "xmlns", "urn:xmpp:jingle:apps:rtp:1"), xmpp_jingle_content_description_rtp, MANY},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("description", "xmlns", "urn:xmpp:jingle:apps:file-transfer:3"), xmpp_jingle_file_transfer_desc, MANY},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("transport", "xmlns", "urn:xmpp:jingle:transports:ice-udp:1"), xmpp_jingle_cont_trans_ice, MANY},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("transport", "xmlns", "urn:xmpp:jingle:transports:raw-udp:1"), xmpp_jingle_cont_trans_raw, MANY},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("transport", "xmlns", "urn:xmpp:jingle:transports:s5b:1"), xmpp_jingle_cont_trans_s5b, MANY},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("transport", "xmlns", "urn:xmpp:jingle:transports:ibb:1"), xmpp_jingle_cont_trans_ibb, MANY},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("transport", "xmlns", "http://www.google.com/transport/p2p"), xmpp_gtalk_transport_p2p, MANY},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("received", "xmlns", "urn:xmpp:jingle:apps:file-transfer:3"), xmpp_jingle_file_transfer_received, MANY},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("abort", "xmlns", "urn:xmpp:jingle:apps:file-transfer:3"), xmpp_jingle_file_transfer_abort, MANY},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("checksum", "xmlns", "urn:xmpp:jingle:apps:file-transfer:3"), xmpp_jingle_file_transfer_checksum, MANY},
+ {NAME_AND_ATTR, xmpp_name_attr_struct("inputevt", "xmlns","http://jitsi.org/protocol/inputevt"), xmpp_jitsi_inputevt, ONE},
};
content_item = proto_tree_add_item(tree, hf_xmpp_jingle_content, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
content_tree = proto_item_add_subtree(content_item, ett_xmpp_jingle_content);
- display_attrs(content_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(content_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(content_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_elems(content_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_reason(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_reason(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *reason_item;
proto_tree *reason_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"condition", hf_xmpp_jingle_reason_condition, TRUE, TRUE, NULL, NULL},
{"sid", -1, FALSE, TRUE, NULL, NULL},
{"rtp-error", -1, FALSE, TRUE, NULL, NULL},
{"text", hf_xmpp_jingle_reason_text, FALSE, FALSE, NULL, NULL}
};
- element_t *condition; /*1?*/
- element_t *text; /*0-1*/
- element_t *rtp_error;
+ xmpp_element_t *condition; /*1?*/
+ xmpp_element_t *text; /*0-1*/
+ xmpp_element_t *rtp_error;
const gchar *reason_names[] = { "success", "busy", "failed-application", "cancel", "connectivity-error",
"decline", "expired", "failed-transport", "general-error", "gone", "incompatible-parameters",
@@ -207,81 +203,81 @@ xmpp_jingle_reason(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_
/*Looks for reason description. "alternative-session" may contain "sid" element
Elements are changed into attribute*/
- if((condition = steal_element_by_names(element, reason_names, array_length(reason_names)))!=NULL)
+ if((condition = xmpp_steal_element_by_names(element, reason_names, array_length(reason_names)))!=NULL)
{
- attr_t *fake_cond = ep_init_attr_t(condition->name, condition->offset, condition->length);
+ xmpp_attr_t *fake_cond = xmpp_ep_init_attr_t(condition->name, condition->offset, condition->length);
g_hash_table_insert(element->attrs, "condition", fake_cond);
- } else if((condition = steal_element_by_name(element, "alternative-session"))!=NULL)
+ } else if((condition = xmpp_steal_element_by_name(element, "alternative-session"))!=NULL)
{
- attr_t *fake_cond,*fake_alter_sid;
- element_t *sid;
+ xmpp_attr_t *fake_cond,*fake_alter_sid;
+ xmpp_element_t *sid;
- fake_cond = ep_init_attr_t(condition->name, condition->offset, condition->length);
+ fake_cond = xmpp_ep_init_attr_t(condition->name, condition->offset, condition->length);
g_hash_table_insert(element->attrs, "condition", fake_cond);
- if((sid = steal_element_by_name(condition, "sid"))!=NULL)
+ if((sid = xmpp_steal_element_by_name(condition, "sid"))!=NULL)
{
- fake_alter_sid = ep_init_attr_t(sid->name, sid->offset, sid->length);
+ fake_alter_sid = xmpp_ep_init_attr_t(sid->name, sid->offset, sid->length);
g_hash_table_insert(element->attrs, "sid", fake_alter_sid);
}
}
- if((rtp_error = steal_element_by_names(element, rtp_error_names, array_length(rtp_error_names)))!=NULL)
+ if((rtp_error = xmpp_steal_element_by_names(element, rtp_error_names, array_length(rtp_error_names)))!=NULL)
{
- attr_t *fake_rtp_error = ep_init_attr_t(rtp_error->name, rtp_error->offset, rtp_error->length);
+ xmpp_attr_t *fake_rtp_error = xmpp_ep_init_attr_t(rtp_error->name, rtp_error->offset, rtp_error->length);
g_hash_table_insert(element->attrs, "rtp-error", fake_rtp_error);
}
- if((text = steal_element_by_name(element, "text"))!=NULL)
+ if((text = xmpp_steal_element_by_name(element, "text"))!=NULL)
{
- attr_t *fake_text = ep_init_attr_t(text->data?text->data->value:"", text->offset, text->length);
+ xmpp_attr_t *fake_text = xmpp_ep_init_attr_t(text->data?text->data->value:"", text->offset, text->length);
g_hash_table_insert(element->attrs, "text", fake_text);
}
- display_attrs(reason_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(reason_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(reason_tree, tvb, pinfo, element);
}
/*XEP-0167: Jingle RTP Sessions urn:xmpp:jingle:apps:rtp:1*/
static void
-xmpp_jingle_content_description_rtp(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_content_description_rtp(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *desc_item;
proto_tree *desc_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"media", hf_xmpp_jingle_content_description_media, TRUE, TRUE, NULL, NULL},
{"ssrc", hf_xmpp_jingle_content_description_ssrc , FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "payload-type", xmpp_jingle_cont_desc_rtp_payload, MANY},
{NAME, "bandwidth", xmpp_jingle_cont_desc_rtp_bandwidth, ONE},
{NAME, "encryption", xmpp_jingle_cont_desc_rtp_enc, ONE},
{NAME, "rtp-hdrext", xmpp_jingle_cont_desc_rtp_hdrext, MANY},
{NAME, "zrtp-hash", xmpp_jingle_cont_desc_rtp_enc_zrtp_hash, MANY}/*IMHO it shouldn't appear in description*/
-
+
};
desc_item = proto_tree_add_item(tree, hf_xmpp_jingle_content_description, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
desc_tree = proto_item_add_subtree(desc_item, ett_xmpp_jingle_content_description);
- display_attrs(desc_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(desc_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(desc_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_elems(desc_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_cont_desc_rtp_payload(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_cont_desc_rtp_payload(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *payload_item;
proto_tree *payload_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, FALSE, NULL, NULL},
{"id", hf_xmpp_jingle_cont_desc_payload_id, TRUE, TRUE, NULL, NULL},
{"channels", hf_xmpp_jingle_cont_desc_payload_channels, FALSE, FALSE, NULL, NULL},
@@ -291,7 +287,7 @@ xmpp_jingle_cont_desc_rtp_payload(proto_tree* tree, tvbuff_t* tvb, packet_info*
{"ptime", hf_xmpp_jingle_cont_desc_payload_ptime, FALSE, FALSE, NULL, NULL}
};
- elem_info elems_info [] =
+ xmpp_elem_info elems_info [] =
{
{NAME, "parameter", xmpp_jingle_cont_desc_rtp_payload_param, MANY}
};
@@ -299,28 +295,28 @@ xmpp_jingle_cont_desc_rtp_payload(proto_tree* tree, tvbuff_t* tvb, packet_info*
payload_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_desc_payload, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
payload_tree = proto_item_add_subtree(payload_item, ett_xmpp_jingle_cont_desc_payload);
- display_attrs(payload_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(payload_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(payload_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_elems(payload_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_cont_desc_rtp_payload_param(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element)
+xmpp_jingle_cont_desc_rtp_payload_param(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element)
{
proto_item *param_item;
proto_tree *param_tree;
proto_item *parent_item;
- attr_t *name, *value;
+ xmpp_attr_t *name, *value;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, FALSE, NULL, NULL},
{"name", hf_xmpp_jingle_cont_desc_payload_param_name, TRUE, TRUE, NULL, NULL},
{"value", hf_xmpp_jingle_cont_desc_payload_param_value, TRUE, TRUE, NULL, NULL}
};
- name = get_attr(element, "name");
- value = get_attr(element, "value");
+ name = xmpp_get_attr(element, "name");
+ value = xmpp_get_attr(element, "value");
if(name && value)
{
@@ -340,19 +336,19 @@ xmpp_jingle_cont_desc_rtp_payload_param(proto_tree* tree, tvbuff_t* tvb, packet_
param_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_desc_payload_param, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
param_tree = proto_item_add_subtree(param_item, ett_xmpp_jingle_cont_desc_payload_param);
- display_attrs(param_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(param_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(param_tree, tvb, pinfo, element);
}
static void
-xmpp_jingle_cont_desc_rtp_enc(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element)
+xmpp_jingle_cont_desc_rtp_enc(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element)
{
proto_item *enc_item;
proto_tree *enc_tree;
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "zrtp-hash", xmpp_jingle_cont_desc_rtp_enc_zrtp_hash, MANY},
{NAME, "crypto", xmpp_jingle_cont_desc_rtp_enc_crypto, MANY}
};
@@ -360,18 +356,18 @@ xmpp_jingle_cont_desc_rtp_enc(proto_tree* tree, tvbuff_t* tvb, packet_info *pinf
enc_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_desc_enc, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
enc_tree = proto_item_add_subtree(enc_item, ett_xmpp_jingle_cont_desc_enc);
- display_attrs(enc_tree, element, pinfo, tvb, NULL, 0);
- display_elems(enc_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(enc_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_elems(enc_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
/*urn:xmpp:jingle:apps:rtp:zrtp:1*/
static void
-xmpp_jingle_cont_desc_rtp_enc_zrtp_hash(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element)
+xmpp_jingle_cont_desc_rtp_enc_zrtp_hash(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element)
{
proto_item *zrtp_hash_item;
proto_tree *zrtp_hash_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, FALSE, NULL, NULL},
{"version", -1, TRUE, TRUE,NULL,NULL},
{"hash", -1, TRUE, FALSE, NULL, NULL}
@@ -382,22 +378,22 @@ xmpp_jingle_cont_desc_rtp_enc_zrtp_hash(proto_tree* tree, tvbuff_t* tvb, packet_
if(element->data)
{
- attr_t *fake_hash = ep_init_attr_t(element->data->value, element->offset, element->length);
+ xmpp_attr_t *fake_hash = xmpp_ep_init_attr_t(element->data->value, element->offset, element->length);
g_hash_table_insert(element->attrs, "hash", fake_hash);
}
- display_attrs(zrtp_hash_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(zrtp_hash_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(zrtp_hash_tree, tvb, pinfo, element);
}
static void
-xmpp_jingle_cont_desc_rtp_enc_crypto(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element)
+xmpp_jingle_cont_desc_rtp_enc_crypto(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element)
{
proto_item *crypto_item;
proto_tree *crypto_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"crypto-suite", -1, TRUE, TRUE, NULL, NULL},
{"key-params", -1, TRUE, FALSE,NULL,NULL},
{"session-params", -1, FALSE, TRUE, NULL, NULL},
@@ -408,18 +404,18 @@ xmpp_jingle_cont_desc_rtp_enc_crypto(proto_tree* tree, tvbuff_t* tvb, packet_inf
crypto_tree = proto_item_add_subtree(crypto_item, ett_xmpp_jingle_cont_desc_enc_crypto);
- display_attrs(crypto_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(crypto_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(crypto_tree, tvb, pinfo, element);
}
static void
-xmpp_jingle_cont_desc_rtp_bandwidth(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element)
+xmpp_jingle_cont_desc_rtp_bandwidth(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element)
{
proto_item *bandwidth_item;
proto_tree *bandwidth_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"type", -1, TRUE, TRUE, NULL, NULL},
{"value", -1, TRUE, TRUE, NULL, NULL}
};
@@ -429,61 +425,61 @@ xmpp_jingle_cont_desc_rtp_bandwidth(proto_tree* tree, tvbuff_t* tvb, packet_info
if(element->data)
{
- attr_t *fake_value = ep_init_attr_t(element->data->value, element->offset, element->length);
+ xmpp_attr_t *fake_value = xmpp_ep_init_attr_t(element->data->value, element->offset, element->length);
g_hash_table_insert(element->attrs, "value", fake_value);
}
- display_attrs(bandwidth_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(bandwidth_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(bandwidth_tree, tvb, pinfo, element);
}
/*urn:xmpp:jingle:apps:rtp:rtp-hdrext:0*/
static void
-xmpp_jingle_cont_desc_rtp_hdrext(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, element_t* element)
+xmpp_jingle_cont_desc_rtp_hdrext(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo, xmpp_element_t* element)
{
proto_item *rtp_hdr_item;
proto_tree *rtp_hdr_tree;
const gchar *senders[] = {"both", "initiator", "responder"};
- array_t *senders_enums = ep_init_array_t(senders, 3);
+ xmpp_array_t *senders_enums = xmpp_ep_init_array_t(senders, 3);
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, FALSE, NULL, NULL},
{"id", -1, TRUE, FALSE, NULL, NULL},
{"uri", -1, TRUE, TRUE, NULL, NULL},
- {"senders", -1, FALSE, TRUE, val_enum_list, senders_enums},
+ {"senders", -1, FALSE, TRUE, xmpp_val_enum_list, senders_enums},
{"parameter", -1, FALSE, TRUE, NULL, NULL}
};
- element_t *parameter;
+ xmpp_element_t *parameter;
rtp_hdr_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_desc_rtp_hdr, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
rtp_hdr_tree = proto_item_add_subtree(rtp_hdr_item, ett_xmpp_jingle_cont_desc_rtp_hdr);
- if((parameter = steal_element_by_name(element, "parameter"))!=NULL)
+ if((parameter = xmpp_steal_element_by_name(element, "parameter"))!=NULL)
{
- attr_t *name = get_attr(element, "name");
- attr_t *fake_attr = ep_init_attr_t(name?name->value:"", parameter->offset, parameter->length);
+ xmpp_attr_t *name = xmpp_get_attr(element, "name");
+ xmpp_attr_t *fake_attr = xmpp_ep_init_attr_t(name?name->value:"", parameter->offset, parameter->length);
g_hash_table_insert(element->attrs, "parameter", fake_attr);
}
- display_attrs(rtp_hdr_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(rtp_hdr_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(rtp_hdr_tree, tvb, pinfo, element);
}
/*urn:xmpp:jingle:apps:rtp:info:1*/
static void
-xmpp_jingle_rtp_info(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_rtp_info(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *rtp_info_item;
proto_tree *rtp_info_tree;
const gchar *creator[] = {"initiator","responder"};
- array_t *creator_enums = ep_init_array_t(creator, array_length(creator));
+ xmpp_array_t *creator_enums = xmpp_ep_init_array_t(creator, array_length(creator));
- attr_info mute_attrs_info[] = {
- {"creator", -1, TRUE, TRUE, val_enum_list, creator_enums},
+ xmpp_attr_info mute_attrs_info[] = {
+ {"creator", -1, TRUE, TRUE, xmpp_val_enum_list, creator_enums},
{"name", -1, TRUE, TRUE, NULL, NULL}
};
@@ -491,25 +487,25 @@ xmpp_jingle_rtp_info(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, elemen
rtp_info_tree = proto_item_add_subtree(rtp_info_item, ett_xmpp_jingle_rtp_info);
if(strcmp("mute", element->name) == 0 || strcmp("unmute", element->name) == 0)
- display_attrs(rtp_info_tree, element, pinfo, tvb, mute_attrs_info, array_length(mute_attrs_info));
+ xmpp_display_attrs(rtp_info_tree, element, pinfo, tvb, mute_attrs_info, array_length(mute_attrs_info));
xmpp_unknown(rtp_info_tree, tvb, pinfo, element);
}
/*XEP-0176: Jingle ICE-UDP Transport Method urn:xmpp:jingle:transports:ice-udp:1*/
static void
-xmpp_jingle_cont_trans_ice(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jingle_cont_trans_ice(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *trans_item;
proto_tree *trans_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, TRUE, NULL, NULL},
{"pwd", hf_xmpp_jingle_cont_trans_pwd, FALSE, FALSE, NULL, NULL},
{"ufrag", hf_xmpp_jingle_cont_trans_ufrag, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "candidate", xmpp_jingle_cont_trans_ice_candidate, MANY},
{NAME, "remote-candidate", xmpp_jingle_cont_trans_ice_remote_candidate, ONE}
};
@@ -517,21 +513,21 @@ xmpp_jingle_cont_trans_ice(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
trans_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
trans_tree = proto_item_add_subtree(trans_item, ett_xmpp_jingle_cont_trans);
- display_attrs(trans_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(trans_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(trans_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_elems(trans_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_cont_trans_ice_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_cont_trans_ice_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *cand_item;
proto_tree *cand_tree;
const gchar *type_enums[] = {"host", "prflx", "relay", "srflx"};
- array_t *type_enums_array = ep_init_array_t(type_enums,array_length(type_enums));
+ xmpp_array_t *type_enums_array = xmpp_ep_init_array_t(type_enums,array_length(type_enums));
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, FALSE, NULL, NULL},
{"component", -1, TRUE, FALSE, NULL, NULL},
{"foundation", -1, TRUE, FALSE, NULL, NULL},
@@ -544,24 +540,24 @@ xmpp_jingle_cont_trans_ice_candidate(proto_tree* tree, tvbuff_t* tvb, packet_inf
{"protocol", -1, TRUE, TRUE, NULL, NULL},
{"rel-addr", -1, FALSE, FALSE, NULL, NULL},
{"rel-port", -1, FALSE, FALSE, NULL, NULL},
- {"type", -1, TRUE, TRUE, val_enum_list, type_enums_array}
+ {"type", -1, TRUE, TRUE, xmpp_val_enum_list, type_enums_array}
};
cand_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans_cand, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
cand_tree = proto_item_add_subtree(cand_item, ett_xmpp_jingle_cont_trans_cand);
- display_attrs(cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(cand_tree, tvb, pinfo, element);
}
static void
-xmpp_jingle_cont_trans_ice_remote_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_cont_trans_ice_remote_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *remote_cand_item;
proto_tree *remote_cand_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"component", -1, TRUE, FALSE, NULL, NULL},
{"ip", -1, TRUE, FALSE, NULL, NULL},
{"port", -1, TRUE, FALSE, NULL, NULL}
@@ -570,73 +566,73 @@ xmpp_jingle_cont_trans_ice_remote_candidate(proto_tree* tree, tvbuff_t* tvb, pac
remote_cand_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans_rem_cand, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
remote_cand_tree = proto_item_add_subtree(remote_cand_item, ett_xmpp_jingle_cont_trans_rem_cand);
- display_attrs(remote_cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(remote_cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(remote_cand_tree, tvb, pinfo, element);
}
/*XEP-0177: Jingle Raw UDP Transport Method urn:xmpp:jingle:transports:raw-udp:1*/
static void
-xmpp_jingle_cont_trans_raw(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jingle_cont_trans_raw(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *trans_item;
proto_tree *trans_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "candidate", xmpp_jingle_cont_trans_raw_candidate, MANY}
};
trans_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
trans_tree = proto_item_add_subtree(trans_item, ett_xmpp_jingle_cont_trans);
- display_attrs(trans_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(trans_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(trans_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(trans_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_cont_trans_raw_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_cont_trans_raw_candidate(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *cand_item;
proto_tree *cand_tree;
const gchar *type_enums[] = {"host", "prflx", "relay", "srflx"};
- array_t *type_enums_array = ep_init_array_t(type_enums,array_length(type_enums));
+ xmpp_array_t *type_enums_array = xmpp_ep_init_array_t(type_enums,array_length(type_enums));
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, FALSE, NULL, NULL},
{"component", -1, TRUE, FALSE, NULL, NULL},
{"generation", -1, TRUE, FALSE, NULL, NULL},
{"id", -1, TRUE, FALSE, NULL, NULL},
{"ip", -1, TRUE, TRUE, NULL, NULL},
{"port", -1, TRUE, TRUE, NULL, NULL},
- {"type", -1, TRUE, TRUE, val_enum_list, type_enums_array}
+ {"type", -1, TRUE, TRUE, xmpp_val_enum_list, type_enums_array}
};
cand_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans_cand, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
cand_tree = proto_item_add_subtree(cand_item, ett_xmpp_jingle_cont_trans_cand);
- display_attrs(cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(cand_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(cand_tree, element, pinfo, tvb, NULL, 0);
}
/*XEP-0260: Jingle SOCKS5 Bytestreams Transport Method urn:xmpp:jingle:transports:s5b:1*/
static void
-xmpp_jingle_cont_trans_s5b(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jingle_cont_trans_s5b(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *trans_item;
proto_tree *trans_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, TRUE, NULL, NULL},
{"mode", -1, FALSE, TRUE, NULL, NULL},
{"sid", -1, FALSE, TRUE, NULL, NULL},
};
- elem_info elems_info [] = {
+ xmpp_elem_info elems_info [] = {
{NAME, "candidate", xmpp_jingle_cont_trans_s5b_candidate, MANY},
{NAME, "activated", xmpp_jingle_cont_trans_s5b_activated, ONE},
{NAME, "candidate-used", xmpp_jingle_cont_trans_s5b_cand_used, ONE},
@@ -647,52 +643,52 @@ xmpp_jingle_cont_trans_s5b(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
trans_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
trans_tree = proto_item_add_subtree(trans_item, ett_xmpp_jingle_cont_trans);
- display_attrs(trans_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(trans_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(trans_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(trans_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_cont_trans_s5b_candidate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jingle_cont_trans_s5b_candidate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *cand_item;
proto_tree *cand_tree;
const gchar * type_enums[] = {"assisted", "direct", "proxy", "tunnel"};
- array_t *type_enums_array = ep_init_array_t(type_enums, array_length(type_enums));
+ xmpp_array_t *type_enums_array = xmpp_ep_init_array_t(type_enums, array_length(type_enums));
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, FALSE, NULL, NULL},
{"cid", -1, TRUE, TRUE, NULL, NULL},
{"jid", -1, TRUE, TRUE, NULL, NULL},
{"port", -1, FALSE, TRUE, NULL, NULL},
{"priority", -1, TRUE, TRUE, NULL, NULL},
- {"type", -1, TRUE, TRUE, val_enum_list, type_enums_array}
+ {"type", -1, TRUE, TRUE, xmpp_val_enum_list, type_enums_array}
};
cand_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans_cand, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
cand_tree = proto_item_add_subtree(cand_item, ett_xmpp_jingle_cont_trans_cand);
- display_attrs(cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(cand_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(cand_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(cand_tree, element, pinfo, tvb, NULL, 0);
}
static void
-xmpp_jingle_cont_trans_s5b_activated(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jingle_cont_trans_s5b_activated(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *activated_item;
- attr_t *cid = get_attr(element, "cid");
+ xmpp_attr_t *cid = xmpp_get_attr(element, "cid");
activated_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans_activated, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
proto_item_append_text(activated_item, " [cid=\"%s\"]",cid?cid->value:"");
-
+
xmpp_unknown(tree, tvb, pinfo, element);
}
static void
-xmpp_jingle_cont_trans_s5b_cand_used(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jingle_cont_trans_s5b_cand_used(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *cand_used_item;
- attr_t *cid = get_attr(element, "cid");
+ xmpp_attr_t *cid = xmpp_get_attr(element, "cid");
cand_used_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans_candidate_used, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
proto_item_append_text(cand_used_item, " [cid=\"%s\"]",cid?cid->value:"");
@@ -701,14 +697,14 @@ xmpp_jingle_cont_trans_s5b_cand_used(proto_tree *tree, tvbuff_t *tvb, packet_inf
}
static void
-xmpp_jingle_cont_trans_s5b_cand_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jingle_cont_trans_s5b_cand_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans_candidate_error, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
xmpp_unknown(tree, tvb, pinfo, element);
}
static void
-xmpp_jingle_cont_trans_s5b_proxy_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jingle_cont_trans_s5b_proxy_error(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans_proxy_error, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
xmpp_unknown(tree, tvb, pinfo, element);
@@ -716,11 +712,11 @@ xmpp_jingle_cont_trans_s5b_proxy_error(proto_tree *tree, tvbuff_t *tvb, packet_i
/*XEP-0261: Jingle In-Band Bytestreams Transport Method urn:xmpp:jingle:transports:ibb:1*/
static void
-xmpp_jingle_cont_trans_ibb(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element) {
+xmpp_jingle_cont_trans_ibb(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element) {
proto_item *trans_item;
proto_tree *trans_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, TRUE, NULL, NULL},
{"block-size", -1, TRUE, TRUE, NULL, NULL},
{"sid", -1, TRUE, TRUE, NULL, NULL},
@@ -730,22 +726,22 @@ xmpp_jingle_cont_trans_ibb(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
trans_item = proto_tree_add_item(tree, hf_xmpp_jingle_cont_trans, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
trans_tree = proto_item_add_subtree(trans_item, ett_xmpp_jingle_cont_trans);
- display_attrs(trans_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(trans_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(trans_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(trans_tree, element, pinfo, tvb, NULL, 0);
}
/*XEP-0234: Jingle File Transfer urn:xmpp:jingle:apps:file-transfer:3*/
static void
-xmpp_jingle_file_transfer_desc(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_file_transfer_desc(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *desc_item;
proto_tree *desc_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "offer", xmpp_jingle_file_transfer_offer, ONE},
{NAME, "request", xmpp_jingle_file_transfer_request, ONE}
};
@@ -753,134 +749,134 @@ xmpp_jingle_file_transfer_desc(proto_tree* tree, tvbuff_t* tvb, packet_info* pin
desc_item = proto_tree_add_item(tree, hf_xmpp_jingle_content_description, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
desc_tree = proto_item_add_subtree(desc_item, ett_xmpp_jingle_content_description);
- display_attrs(desc_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(desc_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(desc_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(desc_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_file_transfer_offer(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_file_transfer_offer(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *offer_item;
proto_tree *offer_tree;
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "file", xmpp_jingle_file_transfer_file, MANY},
};
offer_item = proto_tree_add_item(tree, hf_xmpp_jingle_file_transfer_offer, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
offer_tree = proto_item_add_subtree(offer_item, ett_xmpp_jingle_file_transfer_offer);
- display_attrs(offer_tree, element, pinfo, tvb, NULL, 0);
- display_elems(offer_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(offer_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_elems(offer_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_file_transfer_request(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_file_transfer_request(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *request_item;
proto_tree *request_tree;
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "file", xmpp_jingle_file_transfer_file, MANY},
};
request_item = proto_tree_add_item(tree, hf_xmpp_jingle_file_transfer_request, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
request_tree = proto_item_add_subtree(request_item, ett_xmpp_jingle_file_transfer_request);
- display_attrs(request_tree, element, pinfo, tvb, NULL, 0);
- display_elems(request_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(request_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_elems(request_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_file_transfer_received(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_file_transfer_received(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *received_item;
proto_tree *received_tree;
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "file", xmpp_jingle_file_transfer_file, MANY},
};
received_item = proto_tree_add_item(tree, hf_xmpp_jingle_file_transfer_received, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
received_tree = proto_item_add_subtree(received_item, ett_xmpp_jingle_file_transfer_received);
- display_attrs(received_tree, element, pinfo, tvb, NULL, 0);
- display_elems(received_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(received_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_elems(received_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_file_transfer_abort(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_file_transfer_abort(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *abort_item;
proto_tree *abort_tree;
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "file", xmpp_jingle_file_transfer_file, MANY},
};
abort_item = proto_tree_add_item(tree, hf_xmpp_jingle_file_transfer_abort, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
abort_tree = proto_item_add_subtree(abort_item, ett_xmpp_jingle_file_transfer_abort);
- display_attrs(abort_tree, element, pinfo, tvb, NULL, 0);
- display_elems(abort_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(abort_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_elems(abort_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_file_transfer_checksum(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_file_transfer_checksum(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *checksum_item;
proto_tree *checksum_tree;
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "file", xmpp_jingle_file_transfer_file, MANY},
};
checksum_item = proto_tree_add_item(tree, hf_xmpp_jingle_file_transfer_checksum, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
checksum_tree = proto_item_add_subtree(checksum_item, ett_xmpp_jingle_file_transfer_checksum);
- display_attrs(checksum_tree, element, pinfo, tvb, NULL, 0);
- display_elems(checksum_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(checksum_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_elems(checksum_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jingle_file_transfer_file(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_jingle_file_transfer_file(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *file_item;
proto_tree *file_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"name", -1, FALSE, TRUE, NULL, NULL},
{"size", -1, FALSE, TRUE, NULL, NULL},
{"date", -1, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "hashes", xmpp_hashes, ONE}
};
file_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "FILE");
file_tree = proto_item_add_subtree(file_item, ett_xmpp_jingle_file_transfer_file);
- change_elem_to_attrib("name", "name", element, transform_func_cdata);
- change_elem_to_attrib("size", "size", element, transform_func_cdata);
- change_elem_to_attrib("date", "date", element, transform_func_cdata);
+ xmpp_change_elem_to_attrib("name", "name", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("size", "size", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("date", "date", element, xmpp_transform_func_cdata);
- display_attrs(file_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(file_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(file_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(file_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
/*XEP-0278: Jingle Relay Nodes http://jabber.org/protocol/jinglenodes*/
void
-xmpp_jinglenodes_services(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jinglenodes_services(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *services_item;
proto_tree *services_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "relay", xmpp_jinglenodes_relay_stun_tracker, ONE},
{NAME, "tracker", xmpp_jinglenodes_relay_stun_tracker, ONE},
{NAME, "stun", xmpp_jinglenodes_relay_stun_tracker, ONE},
@@ -891,17 +887,17 @@ xmpp_jinglenodes_services(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, e
services_item = proto_tree_add_item(tree, hf_xmpp_services, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
services_tree = proto_item_add_subtree(services_item, ett_xmpp_services);
- display_attrs(services_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(services_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(services_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(services_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jinglenodes_relay_stun_tracker(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jinglenodes_relay_stun_tracker(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *relay_item;
proto_tree *relay_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"address", -1, TRUE, TRUE, NULL, NULL},
{"port", -1, FALSE, TRUE, NULL, NULL},
{"policy", -1, TRUE, TRUE, NULL, NULL},
@@ -911,17 +907,17 @@ xmpp_jinglenodes_relay_stun_tracker(proto_tree *tree, tvbuff_t *tvb, packet_info
relay_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "%s", element->name);
relay_tree = proto_item_add_subtree(relay_item, ett_xmpp_services_relay);
- display_attrs(relay_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(relay_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(relay_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(relay_tree, element, pinfo, tvb, NULL, 0);
}
void
-xmpp_jinglenodes_channel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jinglenodes_channel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *channel_item;
proto_tree *channel_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"id", -1, FALSE, FALSE, NULL, NULL},
{"host", -1, FALSE, TRUE, NULL, NULL},
@@ -935,8 +931,8 @@ xmpp_jinglenodes_channel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, el
channel_item = proto_tree_add_item(tree, hf_xmpp_channel, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
channel_tree = proto_item_add_subtree(channel_item, ett_xmpp_channel);
- display_attrs(channel_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(channel_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(channel_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(channel_tree, element, pinfo, tvb, NULL, 0);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
diff --git a/epan/dissectors/packet-xmpp-jingle.h b/epan/dissectors/packet-xmpp-jingle.h
index e2ef77b806..3edc872b25 100644
--- a/epan/dissectors/packet-xmpp-jingle.h
+++ b/epan/dissectors/packet-xmpp-jingle.h
@@ -26,9 +26,9 @@
#ifndef XMPP_JINGLE_H
#define XMPP_JINGLE_H
-extern void xmpp_jingle(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_jinglenodes_services(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_jinglenodes_channel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_jingle(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_jinglenodes_services(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_jinglenodes_channel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
#endif /* XMPP_JINGLE_H */
diff --git a/epan/dissectors/packet-xmpp-other.c b/epan/dissectors/packet-xmpp-other.c
index 9e1a24d012..110bf91c8b 100644
--- a/epan/dissectors/packet-xmpp-other.c
+++ b/epan/dissectors/packet-xmpp-other.c
@@ -28,62 +28,56 @@
#include "config.h"
#endif
-#include<stdio.h>
-#include<string.h>
+#include <string.h>
+
#include <glib.h>
#include <epan/packet.h>
-#include <epan/proto.h>
-#include <epan/tvbuff.h>
#include <epan/emem.h>
-#include <epan/conversation.h>
-#include <epan/strutil.h>
-#include <epan/expert.h>
#include <epan/dissectors/packet-xml.h>
#include <packet-xmpp-utils.h>
#include <packet-xmpp.h>
-#include <packet-xmpp-jingle.h>
#include <packet-xmpp-other.h>
-static void xmpp_disco_items_item(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t *element);
+static void xmpp_disco_items_item(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, xmpp_element_t *element);
-static void xmpp_roster_item(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t *element);
+static void xmpp_roster_item(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, xmpp_element_t *element);
-static void xmpp_disco_info_identity(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t *element);
-static void xmpp_disco_info_feature(proto_tree *tree, tvbuff_t *tvb, element_t *element);
+static void xmpp_disco_info_identity(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, xmpp_element_t *element);
+static void xmpp_disco_info_feature(proto_tree *tree, tvbuff_t *tvb, xmpp_element_t *element);
-static void xmpp_bytestreams_streamhost(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_bytestreams_streamhost_used(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_bytestreams_activate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_bytestreams_udpsuccess(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+static void xmpp_bytestreams_streamhost(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_bytestreams_streamhost_used(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_bytestreams_activate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_bytestreams_udpsuccess(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-static void xmpp_si_file(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_si_file_range(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
+static void xmpp_si_file(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_si_file_range(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
-static void xmpp_x_data_field(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_x_data_field_option(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_x_data_field_value(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-static void xmpp_x_data_instr(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
+static void xmpp_x_data_field(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_x_data_field_option(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_x_data_field_value(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+static void xmpp_x_data_instr(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
-static void xmpp_muc_history(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+static void xmpp_muc_history(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-static void xmpp_muc_user_item(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_muc_user_status(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-static void xmpp_muc_user_invite(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+static void xmpp_muc_user_item(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_muc_user_status(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+static void xmpp_muc_user_invite(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-static void xmpp_hashes_hash(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+static void xmpp_hashes_hash(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-static void xmpp_jitsi_inputevt_rmt_ctrl(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+static void xmpp_jitsi_inputevt_rmt_ctrl(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
void
-xmpp_iq_bind(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_iq_bind(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *bind_item;
proto_tree *bind_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"resource", hf_xmpp_iq_bind_resource, FALSE, TRUE, NULL, NULL},
{"jid", hf_xmpp_iq_bind_jid, FALSE, TRUE, NULL, NULL}
@@ -94,21 +88,21 @@ xmpp_iq_bind(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *ele
bind_item = proto_tree_add_item(tree, hf_xmpp_iq_bind, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
bind_tree = proto_item_add_subtree(bind_item, ett_xmpp_iq_bind);
- change_elem_to_attrib("resource", "resource", element, transform_func_cdata);
- change_elem_to_attrib("jid", "jid", element, transform_func_cdata);
+ xmpp_change_elem_to_attrib("resource", "resource", element, xmpp_transform_func_cdata);
+ xmpp_change_elem_to_attrib("jid", "jid", element, xmpp_transform_func_cdata);
- display_attrs(bind_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(bind_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(bind_tree, tvb, pinfo, element);
}
void
-xmpp_session(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_session(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *session_item;
proto_tree *session_tree;
- attr_info attrs_info [] = {
+ xmpp_attr_info attrs_info [] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
@@ -117,89 +111,89 @@ xmpp_session(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *ele
col_append_fstr(pinfo->cinfo, COL_INFO, "SESSION ");
- display_attrs(session_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(session_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(session_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(session_tree, element, pinfo, tvb, NULL, 0);
}
void
-xmpp_vcard(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_vcard(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *vcard_item;
proto_tree *vcard_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"value", -1, FALSE, FALSE, NULL, NULL}
};
- element_t *cdata;
+ xmpp_element_t *cdata;
col_append_fstr(pinfo->cinfo, COL_INFO, "VCARD ");
vcard_item = proto_tree_add_item(tree, hf_xmpp_vcard, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
vcard_tree = proto_item_add_subtree(vcard_item, ett_xmpp_vcard);
- cdata = get_first_element(element);
+ cdata = xmpp_get_first_element(element);
if(cdata)
{
- attr_t *fake_cdata;
- fake_cdata = ep_init_attr_t(element_to_string(tvb, cdata), cdata->offset, cdata->length);
+ xmpp_attr_t *fake_cdata;
+ fake_cdata = xmpp_ep_init_attr_t(xmpp_element_to_string(tvb, cdata), cdata->offset, cdata->length);
g_hash_table_insert(element->attrs,"value", fake_cdata);
}
- display_attrs(vcard_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(vcard_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
}
void
-xmpp_vcard_x_update(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_vcard_x_update(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *x_item;
proto_tree *x_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"photo", -1, FALSE, FALSE, NULL, NULL}
};
- element_t *photo;
+ xmpp_element_t *photo;
x_item = proto_tree_add_item(tree, hf_xmpp_vcard_x_update, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
x_tree = proto_item_add_subtree(x_item, ett_xmpp_vcard_x_update);
- if((photo = steal_element_by_name(element, "photo"))!=NULL)
+ if((photo = xmpp_steal_element_by_name(element, "photo"))!=NULL)
{
- attr_t *fake_photo = ep_init_attr_t(photo->data?photo->data->value:"", photo->offset, photo->length);
+ xmpp_attr_t *fake_photo = xmpp_ep_init_attr_t(photo->data?photo->data->value:"", photo->offset, photo->length);
g_hash_table_insert(element->attrs, "photo", fake_photo);
}
- display_attrs(x_tree, element,pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(x_tree, element,pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(x_tree, tvb, pinfo, element);
}
void
-xmpp_disco_items_query(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t *element)
+xmpp_disco_items_query(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, xmpp_element_t *element)
{
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"node", hf_xmpp_query_node, FALSE, TRUE, NULL, NULL}
};
- element_t *item;
+ xmpp_element_t *item;
col_append_fstr(pinfo->cinfo, COL_INFO, "QUERY(disco#items) ");
query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- while((item = steal_element_by_name(element, "item")) != NULL)
+ while((item = xmpp_steal_element_by_name(element, "item")) != NULL)
{
xmpp_disco_items_item(query_tree, tvb, pinfo, item);
}
@@ -208,12 +202,12 @@ xmpp_disco_items_query(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, elem
}
static void
-xmpp_disco_items_item(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t *element)
+xmpp_disco_items_item(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, xmpp_element_t *element)
{
proto_item *item_item;
proto_tree *item_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"jid", hf_xmpp_query_item_jid, TRUE, TRUE, NULL, NULL},
{"name", hf_xmpp_query_item_name, FALSE, TRUE, NULL, NULL},
{"node", hf_xmpp_query_item_node, FALSE, TRUE, NULL, NULL}
@@ -222,23 +216,23 @@ xmpp_disco_items_item(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, eleme
item_item = proto_tree_add_item(tree, hf_xmpp_query_item, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
item_tree = proto_item_add_subtree(item_item, ett_xmpp_query_item);
- display_attrs(item_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(item_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(item_tree, tvb, pinfo, element);
}
void
-xmpp_roster_query(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t *element)
+xmpp_roster_query(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, xmpp_element_t *element)
{
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"ver", -1, FALSE, TRUE, NULL, NULL},
};
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "item", xmpp_roster_item, MANY},
};
@@ -247,12 +241,12 @@ xmpp_roster_query(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t
query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(query_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(query_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_roster_item(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t *element)
+xmpp_roster_item(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, xmpp_element_t *element)
{
proto_item *item_item;
proto_tree *item_tree;
@@ -260,64 +254,64 @@ xmpp_roster_item(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t
const gchar *ask_enums[] = {"subscribe"};
const gchar *subscription_enums[] = {"both","from","none","remove","to"};
- array_t *ask_enums_array = ep_init_array_t(ask_enums,array_length(ask_enums));
- array_t *subscription_array = ep_init_array_t(subscription_enums,array_length(subscription_enums));
+ xmpp_array_t *ask_enums_array = xmpp_ep_init_array_t(ask_enums,array_length(ask_enums));
+ xmpp_array_t *subscription_array = xmpp_ep_init_array_t(subscription_enums,array_length(subscription_enums));
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"jid", hf_xmpp_query_item_jid, TRUE, TRUE, NULL, NULL},
{"name", hf_xmpp_query_item_name, FALSE, TRUE, NULL, NULL},
- {"ask", hf_xmpp_query_item_ask, FALSE, TRUE, val_enum_list, ask_enums_array},
+ {"ask", hf_xmpp_query_item_ask, FALSE, TRUE, xmpp_val_enum_list, ask_enums_array},
{"approved", hf_xmpp_query_item_approved, FALSE, TRUE, NULL, NULL},
- {"subscription", hf_xmpp_query_item_subscription, FALSE, TRUE, val_enum_list, subscription_array},
+ {"subscription", hf_xmpp_query_item_subscription, FALSE, TRUE, xmpp_val_enum_list, subscription_array},
};
- element_t *group;
+ xmpp_element_t *group;
item_item = proto_tree_add_item(tree, hf_xmpp_query_item, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
item_tree = proto_item_add_subtree(item_item, ett_xmpp_query_item);
- display_attrs(item_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(item_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- while((group = steal_element_by_name(element,"group"))!=NULL)
+ while((group = xmpp_steal_element_by_name(element,"group"))!=NULL)
{
- proto_tree_add_string(item_tree, hf_xmpp_query_item_group, tvb, group->offset, group->length, elem_cdata(group));
+ proto_tree_add_string(item_tree, hf_xmpp_query_item_group, tvb, group->offset, group->length, xmpp_elem_cdata(group));
}
xmpp_unknown(item_tree, tvb, pinfo, element);
}
void
-xmpp_disco_info_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_disco_info_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"node", hf_xmpp_query_node, FALSE, TRUE, NULL, NULL}
};
- element_t *identity, *feature, *x_data;
+ xmpp_element_t *identity, *feature, *x_data;
col_append_fstr(pinfo->cinfo, COL_INFO, "QUERY(disco#info) ");
query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- while((identity = steal_element_by_name(element, "identity")) != NULL)
+ while((identity = xmpp_steal_element_by_name(element, "identity")) != NULL)
{
xmpp_disco_info_identity(query_tree, tvb, pinfo, identity);
}
- while((feature = steal_element_by_name(element, "feature")) != NULL)
+ while((feature = xmpp_steal_element_by_name(element, "feature")) != NULL)
{
xmpp_disco_info_feature(query_tree, tvb, feature);
}
- if((x_data = steal_element_by_name_and_attr(element, "x", "xmlns", "jabber:x:data")) != NULL)
+ if((x_data = xmpp_steal_element_by_name_and_attr(element, "x", "xmlns", "jabber:x:data")) != NULL)
{
xmpp_x_data(query_tree, tvb, pinfo, x_data);
}
@@ -326,12 +320,12 @@ xmpp_disco_info_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, elem
}
static void
-xmpp_disco_info_identity(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t *element)
+xmpp_disco_info_identity(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, xmpp_element_t *element)
{
proto_item *identity_item;
proto_tree *identity_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"category", hf_xmpp_query_identity_category, TRUE, TRUE, NULL, NULL},
{"name", hf_xmpp_query_identity_name, FALSE, TRUE, NULL, NULL},
{"type", hf_xmpp_query_identity_type, TRUE, TRUE, NULL, NULL}
@@ -340,17 +334,17 @@ xmpp_disco_info_identity(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, el
identity_item = proto_tree_add_item(tree, hf_xmpp_query_identity, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
identity_tree = proto_item_add_subtree(identity_item, ett_xmpp_query_identity);
- display_attrs(identity_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(identity_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(identity_tree, tvb, pinfo, element);
}
static void
-xmpp_disco_info_feature(proto_tree *tree, tvbuff_t *tvb, element_t *element)
+xmpp_disco_info_feature(proto_tree *tree, tvbuff_t *tvb, xmpp_element_t *element)
{
- attr_t *var = get_attr(element, "var");
+ xmpp_attr_t *var = xmpp_get_attr(element, "var");
if(var)
{
@@ -359,47 +353,47 @@ xmpp_disco_info_feature(proto_tree *tree, tvbuff_t *tvb, element_t *element)
}
void
-xmpp_bytestreams_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_bytestreams_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *query_item;
proto_tree *query_tree;
const gchar *mode_enums[] = {"tcp", "udp"};
- array_t *mode_array = ep_init_array_t(mode_enums, array_length(mode_enums));
+ xmpp_array_t *mode_array = xmpp_ep_init_array_t(mode_enums, array_length(mode_enums));
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"sid", -1, FALSE, TRUE, NULL, NULL},
- {"mode", -1, FALSE, TRUE, val_enum_list, mode_array},
+ {"mode", -1, FALSE, TRUE, xmpp_val_enum_list, mode_array},
{"dstaddr", -1, FALSE, TRUE, NULL, NULL}
};
- element_t *streamhost, *streamhost_used, *activate, *udpsuccess;
+ xmpp_element_t *streamhost, *streamhost_used, *activate, *udpsuccess;
col_append_fstr(pinfo->cinfo, COL_INFO, "QUERY(bytestreams) ");
query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- while((streamhost = steal_element_by_name(element, "streamhost")) != NULL)
+ while((streamhost = xmpp_steal_element_by_name(element, "streamhost")) != NULL)
{
xmpp_bytestreams_streamhost(query_tree, tvb, pinfo, streamhost);
}
- if((streamhost_used = steal_element_by_name(element, "streamhost-used")) != NULL)
+ if((streamhost_used = xmpp_steal_element_by_name(element, "streamhost-used")) != NULL)
{
xmpp_bytestreams_streamhost_used(query_tree, tvb, pinfo, streamhost_used);
}
- if((activate = steal_element_by_name(element, "activate")) != NULL)
+ if((activate = xmpp_steal_element_by_name(element, "activate")) != NULL)
{
xmpp_bytestreams_activate(query_tree, tvb, pinfo, activate);
}
- if((udpsuccess = steal_element_by_name(element, "udpsuccess")) != NULL)
+ if((udpsuccess = xmpp_steal_element_by_name(element, "udpsuccess")) != NULL)
{
xmpp_bytestreams_udpsuccess(query_tree, tvb, pinfo, udpsuccess);
}
@@ -408,12 +402,12 @@ xmpp_bytestreams_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, ele
}
static void
-xmpp_bytestreams_streamhost(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_bytestreams_streamhost(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *sh_item;
proto_tree *sh_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"jid", -1, TRUE, TRUE, NULL, NULL},
{"host", -1, TRUE, TRUE, NULL, NULL},
{"port", -1, FALSE, TRUE, NULL, NULL}
@@ -422,50 +416,50 @@ xmpp_bytestreams_streamhost(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
sh_item = proto_tree_add_item(tree, hf_xmpp_query_streamhost, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
sh_tree = proto_item_add_subtree(sh_item, ett_xmpp_query_streamhost);
- display_attrs(sh_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(sh_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(sh_tree, tvb, pinfo, element);
}
static void
-xmpp_bytestreams_streamhost_used(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_bytestreams_streamhost_used(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *shu_item;
proto_tree *shu_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"jid", -1, TRUE, TRUE, NULL, NULL}
};
shu_item = proto_tree_add_item(tree, hf_xmpp_query_streamhost_used, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
shu_tree = proto_item_add_subtree(shu_item, ett_xmpp_query_streamhost_used);
- display_attrs(shu_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(shu_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(shu_tree, tvb, pinfo, element);
}
static void
-xmpp_bytestreams_activate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_bytestreams_activate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
- proto_tree_add_string(tree, hf_xmpp_query_activate, tvb, element->offset, element->length, elem_cdata(element));
+ proto_tree_add_string(tree, hf_xmpp_query_activate, tvb, element->offset, element->length, xmpp_elem_cdata(element));
xmpp_unknown(tree, tvb, pinfo, element);
}
static void
-xmpp_bytestreams_udpsuccess(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_bytestreams_udpsuccess(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *udps_item;
proto_tree *udps_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"dstaddr", -1, TRUE, TRUE, NULL, NULL}
};
udps_item = proto_tree_add_item(tree, hf_xmpp_query_udpsuccess, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
udps_tree =proto_item_add_subtree(udps_item, ett_xmpp_query_udpsuccess);
- display_attrs(udps_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(udps_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(udps_tree, tvb, pinfo, element);
}
@@ -474,33 +468,33 @@ xmpp_bytestreams_udpsuccess(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
/*SI File Transfer*/
void
-xmpp_si(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_si(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *si_item;
proto_tree *si_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"id", -1, FALSE, FALSE, NULL, NULL},
{"mime-type", -1, FALSE, TRUE, NULL, NULL},
{"profile", -1, FALSE, TRUE, NULL, NULL}
};
- element_t *file, *feature_neg;
+ xmpp_element_t *file, *feature_neg;
col_append_fstr(pinfo->cinfo, COL_INFO, "SI ");
si_item = proto_tree_add_item(tree, hf_xmpp_si, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
si_tree = proto_item_add_subtree(si_item, ett_xmpp_si);
- display_attrs(si_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(si_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- while((file = steal_element_by_name(element, "file"))!=NULL)
+ while((file = xmpp_steal_element_by_name(element, "file"))!=NULL)
{
xmpp_si_file(si_tree, tvb, pinfo, file);
}
- while((feature_neg = steal_element_by_name(element, "feature"))!=NULL)
+ while((feature_neg = xmpp_steal_element_by_name(element, "feature"))!=NULL)
{
xmpp_feature_neg(si_tree, tvb, pinfo, feature_neg);
}
@@ -511,12 +505,12 @@ xmpp_si(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
}
static void
-xmpp_si_file(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_si_file(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *file_item;
proto_tree *file_tree;
- attr_info attrs_info[] ={
+ xmpp_attr_info attrs_info[] ={
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"name", -1, TRUE, TRUE, NULL, NULL},
{"size", -1, TRUE, TRUE, NULL, NULL},
@@ -525,34 +519,34 @@ xmpp_si_file(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* ele
{"desc", -1, FALSE, FALSE, NULL, NULL}
};
- element_t *desc, *range;
+ xmpp_element_t *desc, *range;
file_item = proto_tree_add_item(tree, hf_xmpp_si_file, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
file_tree = proto_item_add_subtree(file_item, ett_xmpp_si_file);
- if((desc = steal_element_by_name(element, "desc"))!=NULL)
+ if((desc = xmpp_steal_element_by_name(element, "desc"))!=NULL)
{
- attr_t *fake_desc = ep_init_attr_t(desc->data?desc->data->value:"", desc->offset, desc->length);
+ xmpp_attr_t *fake_desc = xmpp_ep_init_attr_t(desc->data?desc->data->value:"", desc->offset, desc->length);
g_hash_table_insert(element->attrs, "desc", fake_desc);
}
- if((range = steal_element_by_name(element, "range"))!=NULL)
+ if((range = xmpp_steal_element_by_name(element, "range"))!=NULL)
{
xmpp_si_file_range(file_tree, tvb, pinfo, range);
}
- display_attrs(file_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(file_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(file_tree, tvb, pinfo, element);
}
static void
-xmpp_si_file_range(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_si_file_range(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *range_item;
proto_tree *range_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"offset", -1, FALSE, TRUE, NULL, NULL},
{"length", -1, FALSE, TRUE, NULL, NULL}
};
@@ -560,7 +554,7 @@ xmpp_si_file_range(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_
range_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "RANGE: ");
range_tree = proto_item_add_subtree(range_item, ett_xmpp_si_file_range);
- display_attrs(range_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(range_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(range_tree, tvb, pinfo, element);
@@ -568,23 +562,23 @@ xmpp_si_file_range(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_
/*Feature Negotiation*/
void
-xmpp_feature_neg(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_feature_neg(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *feature_item;
proto_tree *feature_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
- element_t *x_data;
+ xmpp_element_t *x_data;
feature_item = proto_tree_add_item(tree, hf_xmpp_iq_feature_neg, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
feature_tree = proto_item_add_subtree(feature_item, ett_xmpp_iq_feature_neg);
- display_attrs(feature_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(feature_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- while((x_data = steal_element_by_name_and_attr(element, "x", "xmlns", "jabber:x:data"))!=NULL)
+ while((x_data = xmpp_steal_element_by_name_and_attr(element, "x", "xmlns", "jabber:x:data"))!=NULL)
{
xmpp_x_data(feature_tree, tvb, pinfo, x_data);
}
@@ -595,21 +589,21 @@ xmpp_feature_neg(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t*
/*jabber:x:data*/
void
-xmpp_x_data(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_x_data(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *x_item;
proto_tree *x_tree;
const gchar *type_enums[] = {"cancel", "form", "result", "submit"};
- array_t *type_array = ep_init_array_t(type_enums, array_length(type_enums));
+ xmpp_array_t *type_array = xmpp_ep_init_array_t(type_enums, array_length(type_enums));
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
- {"type", -1, TRUE, TRUE, val_enum_list, type_array},
+ {"type", -1, TRUE, TRUE, xmpp_val_enum_list, type_array},
{"TITLE", -1, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "instructions", xmpp_x_data_instr, MANY},
{NAME, "field", xmpp_x_data_field, MANY},
};
@@ -618,14 +612,14 @@ xmpp_x_data(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* elem
x_item = proto_tree_add_item(tree, hf_xmpp_x_data, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
x_tree = proto_item_add_subtree(x_item, ett_xmpp_x_data);
- change_elem_to_attrib("title", "TITLE", element, transform_func_cdata);
+ xmpp_change_elem_to_attrib("title", "TITLE", element, xmpp_transform_func_cdata);
- display_attrs(x_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(x_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(x_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(x_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_x_data_field(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_x_data_field(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *field_item;
proto_tree *field_tree;
@@ -634,28 +628,28 @@ xmpp_x_data_field(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t
"jid-single", "list-multi", "list-single", "text-multi", "text-single",
"text-private"
};
- array_t *type_array = ep_init_array_t(type_enums, array_length(type_enums));
+ xmpp_array_t *type_array = xmpp_ep_init_array_t(type_enums, array_length(type_enums));
- attr_info attrs_info[] =
+ xmpp_attr_info attrs_info[] =
{
{"label", -1, FALSE, TRUE, NULL, NULL},
- {"type", -1, FALSE, TRUE, val_enum_list, type_array},
+ {"type", -1, FALSE, TRUE, xmpp_val_enum_list, type_array},
{"var", -1, FALSE, TRUE, NULL, NULL}
};
- element_t /**desc, *required,*/ *value, *option;
+ xmpp_element_t /**desc, *required,*/ *value, *option;
field_item = proto_tree_add_item(tree, hf_xmpp_x_data_field, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
field_tree = proto_item_add_subtree(field_item, ett_xmpp_x_data_field);
- display_attrs(field_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(field_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- while((option = steal_element_by_name(element, "option"))!=NULL)
+ while((option = xmpp_steal_element_by_name(element, "option"))!=NULL)
{
xmpp_x_data_field_option(field_tree, tvb, pinfo, option);
}
- while((value = steal_element_by_name(element, "value"))!=NULL)
+ while((value = xmpp_steal_element_by_name(element, "value"))!=NULL)
{
xmpp_x_data_field_value(field_tree, tvb, pinfo, value);
}
@@ -665,79 +659,79 @@ xmpp_x_data_field(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t
}
static void
-xmpp_x_data_field_option(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_x_data_field_option(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *option_item;
proto_tree *option_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"label", -1, FALSE, TRUE, NULL, NULL},
{"value", -1, FALSE, TRUE, NULL, NULL}
};
- element_t *value;
+ xmpp_element_t *value;
option_item = proto_tree_add_item(tree, hf_xmpp_x_data_field_value, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
option_tree = proto_item_add_subtree(option_item, ett_xmpp_x_data_field_value);
- if((value = steal_element_by_name(element, "value"))!=NULL)
+ if((value = xmpp_steal_element_by_name(element, "value"))!=NULL)
{
- attr_t *fake_value = ep_init_attr_t(value->data?value->data->value:"",value->offset, value->length);
+ xmpp_attr_t *fake_value = xmpp_ep_init_attr_t(value->data?value->data->value:"",value->offset, value->length);
g_hash_table_insert(element->attrs, "value", fake_value);
}
- display_attrs(option_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(option_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(option_tree, tvb, pinfo, element);
}
static void
-xmpp_x_data_field_value(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element)
+xmpp_x_data_field_value(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element)
{
proto_item *value_item;
proto_tree *value_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"label", -1, FALSE, TRUE, NULL, NULL},
{"value", -1, TRUE, TRUE, NULL, NULL}
};
- attr_t *fake_value;
+ xmpp_attr_t *fake_value;
value_item = proto_tree_add_item(tree, hf_xmpp_x_data_field_value, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
value_tree = proto_item_add_subtree(value_item, ett_xmpp_x_data_field_value);
- fake_value = ep_init_attr_t(element->data?element->data->value:"",element->offset, element->length);
+ fake_value = xmpp_ep_init_attr_t(element->data?element->data->value:"",element->offset, element->length);
g_hash_table_insert(element->attrs, "value", fake_value);
- display_attrs(value_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(value_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(value_tree, tvb, pinfo, element);
}
static void
-xmpp_x_data_instr(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_, element_t* element)
+xmpp_x_data_instr(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_, xmpp_element_t* element)
{
- proto_tree_add_text(tree, tvb, element->offset, element->length, "INSTRUCTIONS: %s",elem_cdata(element));
+ proto_tree_add_text(tree, tvb, element->offset, element->length, "INSTRUCTIONS: %s",xmpp_elem_cdata(element));
}
/*In-Band Bytestreams*/
void
-xmpp_ibb_open(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_ibb_open(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *open_item;
proto_tree *open_tree;
const gchar *stanza_enums[] = {"iq","message"};
- array_t *stanza_array = ep_init_array_t(stanza_enums, array_length(stanza_enums));
+ xmpp_array_t *stanza_array = xmpp_ep_init_array_t(stanza_enums, array_length(stanza_enums));
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"sid", -1, TRUE, TRUE, NULL, NULL},
{"block-size", -1, TRUE, TRUE, NULL, NULL},
- {"stanza", -1, FALSE, TRUE, val_enum_list, stanza_array}
+ {"stanza", -1, FALSE, TRUE, xmpp_val_enum_list, stanza_array}
};
col_append_fstr(pinfo->cinfo, COL_INFO, "IBB-OPEN ");
@@ -745,17 +739,17 @@ xmpp_ibb_open(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *el
open_item = proto_tree_add_item(tree, hf_xmpp_ibb_open, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
open_tree = proto_item_add_subtree(open_item, ett_xmpp_ibb_open);
- display_attrs(open_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(open_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(open_tree, tvb, pinfo, element);
}
void
-xmpp_ibb_close(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_ibb_close(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *close_item;
proto_tree *close_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"sid", -1, TRUE, TRUE, NULL, NULL}
};
@@ -765,17 +759,17 @@ xmpp_ibb_close(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *e
close_item = proto_tree_add_item(tree, hf_xmpp_ibb_close, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
close_tree = proto_item_add_subtree(close_item, ett_xmpp_ibb_close);
- display_attrs(close_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(close_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(close_tree, tvb, pinfo, element);
}
void
-xmpp_ibb_data(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_ibb_data(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *data_item;
proto_tree *data_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"sid", -1, TRUE, TRUE, NULL, NULL},
{"seq", -1, TRUE, TRUE, NULL, NULL},
@@ -789,23 +783,23 @@ xmpp_ibb_data(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *el
if(element->data)
{
- attr_t *fake_data = ep_init_attr_t(element->data->value, element->offset, element->length);
+ xmpp_attr_t *fake_data = xmpp_ep_init_attr_t(element->data->value, element->offset, element->length);
g_hash_table_insert(element->attrs, "value", fake_data);
}
- display_attrs(data_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(data_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(data_tree, tvb, pinfo, element);
}
/*Delayed Delivery urn:xmpp:delay and jabber:x:delay*/
void
-xmpp_delay(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_delay(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *delay_item;
proto_tree *delay_tree;
- attr_info attrs_info[]={
+ xmpp_attr_info attrs_info[]={
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"from", -1, FALSE, TRUE, NULL, NULL},
{"stamp", -1, TRUE, TRUE, NULL, NULL},
@@ -817,23 +811,23 @@ xmpp_delay(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *eleme
if(element->data)
{
- attr_t *fake_value = ep_init_attr_t(element->data->value, element->offset, element->length);
+ xmpp_attr_t *fake_value = xmpp_ep_init_attr_t(element->data->value, element->offset, element->length);
g_hash_table_insert(element->attrs, "value", fake_value);
}
- display_attrs(delay_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(delay_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(delay_tree, tvb, pinfo, element);
}
/*Entity Capabilities http://jabber.org/protocol/caps*/
void
-xmpp_presence_caps(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_presence_caps(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *caps_item;
proto_tree *caps_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"ext", -1, FALSE, FALSE, NULL, NULL},
{"hash", -1, TRUE, TRUE, NULL, NULL},
@@ -844,19 +838,19 @@ xmpp_presence_caps(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_
caps_item = proto_tree_add_item(tree, hf_xmpp_presence_caps, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
caps_tree = proto_item_add_subtree(caps_item, ett_xmpp_presence_caps);
- display_attrs(caps_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(caps_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(caps_tree, tvb, pinfo, element);
}
/*Message Events jabber:x:event*/
void
-xmpp_x_event(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_x_event(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *x_item;
proto_tree *x_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"condition", hf_xmpp_x_event_condition, TRUE, TRUE, NULL, NULL},
{"id", -1, FALSE, TRUE, NULL, NULL}
@@ -864,22 +858,22 @@ xmpp_x_event(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *ele
const gchar *cond_names[] = {"offline", "delivered", "displayed", "composing"};
- attr_t *fake_cond;
+ xmpp_attr_t *fake_cond;
- element_t *cond, *id;
+ xmpp_element_t *cond, *id;
gchar *cond_value = ep_strdup("");
x_item = proto_tree_add_item(tree, hf_xmpp_x_event, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
x_tree = proto_item_add_subtree(x_item, ett_xmpp_x_event);
- if((id = steal_element_by_name(element, "id"))!=NULL)
+ if((id = xmpp_steal_element_by_name(element, "id"))!=NULL)
{
- attr_t *fake_id = ep_init_attr_t(id->data?id->data->value:"", id->offset, id->length);
+ xmpp_attr_t *fake_id = xmpp_ep_init_attr_t(id->data?id->data->value:"", id->offset, id->length);
g_hash_table_insert(element->attrs, "id", fake_id);
}
- while((cond = steal_element_by_names(element, cond_names, array_length(cond_names))) != NULL)
+ while((cond = xmpp_steal_element_by_names(element, cond_names, array_length(cond_names))) != NULL)
{
if(strcmp(cond_value,"") != 0)
cond_value = ep_strdup_printf("%s/%s",cond_value, cond->name);
@@ -887,41 +881,41 @@ xmpp_x_event(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *ele
cond_value = ep_strdup(cond->name);
}
- fake_cond = ep_init_attr_t(cond_value, element->offset, element->length);
+ fake_cond = xmpp_ep_init_attr_t(cond_value, element->offset, element->length);
g_hash_table_insert(element->attrs, "condition", fake_cond);
- display_attrs(x_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(x_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(x_tree, tvb, pinfo, element);
}
/*Multi-User Chat http://jabber.org/protocol/muc*/
void
-xmpp_muc_x(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_muc_x(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *x_item;
proto_tree *x_tree;
- attr_info attrs_info [] ={
+ xmpp_attr_info attrs_info [] ={
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"password", -1, FALSE, TRUE, NULL, NULL}
};
- element_t *pass, *hist;
+ xmpp_element_t *pass, *hist;
x_item = proto_tree_add_item(tree, hf_xmpp_muc_x, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
x_tree = proto_item_add_subtree(x_item, ett_xmpp_muc_x);
- if((pass = steal_element_by_name(element, "password"))!=NULL)
+ if((pass = xmpp_steal_element_by_name(element, "password"))!=NULL)
{
- attr_t *fake_pass = ep_init_attr_t(pass->data?pass->data->value:"",pass->offset, pass->length);
+ xmpp_attr_t *fake_pass = xmpp_ep_init_attr_t(pass->data?pass->data->value:"",pass->offset, pass->length);
g_hash_table_insert(element->attrs, "password", fake_pass);
}
- display_attrs(x_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(x_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- if((hist = steal_element_by_name(element, "history"))!=NULL)
+ if((hist = xmpp_steal_element_by_name(element, "history"))!=NULL)
{
xmpp_muc_history(x_tree, tvb, pinfo, hist);
}
@@ -930,12 +924,12 @@ xmpp_muc_x(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *eleme
}
static void
-xmpp_muc_history(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_muc_history(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *hist_item;
proto_tree *hist_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"maxchars", -1, FALSE, TRUE, NULL, NULL},
{"maxstanzas", -1, FALSE, TRUE, NULL, NULL},
{"seconds", -1, FALSE, TRUE, NULL, NULL},
@@ -945,48 +939,48 @@ xmpp_muc_history(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t
hist_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "HISTORY: ");
hist_tree = proto_item_add_subtree(hist_item, ett_xmpp_muc_hist);
- display_attrs(hist_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(hist_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(hist_tree, tvb, pinfo, element);
}
/*Multi-User Chat http://jabber.org/protocol/muc#user*/
void
-xmpp_muc_user_x(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_muc_user_x(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *x_item;
proto_tree *x_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, FALSE, NULL, NULL},
{"password", -1, FALSE, TRUE, NULL, NULL}
};
- element_t *item, *status, *invite, *password;
+ xmpp_element_t *item, *status, *invite, *password;
/*TODO decline destroy*/
x_item = proto_tree_add_item(tree, hf_xmpp_muc_user_x, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
x_tree = proto_item_add_subtree(x_item, ett_xmpp_muc_user_x);
- if((password = steal_element_by_name(element, "password"))!=NULL)
+ if((password = xmpp_steal_element_by_name(element, "password"))!=NULL)
{
- attr_t *fake_pass = ep_init_attr_t(password->data?password->data->value:"",password->offset, password->length);
+ xmpp_attr_t *fake_pass = xmpp_ep_init_attr_t(password->data?password->data->value:"",password->offset, password->length);
g_hash_table_insert(element->attrs, "password", fake_pass);
}
- display_attrs(x_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(x_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- while((item = steal_element_by_name(element, "item"))!=NULL)
+ while((item = xmpp_steal_element_by_name(element, "item"))!=NULL)
{
xmpp_muc_user_item(x_tree, tvb, pinfo, item);
}
- while((status = steal_element_by_name(element, "status"))!=NULL)
+ while((status = xmpp_steal_element_by_name(element, "status"))!=NULL)
{
xmpp_muc_user_status(x_tree, tvb, pinfo, status);
}
- while((invite = steal_element_by_name(element, "invite"))!=NULL)
+ while((invite = xmpp_steal_element_by_name(element, "invite"))!=NULL)
{
xmpp_muc_user_invite(x_tree, tvb, pinfo, invite);
}
@@ -995,99 +989,99 @@ xmpp_muc_user_x(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *
}
static void
-xmpp_muc_user_item(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_muc_user_item(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *item_item;
proto_tree *item_tree;
const gchar *affiliation_enums[] = {"admin", "member", "none", "outcast", "owner"};
- array_t *affil_array = ep_init_array_t(affiliation_enums, array_length(affiliation_enums));
+ xmpp_array_t *affil_array = xmpp_ep_init_array_t(affiliation_enums, array_length(affiliation_enums));
const gchar *role_enums[] = {"none", "moderator", "participant", "visitor"};
- array_t *role_array = ep_init_array_t(role_enums, array_length(role_enums));
+ xmpp_array_t *role_array = xmpp_ep_init_array_t(role_enums, array_length(role_enums));
- attr_info attrs_info [] ={
- {"affiliation", -1, FALSE, TRUE, val_enum_list, affil_array},
+ xmpp_attr_info attrs_info [] ={
+ {"affiliation", -1, FALSE, TRUE, xmpp_val_enum_list, affil_array},
{"jid", -1, FALSE, TRUE, NULL, NULL},
{"nick", -1, FALSE, TRUE, NULL, NULL},
- {"role", -1, FALSE, TRUE, val_enum_list, role_array},
+ {"role", -1, FALSE, TRUE, xmpp_val_enum_list, role_array},
{"reason", -1, FALSE, TRUE, NULL, NULL},
{"actor_jid", -1, FALSE, TRUE, NULL, NULL}
};
- element_t *reason, *actor;
+ xmpp_element_t *reason, *actor;
/*TODO continue - it's not clear to me, in schema it's marked as empty, but in examples it has CDATA*/
item_item = proto_tree_add_item(tree, hf_xmpp_muc_user_item, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
item_tree = proto_item_add_subtree(item_item, ett_xmpp_muc_user_item);
- if((reason = steal_element_by_name(element, "reason"))!=NULL)
+ if((reason = xmpp_steal_element_by_name(element, "reason"))!=NULL)
{
- attr_t *fake_reason = ep_init_attr_t(reason->data?reason->data->value:"",reason->offset, reason->length);
+ xmpp_attr_t *fake_reason = xmpp_ep_init_attr_t(reason->data?reason->data->value:"",reason->offset, reason->length);
g_hash_table_insert(element->attrs,"reason",fake_reason);
}
- if((actor = steal_element_by_name(element, "actor"))!=NULL)
+ if((actor = xmpp_steal_element_by_name(element, "actor"))!=NULL)
{
- attr_t *jid = get_attr(actor, "jid");
- attr_t *fake_actor_jid = ep_init_attr_t(jid?jid->value:"",actor->offset, actor->length);
+ xmpp_attr_t *jid = xmpp_get_attr(actor, "jid");
+ xmpp_attr_t *fake_actor_jid = xmpp_ep_init_attr_t(jid?jid->value:"",actor->offset, actor->length);
g_hash_table_insert(element->attrs, "actor_jid", fake_actor_jid);
}
- display_attrs(item_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(item_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(item_tree, tvb, pinfo, element);
}
static void
-xmpp_muc_user_status(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_muc_user_status(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
- attr_t *code = get_attr(element, "code");
+ xmpp_attr_t *code = xmpp_get_attr(element, "code");
proto_tree_add_text(tree, tvb, element->offset, element->length, "STATUS [code=\"%s\"]",code?code->value:"");
xmpp_unknown(tree, tvb, pinfo, element);
}
static void
-xmpp_muc_user_invite(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_muc_user_invite(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *invite_item;
proto_tree *invite_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"from", -1, FALSE, TRUE, NULL, NULL},
{"to", -1, FALSE, TRUE, NULL, NULL},
{"reason", -1, FALSE, TRUE, NULL, NULL}
};
- element_t *reason;
+ xmpp_element_t *reason;
invite_item = proto_tree_add_item(tree, hf_xmpp_muc_user_invite, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
invite_tree = proto_item_add_subtree(invite_item, ett_xmpp_muc_user_invite);
- if((reason = steal_element_by_name(element, "reason"))!=NULL)
+ if((reason = xmpp_steal_element_by_name(element, "reason"))!=NULL)
{
- attr_t *fake_reason = ep_init_attr_t(reason->data?reason->data->value:"",reason->offset, reason->length);
+ xmpp_attr_t *fake_reason = xmpp_ep_init_attr_t(reason->data?reason->data->value:"",reason->offset, reason->length);
g_hash_table_insert(element->attrs, "reason", fake_reason);
}
- display_attrs(invite_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(invite_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
xmpp_unknown(invite_tree, tvb, pinfo, element);
}
/*Multi-User Chat http://jabber.org/protocol/muc#owner*/
void
-xmpp_muc_owner_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_muc_owner_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
- element_t *x_data;
+ xmpp_element_t *x_data;
/*TODO destroy*/
col_append_fstr(pinfo->cinfo, COL_INFO, "QUERY(muc#owner) ");
@@ -1095,9 +1089,9 @@ xmpp_muc_owner_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, elemen
query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- if((x_data = steal_element_by_name_and_attr(element, "x", "xmlns", "jabber:x:data"))!=NULL)
+ if((x_data = xmpp_steal_element_by_name_and_attr(element, "x", "xmlns", "jabber:x:data"))!=NULL)
{
xmpp_x_data(query_tree, tvb, pinfo, x_data);
}
@@ -1108,25 +1102,25 @@ xmpp_muc_owner_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, elemen
/*Multi-User Chat http://jabber.org/protocol/muc#admin*/
void
-xmpp_muc_admin_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_muc_admin_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL}
};
- element_t *item;
+ xmpp_element_t *item;
col_append_fstr(pinfo->cinfo, COL_INFO, "QUERY(muc#admin) ");
query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- while((item = steal_element_by_name(element, "item"))!=NULL)
+ while((item = xmpp_steal_element_by_name(element, "item"))!=NULL)
{
/*from muc#user, because it is the same except continue element*/
xmpp_muc_user_item(query_tree, tvb, pinfo, item);
@@ -1137,12 +1131,12 @@ xmpp_muc_admin_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, elemen
/*Last Activity jabber:iq:last*/
void
-xmpp_last_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_last_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"seconds", -1, FALSE, TRUE, NULL, NULL},
{"value", -1, FALSE, TRUE, NULL, NULL}
@@ -1155,64 +1149,64 @@ xmpp_last_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *
if(element->data)
{
- attr_t *fake_data = ep_init_attr_t(element->data->value, element->data->offset, element->data->length);
+ xmpp_attr_t *fake_data = xmpp_ep_init_attr_t(element->data->value, element->data->offset, element->data->length);
g_hash_table_insert(element->attrs, "value", fake_data);
}
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(query_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(query_tree, element, pinfo, tvb, NULL, 0);
}
/*XEP-0092: Software Version jabber:iq:version*/
void
-xmpp_version_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_version_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *query_item;
proto_tree *query_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"name", -1, FALSE, TRUE, NULL, NULL},
{"version", -1, FALSE, TRUE, NULL, NULL},
{"os", -1, FALSE, TRUE, NULL, NULL}
};
- element_t *name, *version, *os;
+ xmpp_element_t *name, *version, *os;
col_append_fstr(pinfo->cinfo, COL_INFO, "QUERY(jabber:iq:version) ");
query_item = proto_tree_add_item(tree, hf_xmpp_query, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
query_tree = proto_item_add_subtree(query_item, ett_xmpp_query);
- if((name = steal_element_by_name(element,"name"))!=NULL)
+ if((name = xmpp_steal_element_by_name(element,"name"))!=NULL)
{
- attr_t *fake_name = ep_init_attr_t(name->data?name->data->value:"", name->offset, name->length);
+ xmpp_attr_t *fake_name = xmpp_ep_init_attr_t(name->data?name->data->value:"", name->offset, name->length);
g_hash_table_insert(element->attrs, "name", fake_name);
}
- if((version = steal_element_by_name(element,"version"))!=NULL)
+ if((version = xmpp_steal_element_by_name(element,"version"))!=NULL)
{
- attr_t *fake_version = ep_init_attr_t(version->data?version->data->value:"", version->offset, version->length);
+ xmpp_attr_t *fake_version = xmpp_ep_init_attr_t(version->data?version->data->value:"", version->offset, version->length);
g_hash_table_insert(element->attrs, "version", fake_version);
}
- if((os = steal_element_by_name(element,"os"))!=NULL)
+ if((os = xmpp_steal_element_by_name(element,"os"))!=NULL)
{
- attr_t *fake_os = ep_init_attr_t(os->data?os->data->value:"", os->offset, os->length);
+ xmpp_attr_t *fake_os = xmpp_ep_init_attr_t(os->data?os->data->value:"", os->offset, os->length);
g_hash_table_insert(element->attrs, "os", fake_os);
}
- display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(query_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(query_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(query_tree, element, pinfo, tvb, NULL, 0);
}
/*XEP-0199: XMPP Ping*/
void
-xmpp_ping(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_ping(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *ping_item;
proto_tree *ping_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
};
@@ -1221,81 +1215,81 @@ xmpp_ping(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *elemen
ping_item = proto_tree_add_item(tree, hf_xmpp_ping, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
ping_tree = proto_item_add_subtree(ping_item, ett_xmpp_ping);
- display_attrs(ping_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(ping_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(ping_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(ping_tree, element, pinfo, tvb, NULL, 0);
}
/*XEP-0300: Use of Cryptographic Hash Functions in XMPP urn:xmpp:hashes:0*/
void
-xmpp_hashes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element) {
+xmpp_hashes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element) {
proto_item *hashes_item;
proto_tree *hashes_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
};
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "hash", xmpp_hashes_hash, MANY}
};
hashes_item = proto_tree_add_item(tree, hf_xmpp_hashes, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
hashes_tree = proto_item_add_subtree(hashes_item, ett_xmpp_hashes);
- display_attrs(hashes_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(hashes_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(hashes_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(hashes_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_hashes_hash(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_hashes_hash(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *hash_item;
proto_tree *hash_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"algo", -1, TRUE, TRUE, NULL, NULL},
{"value", -1, TRUE, TRUE, NULL, NULL}
};
- attr_t *fake_cdata = ep_init_attr_t(elem_cdata(element), element->offset, element->length);
+ xmpp_attr_t *fake_cdata = xmpp_ep_init_attr_t(xmpp_elem_cdata(element), element->offset, element->length);
g_hash_table_insert(element->attrs, "value", fake_cdata);
hash_item = proto_tree_add_text(tree, tvb, element->offset, element->length, "HASH");
hash_tree = proto_item_add_subtree(hash_item, ett_xmpp_hashes_hash);
- display_attrs(hash_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(hash_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(hash_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(hash_tree, element, pinfo, tvb, NULL, 0);
}
/*http://jitsi.org/protocol/inputevt*/
void
-xmpp_jitsi_inputevt(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jitsi_inputevt(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *inputevt_item;
proto_tree *inputevt_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, TRUE, TRUE, NULL, NULL},
{"action", -1, FALSE, TRUE, NULL, NULL}
};
- elem_info elems_info[] = {
+ xmpp_elem_info elems_info[] = {
{NAME, "remote-control", xmpp_jitsi_inputevt_rmt_ctrl, MANY}
};
inputevt_item = proto_tree_add_item(tree, hf_xmpp_jitsi_inputevt, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
inputevt_tree = proto_item_add_subtree(inputevt_item, ett_xmpp_jitsi_inputevt);
- display_attrs(inputevt_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(inputevt_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
+ xmpp_display_attrs(inputevt_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(inputevt_tree, element, pinfo, tvb, elems_info, array_length(elems_info));
}
static void
-xmpp_jitsi_inputevt_rmt_ctrl(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_jitsi_inputevt_rmt_ctrl(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
proto_item *rmt_ctrl_item;
proto_tree *rmt_ctrl_tree;
- attr_info attrs_info[] = {
+ xmpp_attr_info attrs_info[] = {
{"xmlns", hf_xmpp_xmlns, FALSE, FALSE, NULL, NULL},
{"action", -1, TRUE, TRUE, NULL, NULL},
{"x", -1, FALSE, TRUE, NULL, NULL},
@@ -1304,18 +1298,18 @@ xmpp_jitsi_inputevt_rmt_ctrl(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
{"keycode", -1, FALSE, TRUE, NULL, NULL},
};
- element_t *action;
+ xmpp_element_t *action;
const gchar *action_names[] = {"mouse-move","mouse-press", "mouse-release", "key-press", "key-release"};
- if((action = steal_element_by_names(element, action_names, array_length(action_names)))!=NULL)
+ if((action = xmpp_steal_element_by_names(element, action_names, array_length(action_names)))!=NULL)
{
- attr_t *fake_action = ep_init_attr_t(action->name, action->offset, action->length);
+ xmpp_attr_t *fake_action = xmpp_ep_init_attr_t(action->name, action->offset, action->length);
g_hash_table_insert(element->attrs,"action", fake_action);
if(strcmp(action->name,"mouse-move") == 0)
{
- attr_t *x = get_attr(action,"x");
- attr_t *y = get_attr(action,"y");
+ xmpp_attr_t *x = xmpp_get_attr(action,"x");
+ xmpp_attr_t *y = xmpp_get_attr(action,"y");
if(x)
g_hash_table_insert(element->attrs,"x",x);
@@ -1323,13 +1317,13 @@ xmpp_jitsi_inputevt_rmt_ctrl(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
g_hash_table_insert(element->attrs,"y",y);
} else if(strcmp(action->name,"mouse-press") == 0 || strcmp(action->name,"mouse-release") == 0)
{
- attr_t *btns = get_attr(action,"btns");
+ xmpp_attr_t *btns = xmpp_get_attr(action,"btns");
if(btns)
g_hash_table_insert(element->attrs,"btns",btns);
} else if(strcmp(action->name,"key-press") == 0 || strcmp(action->name,"key-release") == 0)
{
- attr_t *keycode = get_attr(action,"keycode");
+ xmpp_attr_t *keycode = xmpp_get_attr(action,"keycode");
if(keycode)
g_hash_table_insert(element->attrs,"keycode",keycode);
@@ -1340,8 +1334,8 @@ xmpp_jitsi_inputevt_rmt_ctrl(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
rmt_ctrl_item = proto_tree_add_item(tree, hf_xmpp_jitsi_inputevt_rmt_ctrl, tvb, element->offset, element->length, ENC_BIG_ENDIAN);
rmt_ctrl_tree = proto_item_add_subtree(rmt_ctrl_item, ett_xmpp_jitsi_inputevt_rmt_ctrl);
- display_attrs(rmt_ctrl_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
- display_elems(rmt_ctrl_tree, element, pinfo, tvb, NULL, 0);
+ xmpp_display_attrs(rmt_ctrl_tree, element, pinfo, tvb, attrs_info, array_length(attrs_info));
+ xmpp_display_elems(rmt_ctrl_tree, element, pinfo, tvb, NULL, 0);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
diff --git a/epan/dissectors/packet-xmpp-other.h b/epan/dissectors/packet-xmpp-other.h
index 8b13d47e48..0dbe96c3e1 100644
--- a/epan/dissectors/packet-xmpp-other.h
+++ b/epan/dissectors/packet-xmpp-other.h
@@ -26,43 +26,43 @@
#ifndef XMPP_OTHER_H
#define XMPP_OTHER_H
-extern void xmpp_iq_bind(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_session(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_vcard(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_iq_bind(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_session(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_vcard(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-extern void xmpp_disco_items_query(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t *element);
-extern void xmpp_roster_query(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, element_t *element);
-extern void xmpp_disco_info_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_bytestreams_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_disco_items_query(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, xmpp_element_t *element);
+extern void xmpp_roster_query(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, xmpp_element_t *element);
+extern void xmpp_disco_info_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_bytestreams_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-extern void xmpp_si(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
+extern void xmpp_si(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
-extern void xmpp_feature_neg(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
-extern void xmpp_x_data(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
+extern void xmpp_feature_neg(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+extern void xmpp_x_data(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
-extern void xmpp_ibb_open(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_ibb_close(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_ibb_data(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_ibb_open(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_ibb_close(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_ibb_data(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-extern void xmpp_delay(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_delay(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-extern void xmpp_presence_caps(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_presence_caps(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-extern void xmpp_vcard_x_update(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
+extern void xmpp_vcard_x_update(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
-extern void xmpp_x_event(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_x_event(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-extern void xmpp_muc_x(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_muc_user_x(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_muc_owner_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_muc_admin_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_muc_x(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_muc_user_x(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_muc_owner_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_muc_admin_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-extern void xmpp_last_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_version_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_last_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_version_query(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-extern void xmpp_ping(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
-extern void xmpp_hashes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_ping(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
+extern void xmpp_hashes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-extern void xmpp_jitsi_inputevt(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_jitsi_inputevt(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
#endif /* XMPP_OTHER_H */
diff --git a/epan/dissectors/packet-xmpp-utils.c b/epan/dissectors/packet-xmpp-utils.c
index 5c5a324dc9..5208f919c9 100644
--- a/epan/dissectors/packet-xmpp-utils.c
+++ b/epan/dissectors/packet-xmpp-utils.c
@@ -28,34 +28,28 @@
#include "config.h"
#endif
-
#include <glib.h>
-#include <stdio.h>
-#include <epan/conversation.h>
-#include <epan/proto.h>
-#include <epan/packet_info.h>
-#include <epan/epan.h>
+#include <epan/packet.h>
#include <epan/expert.h>
-#include <epan/tvbuff.h>
#include <epan/tvbparse.h>
+#include <epan/strutil.h>
#include <epan/dissectors/packet-xml.h>
#include <packet-xmpp.h>
#include <packet-xmpp-utils.h>
-#include <epan/strutil.h>
void
-xmpp_iq_reqresp_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t *xmpp_info)
+xmpp_iq_reqresp_track(packet_info *pinfo, xmpp_element_t *packet, xmpp_conv_info_t *xmpp_info)
{
xmpp_transaction_t *xmpp_trans = NULL;
- attr_t *attr_id;
+ xmpp_attr_t *attr_id;
char *id;
- attr_id = get_attr(packet, "id");
+ attr_id = xmpp_get_attr(packet, "id");
DISSECTOR_ASSERT(attr_id);
id = ep_strdup(attr_id->value);
@@ -81,30 +75,30 @@ xmpp_iq_reqresp_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t *x
}
void
-xmpp_jingle_session_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t *xmpp_info)
+xmpp_jingle_session_track(packet_info *pinfo, xmpp_element_t *packet, xmpp_conv_info_t *xmpp_info)
{
- element_t *jingle_packet;
+ xmpp_element_t *jingle_packet;
GList *jingle_packet_l;
- jingle_packet_l = find_element_by_name(packet,"jingle");
+ jingle_packet_l = xmpp_find_element_by_name(packet,"jingle");
jingle_packet = jingle_packet_l?jingle_packet_l->data:NULL;
if (jingle_packet && !pinfo->fd->flags.visited) {
- attr_t *attr_id;
- attr_t *attr_sid;
+ xmpp_attr_t *attr_id;
+ xmpp_attr_t *attr_sid;
char *se_id;
char *se_sid;
- attr_id = get_attr(packet, "id");
+ attr_id = xmpp_get_attr(packet, "id");
DISSECTOR_ASSERT(attr_id);
-
+
se_id = se_strdup(attr_id->value);
- attr_sid = get_attr(jingle_packet, "sid");
+ attr_sid = xmpp_get_attr(jingle_packet, "sid");
DISSECTOR_ASSERT(attr_sid);
-
+
se_sid = se_strdup(attr_sid->value);
se_tree_insert_string(xmpp_info->jingle_sessions, se_id, (void*) se_sid, EMEM_TREE_STRING_NOCASE);
@@ -112,33 +106,33 @@ xmpp_jingle_session_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_
}
void
-xmpp_gtalk_session_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t *xmpp_info)
+xmpp_gtalk_session_track(packet_info *pinfo, xmpp_element_t *packet, xmpp_conv_info_t *xmpp_info)
{
- element_t *gtalk_packet;
+ xmpp_element_t *gtalk_packet;
GList *gtalk_packet_l;
- gtalk_packet_l = find_element_by_name(packet,"session");
+ gtalk_packet_l = xmpp_find_element_by_name(packet,"session");
gtalk_packet = gtalk_packet_l?gtalk_packet_l->data:NULL;
if (gtalk_packet && !pinfo->fd->flags.visited) {
- attr_t *attr_id;
- attr_t *attr_sid;
+ xmpp_attr_t *attr_id;
+ xmpp_attr_t *attr_sid;
char *se_id;
char *se_sid;
- attr_t *xmlns = get_attr(gtalk_packet, "xmlns");
+ xmpp_attr_t *xmlns = xmpp_get_attr(gtalk_packet, "xmlns");
if(xmlns && strcmp(xmlns->value,"http://www.google.com/session") != 0)
return;
- attr_id = get_attr(packet, "id");
+ attr_id = xmpp_get_attr(packet, "id");
DISSECTOR_ASSERT(attr_id);
se_id = se_strdup(attr_id->value);
- attr_sid = get_attr(gtalk_packet, "id");
+ attr_sid = xmpp_get_attr(gtalk_packet, "id");
DISSECTOR_ASSERT(attr_sid);
se_sid = se_strdup(attr_sid->value);
@@ -147,38 +141,38 @@ xmpp_gtalk_session_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t
}
void
-xmpp_ibb_session_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t *xmpp_info)
+xmpp_ibb_session_track(packet_info *pinfo, xmpp_element_t *packet, xmpp_conv_info_t *xmpp_info)
{
- element_t *ibb_packet = NULL;
+ xmpp_element_t *ibb_packet = NULL;
GList *ibb_packet_l;
if(strcmp(packet->name, "message") == 0)
{
- ibb_packet_l = find_element_by_name(packet,"data");
+ ibb_packet_l = xmpp_find_element_by_name(packet,"data");
ibb_packet = ibb_packet_l?ibb_packet_l->data:NULL;
} else if(strcmp(packet->name, "iq") == 0)
{
- ibb_packet_l = find_element_by_name(packet,"open");
+ ibb_packet_l = xmpp_find_element_by_name(packet,"open");
if(!ibb_packet_l)
- ibb_packet_l = find_element_by_name(packet,"close");
+ ibb_packet_l = xmpp_find_element_by_name(packet,"close");
if(!ibb_packet_l)
- ibb_packet_l = find_element_by_name(packet,"data");
+ ibb_packet_l = xmpp_find_element_by_name(packet,"data");
ibb_packet = ibb_packet_l?ibb_packet_l->data:NULL;
}
if (ibb_packet && !pinfo->fd->flags.visited) {
- attr_t *attr_id;
- attr_t *attr_sid;
+ xmpp_attr_t *attr_id;
+ xmpp_attr_t *attr_sid;
char *se_id;
char *se_sid;
- attr_id = get_attr(packet, "id");
- attr_sid = get_attr(ibb_packet, "sid");
+ attr_id = xmpp_get_attr(packet, "id");
+ attr_sid = xmpp_get_attr(ibb_packet, "sid");
if(attr_id && attr_sid)
{
se_id = se_strdup(attr_id->value);
@@ -189,7 +183,7 @@ xmpp_ibb_session_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t *
}
static void
-xmpp_unknown_items(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element, guint level)
+xmpp_unknown_items(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element, guint level)
{
GList *childs = element->elements;
@@ -204,8 +198,8 @@ xmpp_unknown_items(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_
while(childs)
{
- element_t *child = childs->data;
- proto_item *child_item = proto_tree_add_text(tree, tvb, child->offset, child->length, "%s", ep_string_upcase(child->name));
+ xmpp_element_t *child = childs->data;
+ proto_item *child_item = proto_tree_add_text(tree, tvb, child->offset, child->length, "%s", xmpp_ep_string_upcase(child->name));
proto_tree *child_tree = proto_item_add_subtree(child_item, ett_unknown[level]);
if(child->default_ns_abbrev)
@@ -218,14 +212,14 @@ xmpp_unknown_items(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_
}
void
-xmpp_unknown(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element)
+xmpp_unknown(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element)
{
GList *childs = element->elements;
/*element has unrecognized elements*/
while(childs)
{
- element_t *child = childs->data;
+ xmpp_element_t *child = childs->data;
if(!child->was_read)
{
proto_item *unknown_item;
@@ -234,16 +228,16 @@ xmpp_unknown(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *ele
#ifdef XMPP_DEBUG
unknown_item = proto_tree_add_string_format(tree,
hf_xmpp_unknown, tvb, child->offset, child->length, child->name,
- "%s", ep_string_upcase(child->name));
+ "%s", xmpp_ep_string_upcase(child->name));
#else
unknown_item = proto_tree_add_text(tree, tvb, child->offset, child->length,
- "%s", ep_string_upcase(child->name));
+ "%s", xmpp_ep_string_upcase(child->name));
#endif
unknown_tree = proto_item_add_subtree(unknown_item, ett_unknown[0]);
/*Add COL_INFO only if root element is IQ*/
if(strcmp(element->name,"iq")==0)
- col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", ep_string_upcase(child->name));
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", xmpp_ep_string_upcase(child->name));
if(child->default_ns_abbrev)
proto_item_append_text(unknown_item,"(%s)",child->default_ns_abbrev);
@@ -260,7 +254,7 @@ xmpp_unknown(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *ele
}
void
-xmpp_unknown_attrs(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, element_t *element, gboolean displ_short_list)
+xmpp_unknown_attrs(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, xmpp_element_t *element, gboolean displ_short_list)
{
proto_item *item = proto_tree_get_parent(tree);
@@ -273,7 +267,7 @@ xmpp_unknown_attrs(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, elem
while(keys && values)
{
- attr_t *attr = (attr_t*) values->data;
+ xmpp_attr_t *attr = (xmpp_attr_t*) values->data;
if (!attr->was_read) {
if (displ_short_list) {
if (!short_list_started)
@@ -322,7 +316,7 @@ xmpp_unknown_attrs(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, elem
}
void
-xmpp_cdata(proto_tree *tree, tvbuff_t *tvb, element_t *element, gint hf)
+xmpp_cdata(proto_tree *tree, tvbuff_t *tvb, xmpp_element_t *element, gint hf)
{
if(element->data)
{
@@ -345,28 +339,28 @@ xmpp_cdata(proto_tree *tree, tvbuff_t *tvb, element_t *element, gint hf)
* ELEMENT_NAME: element_value as TEXT(proto_tree_add_text) int PROTO_TREE
*/
void
-xmpp_simple_cdata_elem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, element_t *element)
+xmpp_simple_cdata_elem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, xmpp_element_t *element)
{
- proto_tree_add_text(tree, tvb, element->offset, element->length, "%s: %s", ep_string_upcase(element->name), elem_cdata(element));
+ proto_tree_add_text(tree, tvb, element->offset, element->length, "%s: %s", xmpp_ep_string_upcase(element->name), xmpp_elem_cdata(element));
}
-array_t*
-ep_init_array_t(const gchar** array, gint len)
+xmpp_array_t*
+xmpp_ep_init_array_t(const gchar** array, gint len)
{
- array_t *result;
+ xmpp_array_t *result;
- result = ep_alloc(sizeof(array_t));
+ result = ep_alloc(sizeof(xmpp_array_t));
result->data = (gpointer) array;
result->length = len;
return result;
}
-attr_t*
-ep_init_attr_t(gchar *value, gint offset, gint length)
+xmpp_attr_t*
+xmpp_ep_init_attr_t(gchar *value, gint offset, gint length)
{
- attr_t *result;
- result = ep_alloc(sizeof(attr_t));
+ xmpp_attr_t *result;
+ result = ep_alloc(sizeof(xmpp_attr_t));
result->value = value;
result->offset = offset;
result->length = length;
@@ -376,7 +370,7 @@ ep_init_attr_t(gchar *value, gint offset, gint length)
}
gchar*
-ep_string_upcase(const gchar* string)
+xmpp_ep_string_upcase(const gchar* string)
{
gint len = (int)strlen(string);
gint i;
@@ -393,27 +387,27 @@ ep_string_upcase(const gchar* string)
}
gint
-element_t_cmp(gconstpointer a, gconstpointer b)
+xmpp_element_t_cmp(gconstpointer a, gconstpointer b)
{
- gint result = strcmp(((element_t*)a)->name,((element_t*)b)->name);
+ gint result = strcmp(((xmpp_element_t*)a)->name,((xmpp_element_t*)b)->name);
- if(result == 0 && ((element_t*)a)->was_read)
+ if(result == 0 && ((xmpp_element_t*)a)->was_read)
result = -1;
return result;
}
GList*
-find_element_by_name(element_t *packet,const gchar *name)
+xmpp_find_element_by_name(xmpp_element_t *packet,const gchar *name)
{
GList *found_elements;
- element_t *search_element;
+ xmpp_element_t *search_element;
/*create fake element only with name*/
- search_element = ep_alloc(sizeof(element_t));
+ search_element = ep_alloc(sizeof(xmpp_element_t));
search_element->name = ep_strdup(name);
- found_elements = g_list_find_custom(packet->elements, search_element, element_t_cmp);
+ found_elements = g_list_find_custom(packet->elements, search_element, xmpp_element_t_cmp);
if(found_elements)
return found_elements;
@@ -426,13 +420,13 @@ find_element_by_name(element_t *packet,const gchar *name)
* function searches element in packet and sets it as read.
* if element doesn't exist, NULL is returned.
* If element is set as read, it is invisible for these functions.*/
-element_t*
-steal_element_by_name(element_t *packet,const gchar *name)
+xmpp_element_t*
+xmpp_steal_element_by_name(xmpp_element_t *packet,const gchar *name)
{
GList *element_l;
- element_t *element = NULL;
+ xmpp_element_t *element = NULL;
- element_l = find_element_by_name(packet, name);
+ element_l = xmpp_find_element_by_name(packet, name);
if(element_l)
{
@@ -444,30 +438,30 @@ steal_element_by_name(element_t *packet,const gchar *name)
}
-element_t*
-steal_element_by_names(element_t *packet, const gchar **names, gint names_len)
+xmpp_element_t*
+xmpp_steal_element_by_names(xmpp_element_t *packet, const gchar **names, gint names_len)
{
gint i;
- element_t *el = NULL;
+ xmpp_element_t *el = NULL;
for(i = 0; i<names_len; i++)
{
- if((el = steal_element_by_name(packet, names[i])))
+ if((el = xmpp_steal_element_by_name(packet, names[i])))
break;
}
return el;
}
-element_t*
-steal_element_by_attr(element_t *packet, const gchar *attr_name, const gchar *attr_value)
+xmpp_element_t*
+xmpp_steal_element_by_attr(xmpp_element_t *packet, const gchar *attr_name, const gchar *attr_value)
{
GList *childs = packet->elements;
- element_t *result = NULL;
+ xmpp_element_t *result = NULL;
while (childs) {
- element_t *child_elem = childs->data;
- attr_t *attr = get_attr(child_elem, attr_name);
+ xmpp_element_t *child_elem = childs->data;
+ xmpp_attr_t *attr = xmpp_get_attr(child_elem, attr_name);
if(attr)
attr->was_read = FALSE;
@@ -486,15 +480,15 @@ steal_element_by_attr(element_t *packet, const gchar *attr_name, const gchar *at
return result;
}
-element_t*
-steal_element_by_name_and_attr(element_t *packet, const gchar *name, const gchar *attr_name, const gchar *attr_value)
+xmpp_element_t*
+xmpp_steal_element_by_name_and_attr(xmpp_element_t *packet, const gchar *name, const gchar *attr_name, const gchar *attr_value)
{
GList *childs = packet->elements;
- element_t *result = NULL;
+ xmpp_element_t *result = NULL;
while (childs) {
- element_t *child_elem = childs->data;
- attr_t *attr = get_attr(child_elem, attr_name);
+ xmpp_element_t *child_elem = childs->data;
+ xmpp_attr_t *attr = xmpp_get_attr(child_elem, attr_name);
if(attr)
attr->was_read = FALSE;
@@ -512,8 +506,8 @@ steal_element_by_name_and_attr(element_t *packet, const gchar *name, const gchar
return result;
}
-element_t*
-get_first_element(element_t *packet)
+xmpp_element_t*
+xmpp_get_first_element(xmpp_element_t *packet)
{
if(packet->elements && packet->elements->data)
return packet->elements->data;
@@ -522,13 +516,13 @@ get_first_element(element_t *packet)
}
/*
-Function converts xml_frame_t structure to element_t (simpler representation)
+Function converts xml_frame_t structure to xmpp_element_t (simpler representation)
*/
-element_t*
-xml_frame_to_element_t(xml_frame_t *xml_frame, element_t *parent, tvbuff_t *tvb)
+xmpp_element_t*
+xmpp_xml_frame_to_element_t(xml_frame_t *xml_frame, xmpp_element_t *parent, tvbuff_t *tvb)
{
xml_frame_t *child;
- element_t *node = ep_alloc0(sizeof(element_t));
+ xmpp_element_t *node = ep_alloc0(sizeof(xmpp_element_t));
tvbparse_wanted_t *want_ignore, *want_name, *want_scoped_name;
tvbparse_t* tt;
@@ -547,7 +541,7 @@ xml_frame_to_element_t(xml_frame_t *xml_frame, element_t *parent, tvbuff_t *tvb)
node->namespaces = g_hash_table_new(g_str_hash, g_str_equal);
if(parent)
{
- copy_hash_table(parent->namespaces, node->namespaces);
+ xmpp_copy_hash_table(parent->namespaces, node->namespaces);
} else
{
g_hash_table_insert(node->namespaces, "", "jabber:client");
@@ -584,11 +578,11 @@ xml_frame_to_element_t(xml_frame_t *xml_frame, element_t *parent, tvbuff_t *tvb)
gchar *value = NULL;
gchar *xmlns_needle = NULL;
- attr_t *attr = ep_alloc(sizeof(attr_t));
+ xmpp_attr_t *attr = ep_alloc(sizeof(xmpp_attr_t));
attr->length = 0;
attr->offset = 0;
attr->was_read = FALSE;
-
+
if (child->value != NULL) {
l = tvb_reported_length(child->value);
value = ep_alloc0(l + 1);
@@ -599,7 +593,7 @@ xml_frame_to_element_t(xml_frame_t *xml_frame, element_t *parent, tvbuff_t *tvb)
{
attr->length = child->item->finfo->length;
}
-
+
attr->offset = child->start_offset;
attr->value = value;
attr->name = ep_strdup(child->name_orig_case);
@@ -624,11 +618,11 @@ xml_frame_to_element_t(xml_frame_t *xml_frame, element_t *parent, tvbuff_t *tvb)
}
else if( child->type == XML_FRAME_CDATA)
{
- data_t *data = NULL;
+ xmpp_data_t *data = NULL;
gint l;
gchar* value = NULL;
- data = ep_alloc(sizeof(data_t));
+ data = ep_alloc(sizeof(xmpp_data_t));
data->length = 0;
data->offset = 0;
@@ -649,7 +643,7 @@ xml_frame_to_element_t(xml_frame_t *xml_frame, element_t *parent, tvbuff_t *tvb)
}
} else
{
- node->elements = g_list_append(node->elements,(gpointer)xml_frame_to_element_t(child, node,tvb));
+ node->elements = g_list_append(node->elements,(gpointer)xmpp_xml_frame_to_element_t(child, node,tvb));
}
child = child->next_sibling;
@@ -658,7 +652,7 @@ xml_frame_to_element_t(xml_frame_t *xml_frame, element_t *parent, tvbuff_t *tvb)
}
void
-element_t_tree_free(element_t *root)
+xmpp_element_t_tree_free(xmpp_element_t *root)
{
GList *childs = root->elements;
@@ -667,9 +661,9 @@ element_t_tree_free(element_t *root)
while(childs)
{
- element_t *child = childs->data;
+ xmpp_element_t *child = childs->data;
- element_t_tree_free(child);
+ xmpp_element_t_tree_free(child);
childs = childs->next;
}
g_list_free(root->elements);
@@ -693,10 +687,10 @@ attr_find_pred(gpointer key, gpointer value _U_, gpointer user_data)
}
/*Functions returns element's attibute by name and set as read*/
-attr_t*
-get_attr(element_t *element, const gchar* attr_name)
+xmpp_attr_t*
+xmpp_get_attr(xmpp_element_t *element, const gchar* attr_name)
{
- attr_t *result = g_hash_table_lookup(element->attrs, attr_name);
+ xmpp_attr_t *result = g_hash_table_lookup(element->attrs, attr_name);
if(!result)
{
@@ -710,11 +704,11 @@ get_attr(element_t *element, const gchar* attr_name)
}
/*Functions returns element's attibute by name and namespace abbrev*/
-static attr_t*
-get_attr_ext(element_t *element, const gchar* attr_name, const gchar* ns_abbrev)
+static xmpp_attr_t*
+xmpp_get_attr_ext(xmpp_element_t *element, const gchar* attr_name, const gchar* ns_abbrev)
{
gchar* search_phrase;
- attr_t *result;
+ xmpp_attr_t *result;
if(strcmp(ns_abbrev,"")==0)
search_phrase = ep_strdup(attr_name);
@@ -739,7 +733,7 @@ get_attr_ext(element_t *element, const gchar* attr_name, const gchar* ns_abbrev)
gchar*
-element_to_string(tvbuff_t *tvb, element_t *element)
+xmpp_element_to_string(tvbuff_t *tvb, xmpp_element_t *element)
{
gchar *buff = NULL;
@@ -751,7 +745,7 @@ element_to_string(tvbuff_t *tvb, element_t *element)
}
gchar*
-attr_to_string(tvbuff_t *tvb, attr_t *attr)
+xmpp_attr_to_string(tvbuff_t *tvb, xmpp_attr_t *attr)
{
gchar *buff = NULL;
@@ -781,14 +775,14 @@ children_foreach_show_func(proto_node *node, gpointer data)
}
void
-proto_tree_hide_first_child(proto_tree *tree)
+xmpp_proto_tree_hide_first_child(proto_tree *tree)
{
int i = 0;
proto_tree_children_foreach(tree, children_foreach_hide_func, &i);
}
void
-proto_tree_show_first_child(proto_tree *tree)
+xmpp_proto_tree_show_first_child(proto_tree *tree)
{
int i = 0;
proto_tree_children_foreach(tree, children_foreach_show_func, &i);
@@ -818,10 +812,10 @@ proto_item_get_text(proto_item *item)
void
-display_attrs(proto_tree *tree, element_t *element, packet_info *pinfo, tvbuff_t *tvb, attr_info *attrs, guint n)
+xmpp_display_attrs(proto_tree *tree, xmpp_element_t *element, packet_info *pinfo, tvbuff_t *tvb, xmpp_attr_info *attrs, guint n)
{
proto_item *item = proto_tree_get_parent(tree);
- attr_t *attr;
+ xmpp_attr_t *attr;
guint i;
gboolean short_list_started = FALSE;
@@ -831,7 +825,7 @@ display_attrs(proto_tree *tree, element_t *element, packet_info *pinfo, tvbuff_t
proto_item_append_text(item," [");
for(i = 0; i < n && attrs!=NULL; i++)
{
- attr = get_attr(element, attrs[i].name);
+ attr = xmpp_get_attr(element, attrs[i].name);
if(attr)
{
if(attrs[i].hf != -1)
@@ -878,10 +872,10 @@ display_attrs(proto_tree *tree, element_t *element, packet_info *pinfo, tvbuff_t
}
void
-display_attrs_ext(proto_tree *tree, element_t *element, packet_info *pinfo, tvbuff_t *tvb, attr_info_ext *attrs, guint n)
+xmpp_display_attrs_ext(proto_tree *tree, xmpp_element_t *element, packet_info *pinfo, tvbuff_t *tvb, xmpp_attr_info_ext *attrs, guint n)
{
proto_item *item = proto_tree_get_parent(tree);
- attr_t *attr;
+ xmpp_attr_t *attr;
guint i;
gboolean short_list_started = FALSE;
@@ -899,9 +893,9 @@ display_attrs_ext(proto_tree *tree, element_t *element, packet_info *pinfo, tvbu
for (i = 0; i < n && attrs != NULL; i++) {
if(strcmp(ns_fullnames->data, attrs[i].ns) == 0)
{
- attr = get_attr_ext(element, attrs[i].info.name, ns_abbrevs->data);
+ attr = xmpp_get_attr_ext(element, attrs[i].info.name, ns_abbrevs->data);
if(!attr && element->default_ns_abbrev && strcmp(ns_abbrevs->data, element->default_ns_abbrev)==0)
- attr = get_attr_ext(element, attrs[i].info.name, "");
+ attr = xmpp_get_attr_ext(element, attrs[i].info.name, "");
if (attr) {
if (attrs[i].info.hf != -1) {
@@ -958,7 +952,7 @@ struct name_attr_t
returns pointer to the struct that contains 3 strings(element name, attribute name, attribute value)
*/
gpointer
-name_attr_struct(gchar *name, gchar *attr_name, gchar *attr_value)
+xmpp_name_attr_struct(gchar *name, gchar *attr_name, gchar *attr_value)
{
struct name_attr_t *result;
@@ -970,13 +964,13 @@ name_attr_struct(gchar *name, gchar *attr_name, gchar *attr_value)
}
void
-display_elems(proto_tree *tree, element_t *parent, packet_info *pinfo, tvbuff_t *tvb, elem_info *elems, guint n)
+xmpp_display_elems(proto_tree *tree, xmpp_element_t *parent, packet_info *pinfo, tvbuff_t *tvb, xmpp_elem_info *elems, guint n)
{
guint i;
for(i = 0; i < n && elems!=NULL; i++)
{
- element_t *elem = NULL;
+ xmpp_element_t *elem = NULL;
if(elems[i].type == NAME_AND_ATTR)
{
@@ -991,7 +985,7 @@ display_elems(proto_tree *tree, element_t *parent, packet_info *pinfo, tvbuff_t
a = elems[i].data;
- while(loop && (elem = steal_element_by_name_and_attr(parent, a->name, a->attr_name, a->attr_value))!=NULL)
+ while(loop && (elem = xmpp_steal_element_by_name_and_attr(parent, a->name, a->attr_name, a->attr_value))!=NULL)
{
elems[i].elem_func(tree, tvb, pinfo, elem);
if(elems[i].occurrence == ONE)
@@ -1002,7 +996,7 @@ display_elems(proto_tree *tree, element_t *parent, packet_info *pinfo, tvbuff_t
gboolean loop = TRUE;
gchar *name = elems[i].data;
- while(loop && (elem = steal_element_by_name(parent, name))!=NULL)
+ while(loop && (elem = xmpp_steal_element_by_name(parent, name))!=NULL)
{
elems[i].elem_func(tree, tvb, pinfo, elem);
if(elems[i].occurrence == ONE)
@@ -1017,8 +1011,8 @@ display_elems(proto_tree *tree, element_t *parent, packet_info *pinfo, tvbuff_t
gchar *attr_name;
gchar *attr_value;
} *attr = elems[i].data;
-
- while(loop && (elem = steal_element_by_attr(parent, attr->attr_name, attr->attr_value))!=NULL)
+
+ while(loop && (elem = xmpp_steal_element_by_attr(parent, attr->attr_name, attr->attr_value))!=NULL)
{
elems[i].elem_func(tree, tvb, pinfo, elem);
if(elems[i].occurrence == ONE)
@@ -1028,9 +1022,9 @@ display_elems(proto_tree *tree, element_t *parent, packet_info *pinfo, tvbuff_t
} else if(elems[i].type == NAMES)
{
gboolean loop = TRUE;
- array_t *names = elems[i].data;
+ xmpp_array_t *names = elems[i].data;
- while(loop && (elem = steal_element_by_names(parent, (const gchar**)names->data, names->length))!=NULL)
+ while(loop && (elem = xmpp_steal_element_by_names(parent, (const gchar**)names->data, names->length))!=NULL)
{
elems[i].elem_func(tree, tvb, pinfo, elem);
if(elems[i].occurrence == ONE)
@@ -1043,12 +1037,12 @@ display_elems(proto_tree *tree, element_t *parent, packet_info *pinfo, tvbuff_t
}
/*
-function checks that variable value is in array ((array_t)data)->data
+function checks that variable value is in array ((xmpp_array_t)data)->data
*/
void
-val_enum_list(packet_info *pinfo, proto_item *item, gchar *name, gchar *value, gpointer data)
+xmpp_val_enum_list(packet_info *pinfo, proto_item *item, gchar *name, gchar *value, gpointer data)
{
- array_t *enums_array = data;
+ xmpp_array_t *enums_array = data;
gint i;
gboolean value_in_enums = FALSE;
@@ -1072,12 +1066,12 @@ val_enum_list(packet_info *pinfo, proto_item *item, gchar *name, gchar *value, g
void
-change_elem_to_attrib(const gchar *elem_name, const gchar *attr_name, element_t *parent, attr_t* (*transform_func)(element_t *element))
+xmpp_change_elem_to_attrib(const gchar *elem_name, const gchar *attr_name, xmpp_element_t *parent, xmpp_attr_t* (*transform_func)(xmpp_element_t *element))
{
- element_t *element = NULL;
- attr_t *fake_attr = NULL;
+ xmpp_element_t *element = NULL;
+ xmpp_attr_t *fake_attr = NULL;
- element = steal_element_by_name(parent, elem_name);
+ element = xmpp_steal_element_by_name(parent, elem_name);
if(element)
fake_attr = transform_func(element);
@@ -1085,26 +1079,26 @@ change_elem_to_attrib(const gchar *elem_name, const gchar *attr_name, element_t
g_hash_table_insert(parent->attrs, (gpointer)attr_name, fake_attr);
}
-attr_t*
-transform_func_cdata(element_t *elem)
+xmpp_attr_t*
+xmpp_transform_func_cdata(xmpp_element_t *elem)
{
- attr_t *result = ep_init_attr_t(elem->data?elem->data->value:"", elem->offset, elem->length);
+ xmpp_attr_t *result = xmpp_ep_init_attr_t(elem->data?elem->data->value:"", elem->offset, elem->length);
return result;
}
static void
-copy_hash_table_func(gpointer key, gpointer value, gpointer user_data)
+xmpp_copy_hash_table_func(gpointer key, gpointer value, gpointer user_data)
{
GHashTable *dst = user_data;
g_hash_table_insert(dst, key, value);
}
-void copy_hash_table(GHashTable *src, GHashTable *dst)
+void xmpp_copy_hash_table(GHashTable *src, GHashTable *dst)
{
- g_hash_table_foreach(src, copy_hash_table_func, dst);
+ g_hash_table_foreach(src, xmpp_copy_hash_table_func, dst);
}
-/*
+#if 0
static void
printf_hash_table_func(gpointer key, gpointer value, gpointer user_data _U_)
{
@@ -1112,7 +1106,7 @@ printf_hash_table_func(gpointer key, gpointer value, gpointer user_data _U_)
}
void
-printf_elements(element_t *root)
+printf_elements(xmpp_element_t *root)
{
GList *elems = root->elements;
@@ -1124,7 +1118,8 @@ printf_elements(element_t *root)
elems = elems->next;
}
}
-*/
+#endif
+
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
diff --git a/epan/dissectors/packet-xmpp-utils.h b/epan/dissectors/packet-xmpp-utils.h
index b6e18ebd53..c9c3979bf0 100644
--- a/epan/dissectors/packet-xmpp-utils.h
+++ b/epan/dissectors/packet-xmpp-utils.h
@@ -38,34 +38,34 @@
FI_RESET_FLAG(PITEM_FINFO(proto_item), FI_HIDDEN); \
} while(0)
-#define elem_cdata(elem) \
+#define xmpp_elem_cdata(elem) \
elem->data?elem->data->value:""
-typedef struct _array_t
+typedef struct _xmpp_array_t
{
gpointer data;
gint length;
-} array_t;
+} xmpp_array_t;
-typedef struct _attr_t{
+typedef struct _xmpp_attr_t{
gchar *value;
gchar *name;
gint offset;
gint length;
gboolean was_read;
-} attr_t;
+} xmpp_attr_t;
-typedef struct _data_t{
+typedef struct _xmpp_data_t{
gchar *value;
gint offset;
gint length;
-} data_t;
+} xmpp_data_t;
-typedef struct _element_t{
+typedef struct _xmpp_element_t{
gchar* name;
-
+
/*abbreviation that apprears before tag name (<nos:x .../>)
if abbrev doesn't appear then NULL*/
gchar* default_ns_abbrev;
@@ -74,16 +74,16 @@ typedef struct _element_t{
GHashTable *attrs;
GList *elements;
- data_t *data;
+ xmpp_data_t *data;
gint offset;
gint length;
gboolean was_read;
-} element_t;
+} xmpp_element_t;
/*informations about attributes that are displayed in proto tree*/
-typedef struct _attr_info{
+typedef struct _xmpp_attr_info{
gchar *name;
gint hf;
gboolean is_required;
@@ -93,33 +93,33 @@ typedef struct _attr_info{
it may impose other restrictions (e.g. validating atribut's name, ...)*/
void (*val_func)(packet_info *pinfo, proto_item *item, gchar *name, gchar *value, gpointer data);
gpointer data;
-} attr_info;
+} xmpp_attr_info;
-typedef struct _attr_info_ext{
+typedef struct _xmpp_attr_info_ext{
gchar* ns;
- attr_info info;
-} attr_info_ext;
+ xmpp_attr_info info;
+} xmpp_attr_info_ext;
-typedef enum _elem_info_type{
+typedef enum _xmpp_elem_info_type{
NAME,
ATTR,
NAME_AND_ATTR,
NAMES
-} elem_info_type;
+} xmpp_elem_info_type;
-typedef enum _elem_info_occurrence
+typedef enum _xmpp_elem_info_occurrence
{
ONE,MANY
-} elem_info_occurrence;
+} xmpp_elem_info_occurrence;
/*informations about elements that are displayed in proto tree*/
-typedef struct _elem_info{
- elem_info_type type;
+typedef struct _xmpp_elem_info{
+ xmpp_elem_info_type type;
gpointer data;
/*function that displays element in tree*/
- void (*elem_func)(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, element_t* element);
- elem_info_occurrence occurrence;
-} elem_info;
+ void (*elem_func)(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, xmpp_element_t* element);
+ xmpp_elem_info_occurrence occurrence;
+} xmpp_elem_info;
typedef struct _xmpp_conv_info_t {
emem_tree_t *req_resp;
@@ -141,113 +141,113 @@ typedef struct _xmpp_reqresp_transaction_t {
* Both packet should have the same id attribute. Function saves in emem_tree pairs of
* packet id and struct xmpp_transaction_t.
*/
-extern void xmpp_iq_reqresp_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t *xmpp_info);
+extern void xmpp_iq_reqresp_track(packet_info *pinfo, xmpp_element_t *packet, xmpp_conv_info_t *xmpp_info);
/** Function that is responsibe for jingle session tracking in IQ packets.
* Function saves in emem_tree pairs of packet's id and Jingle session's id.
*/
-extern void xmpp_jingle_session_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t *xmpp_info);
+extern void xmpp_jingle_session_track(packet_info *pinfo, xmpp_element_t *packet, xmpp_conv_info_t *xmpp_info);
/** Function that is responsibe for ibb(in band bytestreams) session tracking in IQ packets.
* Function saves in emem_tree pairs of packet's id and In-Band Bytestreams session's id.
*/
-extern void xmpp_ibb_session_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t *xmpp_info);
+extern void xmpp_ibb_session_track(packet_info *pinfo, xmpp_element_t *packet, xmpp_conv_info_t *xmpp_info);
/** Function that is responsibe for GTalk session(voice/video) tracking in IQ packets.
* Function saves in emem_tree pairs of packet's id and GTalk session's id.
*/
-extern void xmpp_gtalk_session_track(packet_info *pinfo, element_t *packet, xmpp_conv_info_t *xmpp_info);
+extern void xmpp_gtalk_session_track(packet_info *pinfo, xmpp_element_t *packet, xmpp_conv_info_t *xmpp_info);
/** Function detects unrecognized elements and displays them in tree.
* It uses ett_unknown to display packets. ett_unknown has const size described by
- * ETT_UNKNOWN_LEN in packet-xmpp.h
+ * ETT_UNKNOWN_LEN in packet-xmpp.h
*/
-extern void xmpp_unknown(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_unknown(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-extern void xmpp_unknown_attrs(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element, gboolean displ_short_list);
+extern void xmpp_unknown_attrs(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element, gboolean displ_short_list);
/** Displays CDATA from element in tree. You can use your own header field hf or
* pass -1. If you pass -1 then CDATA will be display as text(proto_tree_add_text):
* ELEMENT_NAME: CDATA
* ELEMENT_NAME = element->name, if element is empty CDATA = "(empty)"
*/
-extern void xmpp_cdata(proto_tree *tree, tvbuff_t *tvb, element_t *element, gint hf);
+extern void xmpp_cdata(proto_tree *tree, tvbuff_t *tvb, xmpp_element_t *element, gint hf);
/** Function is similar to xmpp_cdata. But it display items only as a text and it is
* compatibile with function display_elems
*/
-extern void xmpp_simple_cdata_elem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, element_t *element);
+extern void xmpp_simple_cdata_elem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element);
-/** Converts xml_frame_t struct to element_t. Should be call with parent==NULL.
+/** Converts xml_frame_t struct to xmpp_element_t. Should be call with parent==NULL.
*/
-extern element_t* xml_frame_to_element_t(xml_frame_t *xml_frame, element_t *parent, tvbuff_t *tvb);
+extern xmpp_element_t* xmpp_xml_frame_to_element_t(xml_frame_t *xml_frame, xmpp_element_t *parent, tvbuff_t *tvb);
-/** Frees all GLib structs in element_t struct. Should be call only for root element.
+/** Frees all GLib structs in xmpp_element_t struct. Should be call only for root element.
* It works recursively.
*/
-extern void element_t_tree_free(element_t *root);
+extern void xmpp_element_t_tree_free(xmpp_element_t *root);
-/** Allocs ephemeral memory for array_t struct.*/
-extern array_t* ep_init_array_t(const gchar** array, gint len);
+/** Allocs ephemeral memory for xmpp_array_t struct.*/
+extern xmpp_array_t* xmpp_ep_init_array_t(const gchar** array, gint len);
-/*Allocs ephemeral memory for attr_t struct*/
-extern attr_t* ep_init_attr_t(gchar *value, gint offset, gint length);
+/*Allocs ephemeral memory for xmpp_attr_t struct*/
+extern xmpp_attr_t* xmpp_ep_init_attr_t(gchar *value, gint offset, gint length);
/*Allocs ephemeral memory for upcased string*/
-extern gchar* ep_string_upcase(const gchar* string);
+extern gchar* xmpp_ep_string_upcase(const gchar* string);
-/*Compares 2 element_t struct by names. Returns value is similar to the returned by strcmp*/
-extern gint element_t_cmp(gconstpointer a, gconstpointer b);
+/*Compares 2 xmpp_element_t struct by names. Returns value is similar to the returned by strcmp*/
+extern gint xmpp_element_t_cmp(gconstpointer a, gconstpointer b);
/*Searches child element in parent element by name. GList element is returned.*/
-extern GList* find_element_by_name(element_t *packet,const gchar *name);
+extern GList* xmpp_find_element_by_name(xmpp_element_t *packet,const gchar *name);
/** steal_*
* Functions searches and marks as read found elements.
* If element is set as read, it is invisible for these functions.*/
-
-extern element_t* steal_element_by_name(element_t *packet, const gchar *name);
-extern element_t* steal_element_by_names(element_t *packet, const gchar **names, gint names_len);
-extern element_t* steal_element_by_attr(element_t *packet, const gchar *attr_name, const gchar *attr_value);
-extern element_t* steal_element_by_name_and_attr(element_t *packet, const gchar *name, const gchar *attr_name, const gchar *attr_value);
+
+extern xmpp_element_t* xmpp_steal_element_by_name(xmpp_element_t *packet, const gchar *name);
+extern xmpp_element_t* xmpp_steal_element_by_names(xmpp_element_t *packet, const gchar **names, gint names_len);
+extern xmpp_element_t* xmpp_steal_element_by_attr(xmpp_element_t *packet, const gchar *attr_name, const gchar *attr_value);
+extern xmpp_element_t* xmpp_steal_element_by_name_and_attr(xmpp_element_t *packet, const gchar *name, const gchar *attr_name, const gchar *attr_value);
/*Returns first child in element*/
-extern element_t* get_first_element(element_t *packet);
+extern xmpp_element_t* xmpp_get_first_element(xmpp_element_t *packet);
/*Converts element to string. Returns memory allocated as ephemeral.*/
-extern gchar* element_to_string(tvbuff_t *tvb, element_t *element);
+extern gchar* xmpp_element_to_string(tvbuff_t *tvb, xmpp_element_t *element);
/*Converts attribute to string. Returns memory allocated as ephemeral.*/
-extern gchar* attr_to_string(tvbuff_t *tvb, attr_t *attr);
+extern gchar* xmpp_attr_to_string(tvbuff_t *tvb, xmpp_attr_t *attr);
/* Returns attribute by name and set as read. If attrib is set as read, it may be found
* one more time, but it is invisible for function xmpp_unknown_attrib*/
-extern attr_t* get_attr(element_t *element, const gchar* attr_name);
+extern xmpp_attr_t* xmpp_get_attr(xmpp_element_t *element, const gchar* attr_name);
/*Function hides first element in tree.*/
-extern void proto_tree_hide_first_child(proto_tree *tree);
+extern void xmpp_proto_tree_hide_first_child(proto_tree *tree);
/*Function shows first element in tree.*/
-extern void proto_tree_show_first_child(proto_tree *tree);
+extern void xmpp_proto_tree_show_first_child(proto_tree *tree);
/*Function returns item as text. Memory is allocated as ephemeral.*/
extern gchar* proto_item_get_text(proto_item *item);
-/*Function returns struct that contains 3 strings. It is used to build attr_info struct.*/
-extern gpointer name_attr_struct(gchar *name, gchar *attr_name, gchar *attr_value);
+/*Function returns struct that contains 3 strings. It is used to build xmpp_attr_info struct.*/
+extern gpointer xmpp_name_attr_struct(gchar *name, gchar *attr_name, gchar *attr_value);
/** Function displays attributes from element in way described in attrs.
* Elements that doesn't exist in attrs are displayed as text.
- * In ATTR_INFO struct you can define several things:
+ * In XMPP_ATTR_INFO struct you can define several things:
* - is_in_short_list - attribute should be displayed in short list e.g. ELEMENT_NAME [ATTR1='value' ATTR2='value']
* - is_required - attribute is required. If attribute doesn't appear then EXPERT INFO will be displayed
* - val_func - validate function
* - data - data passes to the val_func
*/
-extern void display_attrs(proto_tree *tree, element_t *element, packet_info *pinfo, tvbuff_t *tvb, attr_info *attrs, guint n);
+extern void xmpp_display_attrs(proto_tree *tree, xmpp_element_t *element, packet_info *pinfo, tvbuff_t *tvb, xmpp_attr_info *attrs, guint n);
-/** Function does the same as shown above. It takes attrs(ATTR_INFO_EXT) argument
- * that contains ATTR_INFO struct and string with namespace. It is used when packet
+/** Function does the same as shown above. It takes attrs(XMPP_ATTR_INFO_EXT) argument
+ * that contains XMPP_ATTR_INFO struct and string with namespace. It is used when packet
* contains several namespaces and each attribute belongs to particular namespace.
* E.g.
* <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl'
@@ -256,32 +256,32 @@ extern void display_attrs(proto_tree *tree, element_t *element, packet_info *pin
* ga:client-uses-full-bind-result='true'>
* </auth>
*/
-extern void display_attrs_ext(proto_tree *tree, element_t *element, packet_info *pinfo, tvbuff_t *tvb, attr_info_ext *attrs, guint n);
+extern void xmpp_display_attrs_ext(proto_tree *tree, xmpp_element_t *element, packet_info *pinfo, tvbuff_t *tvb, xmpp_attr_info_ext *attrs, guint n);
-/** Displays elements from parent element in a way described in elems(ELEM_INFO).
- * ELEM_INFO describes how to find particular element and what action should be done
+/** Displays elements from parent element in a way described in elems(XMPP_ELEM_INFO).
+ * XMPP_ELEM_INFO describes how to find particular element and what action should be done
* for this element.
* Function calls xmpp_unknown.
*/
-extern void display_elems(proto_tree *tree, element_t *parent, packet_info *pinfo, tvbuff_t *tvb, elem_info *elems, guint n);
+extern void xmpp_display_elems(proto_tree *tree, xmpp_element_t *parent, packet_info *pinfo, tvbuff_t *tvb, xmpp_elem_info *elems, guint n);
/* Validates attribute value. Takes string array(gchar**) in parameter data.
- * Is used in ATTR_INFO struct.
+ * Is used in XMPP_ATTR_INFO struct.
*/
-extern void val_enum_list(packet_info *pinfo, proto_item *item, gchar *name, gchar *value, gpointer data);
+extern void xmpp_val_enum_list(packet_info *pinfo, proto_item *item, gchar *name, gchar *value, gpointer data);
/** Function changes element to attribute. It searches element by name in parent element,
* next it create attribute using transform_func and inserts it to parent attributes hash table
* using attr_name as key.
*/
-extern void change_elem_to_attrib(const gchar *elem_name, const gchar *attr_name, element_t *parent, attr_t* (*transform_func)(element_t *element));
+extern void xmpp_change_elem_to_attrib(const gchar *elem_name, const gchar *attr_name, xmpp_element_t *parent, xmpp_attr_t* (*transform_func)(xmpp_element_t *element));
/** transform_func that creates attribute with element's cdata as value
*/
-extern attr_t* transform_func_cdata(element_t *elem);
+extern xmpp_attr_t* xmpp_transform_func_cdata(xmpp_element_t *elem);
/*Copys keys and values from one hash table to another.
Hash tables must be initialized.*/
-extern void copy_hash_table(GHashTable *src, GHashTable *dst);
+extern void xmpp_copy_hash_table(GHashTable *src, GHashTable *dst);
#endif /* XMPP_UTILS_H */
diff --git a/epan/dissectors/packet-xmpp.c b/epan/dissectors/packet-xmpp.c
index 7edd166454..627e9f765b 100644
--- a/epan/dissectors/packet-xmpp.c
+++ b/epan/dissectors/packet-xmpp.c
@@ -1,6 +1,6 @@
/* packet-xmpp.c
* Wireshark's XMPP dissector.
- *
+ *
* Copyright 2011, Mariusz Okroj <okrojmariusz[]gmail.com>
*
* $Id$
@@ -28,15 +28,13 @@
#include "config.h"
#endif
-#include<stdio.h>
-#include<string.h>
+#include <string.h>
+
#include <glib.h>
#include <epan/packet.h>
-#include <epan/proto.h>
#include <epan/emem.h>
#include <epan/conversation.h>
-#include <epan/strutil.h>
#include <epan/expert.h>
#include <epan/prefs.h>
@@ -375,7 +373,7 @@ dissect_xmpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
proto_tree *xmpp_tree = NULL;
proto_item *xmpp_item = NULL;
- element_t *packet = NULL;
+ xmpp_element_t *packet = NULL;
/*check if desegment
* now it checks that last char is '>',
@@ -413,14 +411,14 @@ dissect_xmpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
/*if tree == NULL then xmpp_item and xmpp_tree will also NULL*/
xmpp_item = proto_tree_add_item(tree, proto_xmpp, tvb, 0, -1, ENC_NA);
xmpp_tree = proto_item_add_subtree(xmpp_item, ett_xmpp);
-
+
call_dissector(xml_handle,tvb,pinfo,xmpp_tree);
/*if stream end occurs then return*/
if(xmpp_stream_close(xmpp_tree,tvb, pinfo))
{
if(xmpp_tree)
- proto_tree_hide_first_child(xmpp_tree);
+ xmpp_proto_tree_hide_first_child(xmpp_tree);
return;
}
@@ -429,7 +427,7 @@ dissect_xmpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
/*data from XML dissector*/
xml_frame = ((xml_frame_t*)pinfo->private_data)->first_child;
-
+
if(!xml_frame)
return;
@@ -445,7 +443,7 @@ dissect_xmpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
conversation_add_proto_data(conversation, proto_xmpp, (void *) xmpp_info);
}
-
+
if (pinfo->match_uint == pinfo->destport)
out_packet = TRUE;
else
@@ -453,7 +451,7 @@ dissect_xmpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
while(xml_frame)
{
- packet = xml_frame_to_element_t(xml_frame, NULL, tvb);
+ packet = xmpp_xml_frame_to_element_t(xml_frame, NULL, tvb);
DISSECTOR_ASSERT(packet);
if (strcmp(packet->name, "iq") == 0) {
@@ -478,7 +476,7 @@ dissect_xmpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
/*it hides tree generated by XML dissector*/
- proto_tree_hide_first_child(xmpp_tree);
+ xmpp_proto_tree_hide_first_child(xmpp_tree);
if (strcmp(packet->name, "iq") == 0) {
xmpp_iq(xmpp_tree, tvb, pinfo, packet);
@@ -507,7 +505,7 @@ dissect_xmpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
}else if (strcmp(packet->name, "proceed") == 0) {
xmpp_proceed(xmpp_tree, tvb, pinfo, packet);
}else {
- proto_tree_show_first_child(xmpp_tree);
+ xmpp_proto_tree_show_first_child(xmpp_tree);
expert_add_info_format(pinfo, xmpp_tree, PI_UNDECODED, PI_NOTE, "Unknown packet: %s", packet->name);
col_clear(pinfo->cinfo, COL_INFO);
col_append_fstr(pinfo->cinfo, COL_INFO, "UNKNOWN PACKET ");
@@ -515,17 +513,17 @@ dissect_xmpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
/*appends to COL_INFO information about src or dst*/
if (pinfo->match_uint == pinfo->destport) {
- attr_t *to = get_attr(packet, "to");
+ xmpp_attr_t *to = xmpp_get_attr(packet, "to");
if (to)
col_append_fstr(pinfo->cinfo, COL_INFO, "> %s ", to->value);
} else {
- attr_t *from = get_attr(packet, "from");
+ xmpp_attr_t *from = xmpp_get_attr(packet, "from");
if (from)
col_append_fstr(pinfo->cinfo, COL_INFO, "< %s ", from->value);
}
}
- element_t_tree_free(packet);
+ xmpp_element_t_tree_free(packet);
xml_frame = xml_frame->next_sibling;
}
}
@@ -1383,7 +1381,7 @@ proto_register_xmpp(void) {
ett_unknown_ptr[i] = &ett_unknown[i];
}
-
+
proto_xmpp = proto_register_protocol(
"XMPP Protocol", /* name */
@@ -1411,7 +1409,6 @@ proto_reg_handoff_xmpp(void) {
xml_handle = find_dissector("xml");
- /*xmpp_handle = create_dissector_handle(dissect_xmpp, proto_xmpp);*/
xmpp_handle = find_dissector("xmpp");
dissector_add_uint("tcp.port", XMPP_PORT, xmpp_handle);