--- 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; } }