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