changeset 1698:e67bdd863638

Handle IQ responses with no "from" (No from means our own JID -- thanks waqas)
author Mikael Berthe <mikael@lilotux.net>
date Sun, 07 Feb 2010 17:10:29 +0100
parents d080e7cda46c
children 527c965b45c5
files mcabber/mcabber/xmpp_iqrequest.c
diffstat 1 files changed, 24 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- 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);