Mercurial > hg
changeset 1904:9a3d7a7dada2
Fix looping issue spotted by isbear when sending manual IQ messages
The IQ handlers should not be triggered for unexpected IQ result messages
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sat, 17 Apr 2010 11:50:22 +0200 |
parents | 75a0a22bbf78 |
children | 68a4f8dda3e7 |
files | mcabber/mcabber/xmpp.c |
diffstat | 1 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/mcabber/xmpp.c Sat Apr 17 11:21:04 2010 +0200 +++ b/mcabber/mcabber/xmpp.c Sat Apr 17 11:50:22 2010 +0200 @@ -1483,6 +1483,14 @@ return LM_HANDLER_RESULT_REMOVE_MESSAGE; } + if (mstype == LM_MESSAGE_SUB_TYPE_RESULT) { + scr_LogPrint(LPRINT_DEBUG, "Unhandled IQ result? %s", lm_message_node_to_string(m->node)); // TODO check + + scr_LogPrint(LPRINT_NORMAL, "Received unhandled IQ result from <%s>.", + lm_message_get_from(m)); + return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; + } + for (x = m->node->children; x; x=x->next) { xmlns = lm_message_node_get_attribute(x, "xmlns"); if (xmlns) @@ -1498,10 +1506,8 @@ scr_LogPrint(LPRINT_DEBUG, "Unhandled IQ: %s", lm_message_node_to_string(m->node)); - if (mstype != LM_MESSAGE_SUB_TYPE_RESULT) { - scr_LogPrint(LPRINT_NORMAL, "Received unhandled IQ request from <%s>.", - lm_message_get_from(m)); - } + scr_LogPrint(LPRINT_NORMAL, "Received unhandled IQ request from <%s>.", + lm_message_get_from(m)); return LM_HANDLER_RESULT_REMOVE_MESSAGE; }