diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-11-20 11:31:39 +0000 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-11-20 11:31:39 +0000 |
commit | 4eb75b261750c4ecba83946aae83c914db938c9d (patch) | |
tree | 9cd6ee17627ae58f515a14c710f99319da44f017 /protocols | |
parent | 10685d3b5ff450123b22b0a665ededbf35a18e89 (diff) |
Sometimes for whatever reasons MSN adds all contacts to both the allow-
and the block list. Working around this.
Diffstat (limited to 'protocols')
-rw-r--r-- | protocols/msn/soap.c | 15 |
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; |