equal
deleted
inserted
replaced
299 free(buffer); |
299 free(buffer); |
300 jb_reset_keepalive(); |
300 jb_reset_keepalive(); |
301 } |
301 } |
302 |
302 |
303 // Note: the caller should check the jid is correct |
303 // Note: the caller should check the jid is correct |
304 void jb_addbuddy(const char *jid, const char *group) |
304 void jb_addbuddy(const char *jid, const char *name, const char *group) |
305 { |
305 { |
306 xmlnode x, y, z; |
306 xmlnode x, y, z; |
307 char *cleanjid; |
307 char *cleanjid; |
308 |
308 |
309 if (!online) return; |
309 if (!online) return; |
318 |
318 |
319 x = jutil_iqnew(JPACKET__SET, NS_ROSTER); |
319 x = jutil_iqnew(JPACKET__SET, NS_ROSTER); |
320 y = xmlnode_get_tag(x, "query"); |
320 y = xmlnode_get_tag(x, "query"); |
321 z = xmlnode_insert_tag(y, "item"); |
321 z = xmlnode_insert_tag(y, "item"); |
322 xmlnode_put_attrib(z, "jid", jid); |
322 xmlnode_put_attrib(z, "jid", jid); |
|
323 |
|
324 if (name) { |
|
325 char *name_utf8 = utf8_encode(name); |
|
326 z = xmlnode_insert_tag(z, "name"); |
|
327 xmlnode_insert_cdata(z, name_utf8, (unsigned) -1); |
|
328 free(name_utf8); |
|
329 } |
323 |
330 |
324 if (group) { |
331 if (group) { |
325 char *group_utf8 = utf8_encode(group); |
332 char *group_utf8 = utf8_encode(group); |
326 z = xmlnode_insert_tag(z, "group"); |
333 z = xmlnode_insert_tag(z, "group"); |
327 xmlnode_insert_cdata(z, group_utf8, (unsigned) -1); |
334 xmlnode_insert_cdata(z, group_utf8, (unsigned) -1); |
330 |
337 |
331 jab_send(jc, x); |
338 jab_send(jc, x); |
332 xmlnode_free(x); |
339 xmlnode_free(x); |
333 |
340 |
334 cleanjid = jidtodisp(jid); |
341 cleanjid = jidtodisp(jid); |
335 roster_add_user(cleanjid, NULL, group, ROSTER_TYPE_USER); |
342 roster_add_user(cleanjid, name, group, ROSTER_TYPE_USER); |
336 g_free(cleanjid); |
343 g_free(cleanjid); |
337 buddylist_build(); |
344 buddylist_build(); |
338 |
345 |
339 // useless IMHO: if user appears his status will change |
346 update_roster = TRUE; |
340 //update_roster = TRUE; |
|
341 } |
347 } |
342 |
348 |
343 void jb_delbuddy(const char *jid) |
349 void jb_delbuddy(const char *jid) |
344 { |
350 { |
345 xmlnode x, y, z; |
351 xmlnode x, y, z; |