461 |
461 |
462 // We don't check if the jabber user already exists in the roster, |
462 // We don't check if the jabber user already exists in the roster, |
463 // because it allows to re-ask for notification. |
463 // because it allows to re-ask for notification. |
464 |
464 |
465 x = jutil_iqnew(JPACKET__SET, NS_ROSTER); |
465 x = jutil_iqnew(JPACKET__SET, NS_ROSTER); |
466 y = xmlnode_get_tag(x, "query"); |
466 y = xmlnode_insert_tag(xmlnode_get_tag(x, "query"), "item"); |
467 z = xmlnode_insert_tag(y, "item"); |
467 |
468 xmlnode_put_attrib(z, "jid", cleanjid); |
468 xmlnode_put_attrib(y, "jid", cleanjid); |
469 |
469 |
470 if (name) { |
470 if (name) { |
471 gchar *name_utf8 = to_utf8(name); |
471 gchar *name_utf8 = to_utf8(name); |
472 z = xmlnode_insert_tag(z, "name"); |
472 xmlnode_put_attrib(y, "name", name_utf8); |
473 xmlnode_insert_cdata(z, name_utf8, (unsigned) -1); |
|
474 g_free(name_utf8); |
473 g_free(name_utf8); |
475 } |
474 } |
476 |
475 |
477 if (group) { |
476 if (group) { |
478 char *group_utf8 = to_utf8(group); |
477 char *group_utf8 = to_utf8(group); |
479 z = xmlnode_insert_tag(z, "group"); |
478 z = xmlnode_insert_tag(y, "group"); |
480 xmlnode_insert_cdata(z, group_utf8, (unsigned) -1); |
479 xmlnode_insert_cdata(z, group_utf8, (unsigned) -1); |
481 g_free(group_utf8); |
480 g_free(group_utf8); |
482 } |
481 } |
483 |
482 |
484 jab_send(jc, x); |
483 jab_send(jc, x); |