# HG changeset patch # User Mark Doliner # Date 1174806117 0 # Node ID 4be5d38ee117f8ef194f7c96a3b3830156ac4e6a # Parent 40a8cefe4fcd832bd405179fdd5004f3d48742e3 Correctly handle the Jabber disconnection error for signing onto the same resource from two locations. diff -r 40a8cefe4fcd -r 4be5d38ee117 libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Sun Mar 25 06:43:10 2007 +0000 +++ b/libpurple/protocols/jabber/jabber.c Sun Mar 25 07:01:57 2007 +0000 @@ -162,7 +162,6 @@ static void jabber_stream_handle_error(JabberStream *js, xmlnode *packet) { char *msg = jabber_parse_error(js, packet); -purple_debug_error("MARK", "in jabber_stream_handle_error\n"); purple_connection_error(js->gc, msg); g_free(msg); @@ -1454,7 +1453,6 @@ const char *code = NULL, *text = NULL; const char *xmlns = xmlnode_get_namespace(packet); char *cdata = NULL; -purple_debug_error("MARK", "in jabber_parse_error, packet->name=%s, xmlns=%s, type=%d, data=%s\n", packet->name, packet->xmlns, packet->type, packet->data); if((error = xmlnode_get_child(packet, "error"))) { cdata = xmlnode_get_data(error); @@ -1530,14 +1528,14 @@ js->gc->wants_to_die = TRUE; text = _("Authentication Failure"); } - } else if(!strcmp(packet->name, "stream:error")) { -purple_debug_error("MARK", "stream:error\n"); + } else if(!strcmp(packet->name, "stream:error") || + (!strcmp(packet->name, "error") && + !strcmp(xmlnode_get_namespace(packet), "http://etherx.jabber.org/streams"))) { if(xmlnode_get_child(packet, "bad-format")) { text = _("Bad Format"); } else if(xmlnode_get_child(packet, "bad-namespace-prefix")) { text = _("Bad Namespace Prefix"); } else if(xmlnode_get_child(packet, "conflict")) { -purple_debug_error("MARK", "conflict\n"); js->gc->wants_to_die = TRUE; text = _("Resource Conflict"); } else if(xmlnode_get_child(packet, "connection-timeout")) { @@ -1587,7 +1585,6 @@ } } -purple_debug_error("MARK", "text=\n", text); if(text || cdata) { char *ret = g_strdup_printf("%s%s%s", code ? code : "", code ? ": " : "", text ? text : cdata); diff -r 40a8cefe4fcd -r 4be5d38ee117 libpurple/xmlnode.c --- a/libpurple/xmlnode.c Sun Mar 25 06:43:10 2007 +0000 +++ b/libpurple/xmlnode.c Sun Mar 25 07:01:57 2007 +0000 @@ -455,8 +455,6 @@ xmlnode *node; int i; -purple_debug_error("MARK", "\nelement_name=%s, prefix=%s, xmlns=%s\n", element_name, prefix, xmlns); - if(!element_name || xpd->error) { return; } else {