From: Sjoerd Simons Date: Tue, 13 Jan 2009 11:28:44 +0000 Subject: [PATCH] Drop stanzas when failing to convert them to LmMessages when a stanza comes in that for some reason can't be parsed into an LmMessage, just drop them on the floor instead of blocking the parser. I've seen this issue happen in practise because some (buggy?) client sending an iq with a prefix e.g. --- loudmouth/lm-parser.c | 15 ++++++--------- 1 files changed, 6 insertions(+), 9 deletions(-) diff --git a/loudmouth/lm-parser.c b/loudmouth/lm-parser.c index 1938d56..89f6675 100644 --- a/loudmouth/lm-parser.c +++ b/loudmouth/lm-parser.c @@ -151,19 +151,16 @@ parser_end_node_cb (GMarkupParseContext *context, if (!m) { g_warning ("Couldn't create message: %s\n", parser->cur_root->name); - return; - } - - g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_PARSER, + } else { + g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_PARSER, "Have a new message\n"); - if (parser->function) { - (* parser->function) (parser, m, parser->user_data); + if (parser->function) { + (* parser->function) (parser, m, parser->user_data); + } + lm_message_unref (m); } - lm_message_unref (m); lm_message_node_unref (parser->cur_root); - - parser->cur_node = parser->cur_root = NULL; } else { LmMessageNode *tmp_node; -- 1.5.6.5