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;