comparison mcabber/src/jabglue.c @ 1255:ceada40bbe20

Update Entity Capabilities (add iq:last)
author Mikael Berthe <mikael@lilotux.net>
date Fri, 22 Jun 2007 20:24:19 +0200
parents 401639413340
children d438b56990cd
comparison
equal deleted inserted replaced
1254:401639413340 1255:ceada40bbe20
333 // Entity Capabilities (XEP-0115) 333 // Entity Capabilities (XEP-0115)
334 static void insert_entity_capabilities(xmlnode x) 334 static void insert_entity_capabilities(xmlnode x)
335 { 335 {
336 xmlnode y; 336 xmlnode y;
337 const char *ver = entity_version(); 337 const char *ver = entity_version();
338 char *exts, *exts2;
339
340 exts = NULL;
338 341
339 y = xmlnode_insert_tag(x, "c"); 342 y = xmlnode_insert_tag(x, "c");
340 xmlnode_put_attrib(y, "xmlns", NS_CAPS); 343 xmlnode_put_attrib(y, "xmlns", NS_CAPS);
341 xmlnode_put_attrib(y, "node", MCABBER_CAPS_NODE); 344 xmlnode_put_attrib(y, "node", MCABBER_CAPS_NODE);
342 xmlnode_put_attrib(y, "ver", ver); 345 xmlnode_put_attrib(y, "ver", ver);
343 #ifdef JEP0085 346 #ifdef JEP0085
344 if (!chatstates_disabled) 347 if (!chatstates_disabled) {
345 xmlnode_put_attrib(y, "ext", "csn"); 348 exts2 = g_strjoin(" ", "csn", exts, NULL);
349 g_free(exts);
350 exts = exts2;
351 }
346 #endif 352 #endif
353 if (!settings_opt_get_int("iq_last_disable")) {
354 exts2 = g_strjoin(" ", "iql", exts, NULL);
355 g_free(exts);
356 exts = exts2;
357 }
358 if (exts) {
359 xmlnode_put_attrib(y, "ext", exts);
360 g_free(exts);
361 }
347 } 362 }
348 363
349 static void roompresence(gpointer room, void *presencedata) 364 static void roompresence(gpointer room, void *presencedata)
350 { 365 {
351 const char *bjid; 366 const char *bjid;