changeset 29055:cfca0217d162

merge of '263b34adf7373694b48a494714d66824d6bb3443' and 'd6f80b7ba5ba2da4ae203eac6f07565721b10ad8'
author Paul Aurich <paul@darkrain42.org>
date Sun, 29 Nov 2009 17:32:05 +0000
parents 61cd675b73df (diff) 54db9b78be71 (current diff)
children 52dc24a5069f
files libpurple/protocols/jabber/presence.c
diffstat 2 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/jabber/parser.c	Sun Nov 29 16:24:35 2009 +0000
+++ b/libpurple/protocols/jabber/parser.c	Sun Nov 29 17:32:05 2009 +0000
@@ -152,6 +152,15 @@
 		 */
 		return;
 
+	if (error->level == XML_ERR_FATAL && error->message != NULL
+			&& strcmp(error->message, "Extra content at the end of the document\n") == 0)
+		/*
+		 * This is probably more annoying than the vcard-temp error; it occurs
+		 * because we disconnect in most cases without waiting for the receiving
+		 * </stream:stream> (limitations of libpurple)
+		 */
+		return;
+
 	purple_debug_error("jabber", "XML parser error for JabberStream %p: "
 								 "Domain %i, code %i, level %i: %s",
 					   js,
--- a/libpurple/protocols/jabber/presence.c	Sun Nov 29 16:24:35 2009 +0000
+++ b/libpurple/protocols/jabber/presence.c	Sun Nov 29 17:32:05 2009 +0000
@@ -957,7 +957,7 @@
 		buddy_name = g_strdup_printf("%s%s%s", jid->node ? jid->node : "",
 									 jid->node ? "@" : "", jid->domain);
 		if((b = purple_find_buddy(js->gc->account, buddy_name)) == NULL) {
-			if(!jid->node || strcmp(jid->node,js->user->node) || strcmp(jid->domain,js->user->domain)) {
+			if (jb != js->user_jb) {
 				purple_debug_warning("jabber", "Got presence for unknown buddy %s on account %s (%p)\n",
 									 buddy_name, purple_account_get_username(js->gc->account), js->gc->account);
 				jabber_id_free(jid);