diff --git a/src/server/stanza.c b/src/server/stanza.c index c24c1e6..751408b 100644 --- a/src/server/stanza.c +++ b/src/server/stanza.c @@ -144,6 +144,30 @@ stanza_get_child_by_ns(XMPPStanza *stanza, char *ns) return NULL; } +XMPPStanza* +stanza_get_child_by_name(XMPPStanza *stanza, char *name) +{ + if (!stanza) { + return NULL; + } + + if (!stanza->children) { + return NULL; + } + + GList *curr_child = stanza->children; + while (curr_child) { + XMPPStanza *child = curr_child->data; + if (g_strcmp0(child->name, name) == 0) { + return child; + } + + curr_child = g_list_next(curr_child); + } + + return NULL; +} + static void start_element(void *data, const char *element, const char **attributes) { diff --git a/src/server/stanza.h b/src/server/stanza.h index 29e2817..282bc61 100644 --- a/src/server/stanza.h +++ b/src/server/stanza.h @@ -43,5 +43,6 @@ XMPPStanza* parse_stanza(char *stanza_text); char* stanza_to_string(XMPPStanza *stanza); void stanza_add_child(XMPPStanza *parent, XMPPStanza *child); XMPPStanza* stanza_get_child_by_ns(XMPPStanza *stanza, char *ns); +XMPPStanza* stanza_get_child_by_name(XMPPStanza *stanza, char *name); #endif diff --git a/src/server/stanzas.c b/src/server/stanzas.c index 40ad6ff..2edf86c 100644 --- a/src/server/stanzas.c +++ b/src/server/stanzas.c @@ -62,30 +62,6 @@ stanza_add(XMPPStanza *stanza) pthread_mutex_unlock(&stanzas_lock); } -XMPPStanza* -stanza_get_child_by_name(XMPPStanza *stanza, char *name) -{ - if (!stanza) { - return NULL; - } - - if (!stanza->children) { - return NULL; - } - - GList *curr_child = stanza->children; - while (curr_child) { - XMPPStanza *child = curr_child->data; - if (g_strcmp0(child->name, name) == 0) { - return child; - } - - curr_child = g_list_next(curr_child); - } - - return NULL; -} - const char * stanza_get_id(XMPPStanza *stanza) { diff --git a/src/server/stanzas.h b/src/server/stanzas.h index c963335..50efc25 100644 --- a/src/server/stanzas.h +++ b/src/server/stanzas.h @@ -32,8 +32,6 @@ const char* stanza_get_id(XMPPStanza *stanza); void stanza_set_id(XMPPStanza *stanza, const char *id); const char *stanza_get_query_request(XMPPStanza *stanza); -XMPPStanza* stanza_get_child_by_name(XMPPStanza *stanza, char *name); - int stanza_verify_any(XMPPStanza *stanza); int stanza_verify_last(XMPPStanza *stanza);