void linphone_core_add_friend(LinphoneCore *lc, LinphoneFriend *lf) { ms_return_if_fail(lf->lc==NULL); ms_return_if_fail(lf->uri!=NULL); if (ms_list_find(lc->friends,lf)!=NULL){ char *tmp=NULL; const LinphoneAddress *addr=linphone_friend_get_address(lf); if (addr) tmp=linphone_address_as_string(addr); ms_warning("Friend %s already in list, ignored.", tmp ? tmp : "unknown"); if (tmp) ms_free(tmp); return ; } lc->friends=ms_list_append(lc->friends,lf); lf->lc=lc; if ( linphone_core_ready(lc)) linphone_friend_apply(lf,lc); else lf->commit=TRUE; return ; }
void linphone_friend_done(LinphoneFriend *fr) { ms_return_if_fail(fr); if (!fr->lc || !fr->friend_list) return; linphone_friend_apply(fr, fr->lc); linphone_friend_save(fr, fr->lc); if (fr && fr->vcard) { if (linphone_vcard_compare_md5_hash(fr->vcard) != 0) { ms_debug("vCard's md5 has changed, mark friend as dirty"); fr->friend_list->dirty_friends_to_update = bctbx_list_append(fr->friend_list->dirty_friends_to_update, linphone_friend_ref(fr)); } } }
void linphone_friend_done(LinphoneFriend *fr){ ms_return_if_fail(fr!=NULL); if (fr->lc==NULL) return; linphone_friend_apply(fr,fr->lc); }