Mercurial > ~mikael > mcabber > hg
diff mcabber/src/jabglue.c @ 1215:80c095886fb5
Entity Capabilities support (XEP-0115)
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Tue, 08 May 2007 10:00:32 +0200 |
parents | 4a7db2870685 |
children | f7b35b1c343d |
line wrap: on
line diff
--- a/mcabber/src/jabglue.c Tue May 01 18:19:12 2007 +0200 +++ b/mcabber/src/jabglue.c Tue May 08 10:00:32 2007 +0200 @@ -323,6 +323,23 @@ return mystatusmsg; } +// insert_entity_capabilities(presence_stanza) +// Entity Capabilities (XEP-0115) +static void insert_entity_capabilities(xmlnode x) +{ + xmlnode y; + const char *ver = entity_version(); + + y = xmlnode_insert_tag(x, "c"); + xmlnode_put_attrib(y, "xmlns", NS_CAPS); + xmlnode_put_attrib(y, "node", MCABBER_CAPS_NODE); + xmlnode_put_attrib(y, "ver", ver); +#ifdef JEP0085 + if (!chatstates_disabled) + xmlnode_put_attrib(y, "ext", "csn"); +#endif +} + static void roompresence(gpointer room, void *presencedata) { const char *bjid; @@ -435,6 +452,7 @@ if (online) { const char *s_msg = (st != invisible ? msg : NULL); x = presnew(st, recipient, s_msg); + insert_entity_capabilities(x); // Entity Capabilities (XEP-0115) #ifdef HAVE_GPGME if (!do_not_sign && gpg_enabled()) { char *signature;