diff -r 7921c8d671c8 -r db8de1b464d3 mcabber/mcabber/xmpp.c --- a/mcabber/mcabber/xmpp.c Tue May 14 22:19:33 2019 +0200 +++ b/mcabber/mcabber/xmpp.c Sat May 18 20:41:52 2019 +0200 @@ -1385,9 +1385,6 @@ LmMessageNode *muc_packet, *caps; LmMessageSubType mstype = lm_message_get_sub_type(m); - // Check for MUC presence packet - muc_packet = lm_message_node_find_xmlns(m->node, NS_MUC_USER); - from = lm_message_get_from(m); if (!from) { scr_LogPrint(LPRINT_LOGNORM, "Unexpected presence packet!"); @@ -1400,8 +1397,6 @@ return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; } - rname = jid_get_resource_name(from); - if (settings_opt_get_int("ignore_self_presence")) { const char *self_fjid = lm_connection_get_jid(connection); if (self_fjid && !strcasecmp(self_fjid, from)) { @@ -1464,6 +1459,9 @@ // Timestamp? timestamp = lm_message_node_get_timestamp(m->node); + // Check for MUC presence packet + muc_packet = lm_message_node_find_xmlns(m->node, NS_MUC_USER); + rname = jid_get_resource_name(from); if (muc_packet) { // This is a MUC presence message @@ -1596,8 +1594,7 @@ const char *msg = lm_message_node_get_child_value(m->node, "status"); if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { - display_server_error(lm_message_node_get_child(m->node, "error"), - lm_message_get_from(m)); + display_server_error(lm_message_node_get_child(m->node, "error"), from); return LM_HANDLER_RESULT_REMOVE_MESSAGE; }