libpurple/protocols/jabber/disco.c

changeset 40594
e32ab786a04f
parent 40439
e9838d634d5e
child 40694
493d2a76c01b
--- a/libpurple/protocols/jabber/disco.c	Tue Nov 10 03:00:37 2020 -0600
+++ b/libpurple/protocols/jabber/disco.c	Tue Nov 10 03:01:09 2020 -0600
@@ -379,6 +379,16 @@
 		jabber_request_block_list(js);
 	}
 
+	/* If the server supports carbons, enable them! */
+	if(js->server_caps & JABBER_CAP_MESSAGE_CARBONS) {
+		JabberIq *iq = jabber_iq_new(js, JABBER_IQ_SET);
+		PurpleXmlNode *enable = purple_xmlnode_new_child(iq->node, "enable");
+
+		purple_xmlnode_set_namespace(enable, NS_MESSAGE_CARBONS);
+
+		jabber_iq_send(iq);
+	}
+
 	/* If there are manually specified bytestream proxies, query them */
 	ft_proxies = purple_account_get_string(purple_connection_get_account(js->gc), "ft_proxies", NULL);
 	if (ft_proxies) {
@@ -538,6 +548,8 @@
 			js->server_caps |= JABBER_CAP_ADHOC;
 		} else if (purple_strequal(NS_SIMPLE_BLOCKING, var)) {
 			js->server_caps |= JABBER_CAP_BLOCKING;
+		} else if (purple_strequal(NS_MESSAGE_CARBONS, var)) {
+			js->server_caps |= JABBER_CAP_MESSAGE_CARBONS;
 		}
 	}
 

mercurial