mirror of
git://slackware.nl/current.git
synced 2025-02-15 08:50:09 +01:00
46 lines
1.4 KiB
Diff
46 lines
1.4 KiB
Diff
![]() |
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
|
||
|
|