libpurple/protocols/msn/userlist.c

changeset 20733
a179242f6bef
parent 20646
69768ff2194a
child 20748
99e23c8bc2b1
equal deleted inserted replaced
20732:88206d073461 20733:a179242f6bef
39 **************************************************************************/ 39 **************************************************************************/
40 static void 40 static void
41 msn_accept_add_cb(gpointer data) 41 msn_accept_add_cb(gpointer data)
42 { 42 {
43 MsnPermitAdd *pa = data; 43 MsnPermitAdd *pa = data;
44 MsnSession *session = pa->gc->proto_data; 44
45 MsnUserList *userlist = session->userlist;
46 MsnUser *user = msn_userlist_find_add_user(userlist, pa->who, pa->who);
47
48 purple_debug_misc("MSN Userlist", "Accepted the new buddy: %s\n", pa->who); 45 purple_debug_misc("MSN Userlist", "Accepted the new buddy: %s\n", pa->who);
49 46
50 msn_userlist_add_buddy_to_list(userlist, pa->who, MSN_LIST_AL); 47 if (PURPLE_CONNECTION_IS_VALID(pa->gc))
51 48 {
52 if (msn_userlist_user_is_in_list(user, MSN_LIST_FL)) { 49 MsnSession *session = pa->gc->proto_data;
53 msn_del_contact_from_list(session->contact, NULL, pa->who, MSN_LIST_PL); 50 MsnUserList *userlist = session->userlist;
51 MsnUser *user = msn_userlist_find_add_user(userlist, pa->who, pa->who);
52
53
54 msn_userlist_add_buddy_to_list(userlist, pa->who, MSN_LIST_AL);
55
56 if (msn_userlist_user_is_in_list(user, MSN_LIST_FL))
57 msn_del_contact_from_list(session->contact, NULL, pa->who, MSN_LIST_PL);
54 } 58 }
55 59
56 g_free(pa->who); 60 g_free(pa->who);
57 g_free(pa->friendly); 61 g_free(pa->friendly);
58 g_free(pa); 62 g_free(pa);
61 static void 65 static void
62 msn_cancel_add_cb(gpointer data) 66 msn_cancel_add_cb(gpointer data)
63 { 67 {
64 MsnPermitAdd *pa = data; 68 MsnPermitAdd *pa = data;
65 69
66 purple_debug_misc("MSN Userlist", "Deniedthe new buddy: %s\n", pa->who); 70 purple_debug_misc("MSN Userlist", "Denied the new buddy: %s\n", pa->who);
67 71
68 if (g_list_find(purple_connections_get_all(), pa->gc) != NULL) 72 if (PURPLE_CONNECTION_IS_VALID(pa->gc))
69 { 73 {
70 MsnSession *session = pa->gc->proto_data; 74 MsnSession *session = pa->gc->proto_data;
71 MsnUserList *userlist = session->userlist; 75 MsnUserList *userlist = session->userlist;
72 MsnCallbackState *state = msn_callback_state_new(); 76 MsnCallbackState *state = msn_callback_state_new();
73 77
74 msn_callback_state_set_action(state, MSN_DENIED_BUDDY); 78 msn_callback_state_set_action(state, MSN_DENIED_BUDDY);
75 79
76 msn_userlist_add_buddy_to_list(userlist, pa->who, MSN_LIST_BL); 80 msn_userlist_add_buddy_to_list(userlist, pa->who, MSN_LIST_BL);
77 msn_del_contact_from_list(session->contact, state, pa->who, MSN_LIST_PL); 81 msn_del_contact_from_list(session->contact, state, pa->who, MSN_LIST_PL);
78 } 82 }
83 } 87 }
84 88
85 static void 89 static void
86 got_new_entry(PurpleConnection *gc, const char *passport, const char *friendly) 90 got_new_entry(PurpleConnection *gc, const char *passport, const char *friendly)
87 { 91 {
92 PurpleAccount *acct;
88 MsnPermitAdd *pa; 93 MsnPermitAdd *pa;
89 94
90 pa = g_new0(MsnPermitAdd, 1); 95 pa = g_new0(MsnPermitAdd, 1);
91 pa->who = g_strdup(passport); 96 pa->who = g_strdup(passport);
92 pa->friendly = g_strdup(friendly); 97 pa->friendly = g_strdup(friendly);
93 pa->gc = gc; 98 pa->gc = gc;
94 99
95 purple_account_request_authorization(purple_connection_get_account(gc), passport, NULL, friendly, NULL, 100 acct = purple_connection_get_account(gc);
96 purple_find_buddy(purple_connection_get_account(gc), passport) != NULL, 101 purple_account_request_authorization(acct, passport, NULL, friendly, NULL,
97 msn_accept_add_cb, msn_cancel_add_cb, pa); 102 purple_find_buddy(acct, passport) != NULL,
103 msn_accept_add_cb, msn_cancel_add_cb, pa);
98 104
99 } 105 }
100 106
101 /************************************************************************** 107 /**************************************************************************
102 * Utility functions 108 * Utility functions

mercurial