changeset 27068:42bff519973b

disapproval of revision 'd34a15898cacf017df9190ca02741880be8dd940' xmlParseChunk is not reentrant. This /just happened/ to work for '<proceed/>' but not '<proceed></proceed>'. Closes #9271.
author Paul Aurich <paul@darkrain42.org>
date Sat, 30 May 2009 00:21:37 +0000
parents 90d5e3b94a37
children cd78ea46e9bd
files libpurple/protocols/jabber/jabber.c libpurple/protocols/jabber/parser.c libpurple/protocols/jabber/parser.h
diffstat 3 files changed, 0 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c	Sun Apr 26 00:22:21 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Sat May 30 00:21:37 2009 +0000
@@ -79,10 +79,6 @@
 						  "xmlns:stream='http://etherx.jabber.org/streams' "
 						  "version='1.0'>",
 						  js->user->domain);
-	if (js->reinit)
-		/* Close down the current stream to keep the XML parser happy */
-		jabber_parser_close_stream(js);
-
 	/* setup the parser fresh for each stream */
 	jabber_parser_setup(js);
 	jabber_send_raw(js, open_stream, -1);
@@ -632,9 +628,6 @@
 
 static void tls_init(JabberStream *js)
 {
-	/* Close down the current stream to keep the XML parser happy */
-	jabber_parser_close_stream(js);
-
 	purple_input_remove(js->gc->inpa);
 	js->gc->inpa = 0;
 	js->gsc = purple_ssl_connect_with_host_fd(js->gc->account, js->fd,
@@ -1342,16 +1335,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);
 
--- a/libpurple/protocols/jabber/parser.c	Sun Apr 26 00:22:21 2009 +0000
+++ b/libpurple/protocols/jabber/parser.c	Sat May 30 00:21:37 2009 +0000
@@ -207,12 +207,6 @@
 	jabber_parser_free(js);
 }
 
-void
-jabber_parser_close_stream(JabberStream *js)
-{
-	xmlParseChunk(js->context, "</stream:stream>", 16 /* length */, 0);
-}
-
 void jabber_parser_free(JabberStream *js) {
 	if (js->context) {
 		xmlParseChunk(js->context, NULL,0,1);
--- a/libpurple/protocols/jabber/parser.h	Sun Apr 26 00:22:21 2009 +0000
+++ b/libpurple/protocols/jabber/parser.h	Sat May 30 00:21:37 2009 +0000
@@ -25,7 +25,6 @@
 #include "jabber.h"
 
 void jabber_parser_setup(JabberStream *js);
-void jabber_parser_close_stream(JabberStream *js);
 void jabber_parser_free(JabberStream *js);
 void jabber_parser_process(JabberStream *js, const char *buf, int len);