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 */