On Fri, 2008-09-05 at 10:46 -0700, chris wrote: > I'm trying to understand the meaning of the Privacy options dialog
Good luck with that :) > I assume each option is probably has slightly different meanings for > each protocol. Slightly different in some cases, and vastly different in others. It is a long standing item on the TODO list to improve the Privacy API & UI in Pidgin. Much of it still is very AIM-centric, due to the history of Pidgin. > 1. Allow all users to contact me > 2. Allow only the users on my buddy list > 3. Allow only the users below > 4. Block all users > 5. Block only the users below. > > I use the following protocols: AIM, ICQ, IRC, MSN, XMPP <snip> > So my questions are: Instead of answering your questions I will attempt to explain the current behavior of the protocols I know about, hopefully other developers more familiar with other protocols will chime in to fill this out. For protocols where the protocol implementation itself does not handle the privacy settings (eg. with server-side blocking), libpurple implements the behavior as described by the privacy settings, but only to the reception of IMs and chat invitations (online status is not blocked, and messages are not blocked). On AIM, the options behave as they are described, and I believe block both online status and messaging. This blocking is server-side. On ICQ, the privacy dialog should basically be ignored - we do not support ICQ's block lists. The "allow" and "block" lists in Pidgin are used for the visible/invisible ICQ lists, that control who can see your online status when you switch to Invisible. This is why it appears your options are reset when you sign on or switch between Invisible and other statuses. On IRC, there is no protocol implementation handling of privacy, so it falls back to libpurple as described above. On MSN, the protocol does not support all the functionality of all the options, only #3 and #5 are valid, but due to the way the block/allow lists are initially populated, #3 is analogous to #2 unless you have modified the allow list, and #5 is analogous to #1 unless you have denied a buddy's add request or modified the block list. On XMPP, I'm not sure exactly what we support, I suspect the little we support is only valid for Google Talk accounts using Google specific extensions to XMPP. On Yahoo, I think it's a mess. Looking at the code it seems 2-5 are all "equivalent", in that they add the list of blocked names to the server side block list (even if the selection is one where you can't manipulate the block list). In addition to this, the libpurple default privacy checks are called in several places. I hope I got the above correct, and I hope from that you can infer answers to at least some of your original questions. Regards, Stu. PS. Once all my glaring mistakes are pointed out and corrected by others, it would be nice to get this in the wiki somewhere to help out whoever is foolish enough to step forward and fix our Privacy API; or any other users lost in the current UI. _______________________________________________ Support mailing list [email protected] http://pidgin.im/cgi-bin/mailman/listinfo/support
