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);
|
||||
}
|
||||
|
||||
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
|
||||
start_element(void *data, const char *element, const char **attributes)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user