1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-02-15 08:50:09 +01:00
slackware-current/source/l/loudmouth/loudmouth.stanzadrop.diff

46 lines
1.4 KiB
Diff
Raw Normal View History

From: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
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. <client:iq xmlns:client="jabber:client" ... />
---
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