Moved stanza_get_child_by_ns
This commit is contained in:
@@ -111,6 +111,39 @@ stanza_add_child(XMPPStanza *parent, XMPPStanza *child)
|
|||||||
parent->children = g_list_append(parent->children, child);
|
parent->children = g_list_append(parent->children, child);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XMPPStanza*
|
||||||
|
stanza_get_child_by_ns(XMPPStanza *stanza, char *ns)
|
||||||
|
{
|
||||||
|
if (!stanza) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!stanza->children) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
GList *curr_child = stanza->children;
|
||||||
|
while (curr_child) {
|
||||||
|
XMPPStanza *child = curr_child->data;
|
||||||
|
if (!child->attrs) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
GList *curr_attr = child->attrs;
|
||||||
|
while (curr_attr) {
|
||||||
|
XMPPAttr *attr = curr_attr->data;
|
||||||
|
if ((g_strcmp0(attr->name, "xmlns") == 0) && (g_strcmp0(attr->value, ns) == 0)) {
|
||||||
|
return child;
|
||||||
|
}
|
||||||
|
|
||||||
|
curr_attr = g_list_next(curr_attr);
|
||||||
|
}
|
||||||
|
|
||||||
|
curr_child = g_list_next(curr_child);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
start_element(void *data, const char *element, const char **attributes)
|
start_element(void *data, const char *element, const char **attributes)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -42,5 +42,6 @@ XMPPStanza* stanza_new(const char *name, const char **attributes);
|
|||||||
XMPPStanza* parse_stanza(char *stanza_text);
|
XMPPStanza* parse_stanza(char *stanza_text);
|
||||||
char* stanza_to_string(XMPPStanza *stanza);
|
char* stanza_to_string(XMPPStanza *stanza);
|
||||||
void stanza_add_child(XMPPStanza *parent, XMPPStanza *child);
|
void stanza_add_child(XMPPStanza *parent, XMPPStanza *child);
|
||||||
|
XMPPStanza* stanza_get_child_by_ns(XMPPStanza *stanza, char *ns);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -62,39 +62,6 @@ stanza_add(XMPPStanza *stanza)
|
|||||||
pthread_mutex_unlock(&stanzas_lock);
|
pthread_mutex_unlock(&stanzas_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
XMPPStanza*
|
|
||||||
stanza_get_child_by_ns(XMPPStanza *stanza, char *ns)
|
|
||||||
{
|
|
||||||
if (!stanza) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!stanza->children) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
GList *curr_child = stanza->children;
|
|
||||||
while (curr_child) {
|
|
||||||
XMPPStanza *child = curr_child->data;
|
|
||||||
if (!child->attrs) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
GList *curr_attr = child->attrs;
|
|
||||||
while (curr_attr) {
|
|
||||||
XMPPAttr *attr = curr_attr->data;
|
|
||||||
if ((g_strcmp0(attr->name, "xmlns") == 0) && (g_strcmp0(attr->value, ns) == 0)) {
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
|
|
||||||
curr_attr = g_list_next(curr_attr);
|
|
||||||
}
|
|
||||||
|
|
||||||
curr_child = g_list_next(curr_child);
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
XMPPStanza*
|
XMPPStanza*
|
||||||
stanza_get_child_by_name(XMPPStanza *stanza, char *name)
|
stanza_get_child_by_name(XMPPStanza *stanza, char *name)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ const char* stanza_get_id(XMPPStanza *stanza);
|
|||||||
void stanza_set_id(XMPPStanza *stanza, const char *id);
|
void stanza_set_id(XMPPStanza *stanza, const char *id);
|
||||||
const char *stanza_get_query_request(XMPPStanza *stanza);
|
const char *stanza_get_query_request(XMPPStanza *stanza);
|
||||||
|
|
||||||
XMPPStanza* stanza_get_child_by_ns(XMPPStanza *stanza, char *ns);
|
|
||||||
XMPPStanza* stanza_get_child_by_name(XMPPStanza *stanza, char *name);
|
XMPPStanza* stanza_get_child_by_name(XMPPStanza *stanza, char *name);
|
||||||
|
|
||||||
int stanza_verify_any(XMPPStanza *stanza);
|
int stanza_verify_any(XMPPStanza *stanza);
|
||||||
|
|||||||
Reference in New Issue
Block a user