equal
deleted
inserted
replaced
421 cleanjid = jidtodisp(jid); |
421 cleanjid = jidtodisp(jid); |
422 |
422 |
423 // We don't check if the jabber user already exists in the roster, |
423 // We don't check if the jabber user already exists in the roster, |
424 // because it allows to re-ask for notification. |
424 // because it allows to re-ask for notification. |
425 |
425 |
426 x = jutil_presnew(JPACKET__SUBSCRIBE, cleanjid, NULL); |
|
427 jab_send(jc, x); |
|
428 xmlnode_free(x); |
|
429 |
|
430 x = jutil_iqnew(JPACKET__SET, NS_ROSTER); |
426 x = jutil_iqnew(JPACKET__SET, NS_ROSTER); |
431 y = xmlnode_get_tag(x, "query"); |
427 y = xmlnode_get_tag(x, "query"); |
432 z = xmlnode_insert_tag(y, "item"); |
428 z = xmlnode_insert_tag(y, "item"); |
433 xmlnode_put_attrib(z, "jid", cleanjid); |
429 xmlnode_put_attrib(z, "jid", cleanjid); |
434 |
430 |
444 z = xmlnode_insert_tag(z, "group"); |
440 z = xmlnode_insert_tag(z, "group"); |
445 xmlnode_insert_cdata(z, group_utf8, (unsigned) -1); |
441 xmlnode_insert_cdata(z, group_utf8, (unsigned) -1); |
446 g_free(group_utf8); |
442 g_free(group_utf8); |
447 } |
443 } |
448 |
444 |
|
445 jab_send(jc, x); |
|
446 xmlnode_free(x); |
|
447 |
|
448 x = jutil_presnew(JPACKET__SUBSCRIBE, cleanjid, NULL); |
449 jab_send(jc, x); |
449 jab_send(jc, x); |
450 xmlnode_free(x); |
450 xmlnode_free(x); |
451 |
451 |
452 roster_add_user(cleanjid, name, group, ROSTER_TYPE_USER, sub_pending); |
452 roster_add_user(cleanjid, name, group, ROSTER_TYPE_USER, sub_pending); |
453 g_free(cleanjid); |
453 g_free(cleanjid); |