diff libpurple/protocols/jabber/jabber.c @ 28010:0754698c49f4

merged with im.pidgin.pidgin
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Sun, 26 Jul 2009 22:18:59 +0900
parents e1cd44c7c7af e8e056876e39
children 784013acc2f3
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c	Sat Jul 25 05:14:27 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Sun Jul 26 22:18:59 2009 +0900
@@ -457,6 +457,7 @@
 void jabber_send_signal_cb(PurpleConnection *pc, xmlnode **packet,
                            gpointer unused)
 {
+	JabberStream *js;
 	char *txt, *utf;
 	int len;
 	gsize utflen;
@@ -464,9 +465,15 @@
 	if (NULL == packet)
 		return;
 
+	js = purple_connection_get_protocol_data(pc);
+	if (js->use_bosh)
+		if (g_str_equal((*packet)->name, "message") ||
+				g_str_equal((*packet)->name, "iq") ||
+				g_str_equal((*packet)->name, "presence"))
+			xmlnode_set_namespace(*packet, "jabber:client");
 	txt = xmlnode_to_str(*packet, &len);
 	utf = botch_utf(txt, len, &utflen); //yaz
-	jabber_send_raw(purple_connection_get_protocol_data(pc), utf, utflen);
+	jabber_send_raw(js, utf, utflen);
 	g_free(txt); g_free(utf);
 }
 
@@ -701,6 +708,8 @@
 	js->gc->inpa = 0;
 	js->gsc = purple_ssl_connect_with_host_fd(js->gc->account, js->fd,
 			jabber_login_callback_ssl, jabber_ssl_connect_failure, js->certificate_CN, js->gc);
+	/* The fd is no longer our concern */
+	js->fd = -1;
 }
 
 static gboolean jabber_login_connect(JabberStream *js, const char *domain, const char *host, int port,