summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Aurich <darkrain42@pidgin.im>2009-11-29 17:32:05 +0000
committerPaul Aurich <darkrain42@pidgin.im>2009-11-29 17:32:05 +0000
commitf67de1e0572ff5f050d1e062015aa8d797f7571a (patch)
tree9fb75f36756122f4dd2f782883630449d2f8d0b4
parent0c804fb18b3aaaab3af0d0a2204375cf29b15e50 (diff)
parenta61c791b55119d5cf61f72dece0e0992de881e5d (diff)
downloadpidgin-f67de1e0572ff5f050d1e062015aa8d797f7571a.tar.gz
merge of '57ed606f526dd9eeda93b2c17c86870bee211ed0'
and '6923e9310b47ecb9fb1d6de466bb91cea6f9610a'
-rw-r--r--libpurple/protocols/jabber/parser.c9
-rw-r--r--libpurple/protocols/jabber/presence.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/libpurple/protocols/jabber/parser.c b/libpurple/protocols/jabber/parser.c
index 9ab7a24176..510284631a 100644
--- a/libpurple/protocols/jabber/parser.c
+++ b/libpurple/protocols/jabber/parser.c
@@ -152,6 +152,15 @@ jabber_parser_structured_error_handler(void *user_data, xmlErrorPtr error)
*/
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,
diff --git a/libpurple/protocols/jabber/presence.c b/libpurple/protocols/jabber/presence.c
index 9748013c11..c68ff91a22 100644
--- a/libpurple/protocols/jabber/presence.c
+++ b/libpurple/protocols/jabber/presence.c
@@ -957,7 +957,7 @@ void jabber_presence_parse(JabberStream *js, xmlnode *packet)
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);