changeset 25872:3b674151cd60

*** Plucked rev 4831edb9 (darkrain42@pidgin.im): Don't call jabber_parser_close_stream in jabber_close, it papers over a real issue.
author Paul Aurich <paul@darkrain42.org>
date Wed, 29 Apr 2009 21:01:05 +0000
parents f424f26dd329
children 21a90a4c76d6
files libpurple/protocols/jabber/jabber.c
diffstat 1 files changed, 5 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c	Wed Apr 29 20:57:53 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Wed Apr 29 21:01:05 2009 +0000
@@ -1323,6 +1323,11 @@
 	jabber_unregister_account_cb(js);
 }
 
+/* TODO: As Will pointed out in IRC, after being notified by the core to
+ * shutdown, we should async. wait for the server to send us the stream
+ * termination before destorying everything. That seems like it would require
+ * changing the semantics of prpl->close(), so it's a good idea for 3.0.0.
+ */
 void jabber_close(PurpleConnection *gc)
 {
 	JabberStream *js = gc->proto_data;
@@ -1334,16 +1339,6 @@
 	if (!gc->disconnect_timeout)
 		jabber_send_raw(js, "</stream:stream>", -1);
 
-	if (!purple_account_get_current_error(purple_connection_get_account(gc))) {
-		/*
-		 * The common case is user-triggered, so we never receive a
-		 * </stream:stream> from the server when disconnecting, so silence the
-		 * parser's warnings. On errors, though, the server terminated the
-		 * connection, so we should have received a real </stream:stream>.
-		 */
-		jabber_parser_close_stream(js);
-	}
-
 	if (js->srv_query_data)
 		purple_srv_cancel(js->srv_query_data);