Mercurial > pidgin
diff src/protocols/irc/irc.c @ 9740:2bb5e2cd64bd
[gaim-migrate @ 10605]
" A few days back, someone on #gaim was wondering how to
block IM's from IRC, which isn't supported by gaim, as
this isn't supported at a protocol level. I decided to
implement gaim's privacy options (permit lists, deny
lists, block all users, and permit people on buddy
list) at a local level for IRC and
Zephyr. Jabber, SILC, and Trepia don't seem to support
deny or permit lists in Gaim, but I don't use the
latter two protocols and wasn't sure about how to
implemnt in in Jabber.
When implementing it, I noticed that changes in privacy
settings didn't automatically cause blist.xml to get
scheduled
for writing (even on exit). To fix this, I needed to
make schedule_blist_save in blist.c non-static and call
it from serv_set_permit_deny() in server.c, and
gaim_privacy_{permit,deny}_{add,remove} in privacy.c ." --Arun A Tharuvai
committer: Tailor Script <tailor@pidgin.im>
| author | Luke Schierer <lschiere@pidgin.im> |
|---|---|
| date | Wed, 11 Aug 2004 23:52:48 +0000 |
| parents | db62420a53a2 |
| children | b10d4c6ac7eb |
line wrap: on
line diff
--- a/src/protocols/irc/irc.c Wed Aug 11 18:05:10 2004 +0000 +++ b/src/protocols/irc/irc.c Wed Aug 11 23:52:48 2004 +0000 @@ -33,6 +33,7 @@ #include "prpl.h" #include "plugin.h" #include "util.h" +#include "privacy.h" #include "irc.h" @@ -331,6 +332,35 @@ irc_cmd_whois(irc, "whois", NULL, args); } +static void irc_add_deny(GaimConnection *gc, const char *who) +{ + gaim_privacy_deny_add(gc->account,who,1); +} + +static void irc_rem_deny(GaimConnection *gc, const char *who) +{ + gaim_privacy_deny_remove(gc->account,who,1); +} + +static void +irc_add_permit(GaimConnection *gc, const char *who) +{ + gaim_privacy_permit_add(gc->account,who,1); +} + +static void +irc_rem_permit(GaimConnection *gc, const char *who) +{ + gaim_privacy_permit_remove(gc->account,who,1); +} + +static void +irc_set_permit_deny(GaimConnection *gc) +{ + /* This only has to exist */ + return; +} + static void irc_set_away(GaimConnection *gc, const char *state, const char *msg) { struct irc_conn *irc = gc->proto_data; @@ -592,11 +622,11 @@ NULL, /* add_buddies */ irc_remove_buddy, /* remove_buddy */ NULL, /* remove_buddies */ - NULL, /* add_permit */ - NULL, /* add_deny */ - NULL, /* rem_permit */ - NULL, /* rem_deny */ - NULL, /* set_permit_deny */ + irc_add_permit, /* add_permit */ + irc_add_deny, /* add_deny */ + irc_rem_permit, /* rem_permit */ + irc_rem_deny, /* rem_deny */ + irc_set_permit_deny, /* set_permit_deny */ NULL, /* warn */ irc_chat_join, /* join_chat */ NULL, /* reject_chat */
