# HG changeset patch # User Mark Doliner # Date 1201834431 0 # Node ID 31863f2d7c3cb29b18f8a8c80d0dcd88c61a9a5e # Parent b4612f57003bfc9415093e55afad267554fffb0b Our Yahoo! protocol has this crappy implementation where it tries to do something clever with the permit/deny setting. Here's how it works: * Yahoo! has only a "deny" list * libpurple keeps a copy of this "deny" list * If you change your permdeny setting to "allow all" or "permit only these users" then the Yahoo! PRPL unblocks everyone on your deny list * If you change your permdeny setting to "allow people in my buddylist" or "block this people below" then the Yahoo! PRPL re-blocks the people in your deny list. This commit changes that behavior slightly. If you set your permdeny setting to "permit only these users" or "block everyone" then the Yahoo! PRPL will now re-block the people in your deny list. diff -r b4612f57003b -r 31863f2d7c3c libpurple/protocols/yahoo/yahoo.c --- a/libpurple/protocols/yahoo/yahoo.c Fri Feb 01 02:41:35 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Fri Feb 01 02:53:51 2008 +0000 @@ -3950,20 +3950,17 @@ switch (account->perm_deny) { case PURPLE_PRIVACY_ALLOW_ALL: - case PURPLE_PRIVACY_ALLOW_USERS: for (deny = account->deny; deny; deny = deny->next) yahoo_rem_deny(gc, deny->data); break; case PURPLE_PRIVACY_ALLOW_BUDDYLIST: + case PURPLE_PRIVACY_ALLOW_USERS: case PURPLE_PRIVACY_DENY_USERS: + case PURPLE_PRIVACY_DENY_ALL: for (deny = account->deny; deny; deny = deny->next) yahoo_add_deny(gc, deny->data); break; - - case PURPLE_PRIVACY_DENY_ALL: - default: - break; } }