aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/msn/soap.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2010-11-20 11:31:39 +0000
committerWilmer van der Gaast <wilmer@gaast.net>2010-11-20 11:31:39 +0000
commit4eb75b261750c4ecba83946aae83c914db938c9d (patch)
tree9cd6ee17627ae58f515a14c710f99319da44f017 /protocols/msn/soap.c
parent10685d3b5ff450123b22b0a665ededbf35a18e89 (diff)
Sometimes for whatever reasons MSN adds all contacts to both the allow-
and the block list. Working around this.
Diffstat (limited to 'protocols/msn/soap.c')
-rw-r--r--protocols/msn/soap.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/protocols/msn/soap.c b/protocols/msn/soap.c
index 7024bbaa..026ac3b8 100644
--- a/protocols/msn/soap.c
+++ b/protocols/msn/soap.c
@@ -871,15 +871,30 @@ static const struct xt_handler_entry msn_soap_addressbook_parser[] = {
static int msn_soap_addressbook_handle_response( struct msn_soap_req_data *soap_req )
{
GSList *l;
+ int wtf = 0;
for( l = soap_req->ic->bee->users; l; l = l->next )
{
struct bee_user *bu = l->data;
+ struct msn_buddy_data *bd = bu->data;
if( bu->ic == soap_req->ic )
msn_buddy_ask( bu );
+
+ if( ( bd->flags & ( MSN_BUDDY_AL | MSN_BUDDY_BL ) ) ==
+ ( MSN_BUDDY_AL | MSN_BUDDY_BL ) )
+ {
+ bd->flags &= ~MSN_BUDDY_BL;
+ wtf++;
+ }
}
+ if( wtf )
+ imcb_log( soap_req->ic, "Warning: %d contacts were in both your "
+ "block and your allow list. Assuming they're all "
+ "allowed. Use the official WLM client once to fix "
+ "this.", wtf );
+
msn_auth_got_contact_list( soap_req->ic );
return MSN_SOAP_OK;