From c2e173479f694d1db391f4daa1f9a66b0596994d Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 21 Sep 2014 01:04:53 +0100 Subject: [PATCH] Fixed muc presence check, remove logging from presence handler --- src/xmpp/presence.c | 17 +++++++---------- src/xmpp/stanza.c | 16 ++++------------ 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/src/xmpp/presence.c b/src/xmpp/presence.c index a4cc549e..f1871006 100644 --- a/src/xmpp/presence.c +++ b/src/xmpp/presence.c @@ -502,16 +502,8 @@ static int _available_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, void * const userdata) { - char *from = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM); - if (from) { - log_info("Available presence handler fired for: %s", from); - } else { - log_info("Available presence handler fired"); - } - // handler still fires if error if (g_strcmp0(xmpp_stanza_get_type(stanza), STANZA_TYPE_ERROR) == 0) { - log_info("Available presence of type error, exiting handler"); return 1; } @@ -520,16 +512,21 @@ _available_handler(xmpp_conn_t * const conn, (g_strcmp0(xmpp_stanza_get_type(stanza), STANZA_TYPE_SUBSCRIBE) == 0) || (g_strcmp0(xmpp_stanza_get_type(stanza), STANZA_TYPE_SUBSCRIBED) == 0) || (g_strcmp0(xmpp_stanza_get_type(stanza), STANZA_TYPE_UNSUBSCRIBED) == 0)) { - log_info("Available presence of subscription type, exiting handler"); return 1; } // handler still fires for muc presence if (stanza_is_muc_presence(stanza)) { - log_info("Available presence MUC type, exiting handler"); return 1; } + char *from = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM); + if (from) { + log_info("Available presence handler fired for: %s", from); + } else { + log_info("Available presence handler fired"); + } + // exit when no from attribute if (!from) { log_warning("No from attribute found."); diff --git a/src/xmpp/stanza.c b/src/xmpp/stanza.c index cca07539..1a962c53 100644 --- a/src/xmpp/stanza.c +++ b/src/xmpp/stanza.c @@ -765,21 +765,13 @@ stanza_is_muc_presence(xmpp_stanza_t * const stanza) return FALSE; } - xmpp_stanza_t *x = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_X); + xmpp_stanza_t *x = xmpp_stanza_get_child_by_ns(stanza, STANZA_NS_MUC_USER); - if (x == NULL) { + if (x) { + return TRUE; + } else { return FALSE; } - - char *ns = xmpp_stanza_get_ns(x); - if (ns == NULL) { - return FALSE; - } - if (strcmp(ns, STANZA_NS_MUC_USER) != 0) { - return FALSE; - } - - return TRUE; } gboolean