Mercurial > pidgin
diff src/protocols/msn/user.c @ 19785:852b32710df0
[gaim-migrate @ 16507]
add the contact list retrieve and dump contact list to server
currently can do chanllenge successfully
But can't get the buddy list done
by MaYuan<mayuan2006@gmail.com>
committer: Ethan Blanton <elb@pidgin.im>
| author | Ma Yuan <mayuan2006@gmail.com> |
|---|---|
| date | Mon, 17 Jul 2006 12:22:37 +0000 |
| parents | 967ef719cb62 |
| children | b99512bd6d85 |
line wrap: on
line diff
--- a/src/protocols/msn/user.c Sun Jul 09 16:48:25 2006 +0000 +++ b/src/protocols/msn/user.c Mon Jul 17 12:22:37 2006 +0000 @@ -25,6 +25,7 @@ #include "user.h" #include "slp.h" +/*new a user object*/ MsnUser * msn_user_new(MsnUserList *userlist, const char *passport, const char *store_name) @@ -50,6 +51,7 @@ return user; } +/*destroy a user object*/ void msn_user_destroy(MsnUser *user) { @@ -67,6 +69,7 @@ g_free(user->passport); g_free(user->friendly_name); g_free(user->store_name); + g_free(user->uid); g_free(user->phone.home); g_free(user->phone.work); g_free(user->phone.mobile); @@ -144,6 +147,23 @@ } void +msn_user_set_uid(MsnUser *user, const char *uid) +{ + g_return_if_fail(user != NULL); + + g_free(user->uid); + user->uid = g_strdup(uid); +} + +void +msn_user_set_type(MsnUser *user,int type) +{ + g_return_if_fail(user != NULL); + + user->type = type; +} + +void msn_user_set_buddy_icon(MsnUser *user, const char *filename) { struct stat st; @@ -152,20 +172,16 @@ g_return_if_fail(user != NULL); - if (filename == NULL || g_stat(filename, &st) == -1) - { + if (filename == NULL || g_stat(filename, &st) == -1){ msn_user_set_object(user, NULL); - } - else if ((fp = g_fopen(filename, "rb")) != NULL) - { + }else if ((fp = g_fopen(filename, "rb")) != NULL){ GaimCipherContext *ctx; char *buf; gsize len; char *base64; unsigned char digest[20]; - if (msnobj == NULL) - { + if (msnobj == NULL) { msnobj = msn_object_new(); msn_object_set_local(msnobj); msn_object_set_type(msnobj, MSN_OBJECT_USERTILE); @@ -217,16 +233,15 @@ base64 = gaim_base64_encode(digest, sizeof(digest)); msn_object_set_sha1c(msnobj, base64); g_free(base64); - } - else - { + }else{ gaim_debug_error("msn", "Unable to open buddy icon %s!\n", filename); msn_user_set_object(user, NULL); } } +/*add group id to User object*/ void -msn_user_add_group_id(MsnUser *user, int id) +msn_user_add_group_id(MsnUser *user, const char* id) { MsnUserList *userlist; GaimAccount *account; @@ -236,9 +251,9 @@ const char *group_name; g_return_if_fail(user != NULL); - g_return_if_fail(id >= 0); + g_return_if_fail(id != NULL); - user->group_ids = g_list_append(user->group_ids, GINT_TO_POINTER(id)); + user->group_ids = g_list_append(user->group_ids,id); userlist = user->userlist; account = userlist->session->account; @@ -248,16 +263,14 @@ g = gaim_find_group(group_name); - if ((id == 0) && (g == NULL)) - { + if ((id == 0) && (g == NULL)){ g = gaim_group_new(group_name); gaim_blist_add_group(g, NULL); } b = gaim_find_buddy_in_group(account, passport, g); - if (b == NULL) - { + if (b == NULL){ b = gaim_buddy_new(account, passport, NULL); gaim_blist_add_buddy(b, NULL, g, NULL); @@ -267,12 +280,12 @@ } void -msn_user_remove_group_id(MsnUser *user, int id) +msn_user_remove_group_id(MsnUser *user, const char * id) { g_return_if_fail(user != NULL); - g_return_if_fail(id >= 0); + g_return_if_fail(id != NULL); - user->group_ids = g_list_remove(user->group_ids, GINT_TO_POINTER(id)); + user->group_ids = g_list_remove(user->group_ids, id); } void
