# HG changeset patch # User Mikael Berthe # Date 1265559029 -3600 # Node ID e67bdd863638dc8a12fe655a8de519bb4255dbbe # Parent d080e7cda46c4ec79303284e97b1cd13620146f7 Handle IQ responses with no "from" (No from means our own JID -- thanks waqas) diff -r d080e7cda46c -r e67bdd863638 mcabber/mcabber/xmpp_iqrequest.c --- a/mcabber/mcabber/xmpp_iqrequest.c Sun Feb 07 16:41:12 2010 +0100 +++ b/mcabber/mcabber/xmpp_iqrequest.c Sun Feb 07 17:10:29 2010 +0100 @@ -135,12 +135,13 @@ } // Display IQ result sender... - p = lm_message_get_from(m); - if (!p) { + bjid = lm_message_get_from(m); + if (!bjid) + bjid = lm_connection_get_jid(lconnection); + if (!bjid) { scr_LogPrint(LPRINT_LOGNORM, "Invalid IQ:version result (no sender name)."); - return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; + return LM_HANDLER_RESULT_REMOVE_MESSAGE; } - bjid = p; buf = g_strdup_printf("Received IQ:version result from <%s>", bjid); scr_LogPrint(LPRINT_LOGNORM, "%s", buf); @@ -191,12 +192,13 @@ return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; } // Display IQ result sender... - p = lm_message_get_from(m); - if (!p) { - scr_LogPrint(LPRINT_LOGNORM, "Invalid IQ:time result (no sender name)."); - return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; + bjid = lm_message_get_from(m); + if (!bjid) + bjid = lm_connection_get_jid(lconnection); + if (!bjid) { + scr_LogPrint(LPRINT_LOGNORM, "Invalid IQ:version result (no sender name)."); + return LM_HANDLER_RESULT_REMOVE_MESSAGE; } - bjid = p; buf = g_strdup_printf("Received IQ:time result from <%s>", bjid); scr_LogPrint(LPRINT_LOGNORM, "%s", buf); @@ -246,12 +248,13 @@ return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; } // Display IQ result sender... - p = lm_message_get_from(m); - if (!p) { - scr_LogPrint(LPRINT_LOGNORM, "Invalid IQ:last result (no sender name)."); - return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; + bjid = lm_message_get_from(m); + if (!bjid) + bjid = lm_connection_get_jid(lconnection); + if (!bjid) { + scr_LogPrint(LPRINT_LOGNORM, "Invalid IQ:version result (no sender name)."); + return LM_HANDLER_RESULT_REMOVE_MESSAGE; } - bjid = p; buf = g_strdup_printf("Received IQ:last result from <%s>", bjid); scr_LogPrint(LPRINT_LOGNORM, "%s", buf); @@ -409,16 +412,17 @@ LmMessage *m, gpointer user_data) { LmMessageNode *ansqry; - const char *p, *bjid; + const char *bjid; char *buf, *tmp; // Display IQ result sender... - p = lm_message_get_from(m); - if (!p) { - scr_LogPrint(LPRINT_LOGNORM, "Invalid IQ:vCard result (no sender name)."); - return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; + bjid = lm_message_get_from(m); + if (!bjid) + bjid = lm_connection_get_jid(lconnection); + if (!bjid) { + scr_LogPrint(LPRINT_LOGNORM, "Invalid IQ:version result (no sender name)."); + return LM_HANDLER_RESULT_REMOVE_MESSAGE; } - bjid = p; buf = g_strdup_printf("Received IQ:vCard result from <%s>", bjid); scr_LogPrint(LPRINT_LOGNORM, "%s", buf);