Mercurial > pidgin
comparison libpurple/protocols/msn/msn.c @ 20486:ff4ae9dde291
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
author | Carlos Silva <typ0@pidgin.im> |
---|---|
date | Mon, 03 Sep 2007 05:47:52 +0000 |
parents | 98613886411a |
children | 64c322c3b1b0 |
comparison
equal
deleted
inserted
replaced
20485:87eea1c5be97 | 20486:ff4ae9dde291 |
---|---|
1160 | 1160 |
1161 session = gc->proto_data; | 1161 session = gc->proto_data; |
1162 userlist = session->userlist; | 1162 userlist = session->userlist; |
1163 user = msn_userlist_find_user(userlist, who); | 1163 user = msn_userlist_find_user(userlist, who); |
1164 | 1164 |
1165 purple_debug_info("MSN", "msn_add_permit()\n"); | |
1166 | |
1165 if (!session->logged_in) | 1167 if (!session->logged_in) |
1166 return; | 1168 return; |
1167 | 1169 |
1168 if (user != NULL && user->list_op & MSN_LIST_BL_OP) | 1170 if (user != NULL && user->list_op & MSN_LIST_BL_OP) { |
1169 msn_userlist_rem_buddy_from_list(userlist, who, MSN_LIST_BL); | 1171 msn_userlist_rem_buddy_from_list(userlist, who, MSN_LIST_BL); |
1172 | |
1173 /* delete contact from Block list and add it to Allow in the callback */ | |
1174 msn_del_contact_from_list(session->contact, NULL, who, MSN_LIST_BL); | |
1175 } else { | |
1176 /* just add the contact to Allow list */ | |
1177 msn_add_contact_to_list(session->contact, NULL, who, MSN_LIST_AL); | |
1178 } | |
1179 | |
1170 | 1180 |
1171 msn_userlist_add_buddy_to_list(userlist, who, MSN_LIST_AL); | 1181 msn_userlist_add_buddy_to_list(userlist, who, MSN_LIST_AL); |
1172 } | 1182 } |
1173 | 1183 |
1174 static void | 1184 static void |
1180 | 1190 |
1181 session = gc->proto_data; | 1191 session = gc->proto_data; |
1182 userlist = session->userlist; | 1192 userlist = session->userlist; |
1183 user = msn_userlist_find_user(userlist, who); | 1193 user = msn_userlist_find_user(userlist, who); |
1184 | 1194 |
1195 purple_debug_info("MSN", "msn_add_deny()\n"); | |
1196 | |
1185 if (!session->logged_in) | 1197 if (!session->logged_in) |
1186 return; | 1198 return; |
1187 | 1199 |
1188 if (user != NULL && user->list_op & MSN_LIST_AL_OP) | 1200 if (user != NULL && user->list_op & MSN_LIST_AL_OP) { |
1189 msn_userlist_rem_buddy_from_list(userlist, who, MSN_LIST_AL); | 1201 msn_userlist_rem_buddy_from_list(userlist, who, MSN_LIST_AL); |
1202 | |
1203 /* delete contact from Allow list and add it to Block in the callback */ | |
1204 msn_del_contact_from_list(session->contact, NULL, who, MSN_LIST_AL); | |
1205 } else { | |
1206 /* just add the contact to Block list */ | |
1207 msn_add_contact_to_list(session->contact, NULL, who, MSN_LIST_BL); | |
1208 } | |
1190 | 1209 |
1191 msn_userlist_add_buddy_to_list(userlist, who, MSN_LIST_BL); | 1210 msn_userlist_add_buddy_to_list(userlist, who, MSN_LIST_BL); |
1192 } | 1211 } |
1193 | 1212 |
1194 static void | 1213 static void |
1199 MsnUser *user; | 1218 MsnUser *user; |
1200 | 1219 |
1201 session = gc->proto_data; | 1220 session = gc->proto_data; |
1202 userlist = session->userlist; | 1221 userlist = session->userlist; |
1203 | 1222 |
1223 purple_debug_info("MSN", "msn_rem_permit()\n"); | |
1224 | |
1204 if (!session->logged_in) | 1225 if (!session->logged_in) |
1205 return; | 1226 return; |
1206 | 1227 |
1207 user = msn_userlist_find_user(userlist, who); | 1228 user = msn_userlist_find_user(userlist, who); |
1208 | 1229 |
1209 msn_userlist_rem_buddy_from_list(userlist, who, MSN_LIST_AL); | 1230 msn_userlist_rem_buddy_from_list(userlist, who, MSN_LIST_AL); |
1210 | 1231 |
1232 msn_del_contact_from_list(session->contact, NULL, who, MSN_LIST_AL); | |
1233 | |
1211 if (user != NULL && user->list_op & MSN_LIST_RL_OP) | 1234 if (user != NULL && user->list_op & MSN_LIST_RL_OP) |
1212 msn_userlist_add_buddy_to_list(userlist, who, MSN_LIST_BL); | 1235 msn_userlist_add_buddy_to_list(userlist, who, MSN_LIST_BL); |
1213 } | 1236 } |
1214 | 1237 |
1215 static void | 1238 static void |
1220 MsnUser *user; | 1243 MsnUser *user; |
1221 | 1244 |
1222 session = gc->proto_data; | 1245 session = gc->proto_data; |
1223 userlist = session->userlist; | 1246 userlist = session->userlist; |
1224 | 1247 |
1248 purple_debug_info("MSN", "msn_rem_deny()\n"); | |
1249 | |
1225 if (!session->logged_in) | 1250 if (!session->logged_in) |
1226 return; | 1251 return; |
1227 | 1252 |
1228 user = msn_userlist_find_user(userlist, who); | 1253 user = msn_userlist_find_user(userlist, who); |
1229 | 1254 |
1230 msn_userlist_rem_buddy_from_list(userlist, who, MSN_LIST_BL); | 1255 msn_userlist_rem_buddy_from_list(userlist, who, MSN_LIST_BL); |
1256 | |
1257 msn_del_contact_from_list(session->contact, NULL, who, MSN_LIST_BL); | |
1231 | 1258 |
1232 if (user != NULL && user->list_op & MSN_LIST_RL_OP) | 1259 if (user != NULL && user->list_op & MSN_LIST_RL_OP) |
1233 msn_userlist_add_buddy_to_list(userlist, who, MSN_LIST_AL); | 1260 msn_userlist_add_buddy_to_list(userlist, who, MSN_LIST_AL); |
1234 } | 1261 } |
1235 | 1262 |