Mercurial > pidgin.yaz
annotate src/privacy.c @ 8146:596c64a2a2d0
[gaim-migrate @ 8854]
"
(16:36:05) Me: Hi Sean
(16:36:21) Me: Mind if I e-mail you a little COPYRIGHT related diff?
(16:37:17) Sean: Yes, I do!
(16:37:22) Sean: How dare you consider e-mailing me patches?
(16:37:26) Sean: seriously, now.
(16:37:32) Me:
(16:38:42) Me: Look at my webcam:
[URL to patch, now attached to this message]
(16:43:03) Sean: Have Luke commit it for me
(16:43:17) Sean: I won't be around until late tomorrow night.
(16:46:53) Me: ahh, k
It's a pretty straightforward deal - I think I mentioned this the other
day: .[c|h] files in src/ should have the generic copyright. Also,
giving Marc Mulcahy credit for the accessibility stuff.
Cheers,
John [Silvestri]"
except that i'd already given Marc credit
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Tue, 20 Jan 2004 02:51:14 +0000 |
parents | fa6395637e2c |
children | 20262ccefdd8 |
rev | line source |
---|---|
6371 | 1 /** |
2 * gaim | |
3 * | |
8046 | 4 * Gaim is the legal property of its developers, whose names are too numerous |
5 * to list here. Please refer to the COPYRIGHT file distributed with this | |
6 * source distribution. | |
8007
a13118091bc7
[gaim-migrate @ 8685]
Christian Hammond <chipx86@chipx86.com>
parents:
7581
diff
changeset
|
7 * |
6371 | 8 * This program is free software; you can redistribute it and/or modify |
9 * it under the terms of the GNU General Public License as published by | |
10 * the Free Software Foundation; either version 2 of the License, or | |
11 * (at your option) any later version. | |
12 * | |
13 * This program is distributed in the hope that it will be useful, | |
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 * GNU General Public License for more details. | |
17 * | |
18 * You should have received a copy of the GNU General Public License | |
19 * along with this program; if not, write to the Free Software | |
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
21 */ | |
22 #include "internal.h" | |
23 | |
24 #include "account.h" | |
6375
72023626d5b8
[gaim-migrate @ 6880]
Christian Hammond <chipx86@chipx86.com>
parents:
6373
diff
changeset
|
25 #include "debug.h" |
6371 | 26 #include "privacy.h" |
27 #include "server.h" | |
28 #include "util.h" | |
29 | |
30 static GaimPrivacyUiOps *privacy_ops = NULL; | |
31 | |
32 gboolean | |
6378
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
33 gaim_privacy_permit_add(GaimAccount *account, const char *who, |
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
34 gboolean local_only) |
6371 | 35 { |
36 GSList *l; | |
37 char *name; | |
38 | |
39 g_return_val_if_fail(account != NULL, FALSE); | |
40 g_return_val_if_fail(who != NULL, FALSE); | |
41 | |
7261 | 42 name = g_strdup(gaim_normalize(account, who)); |
6371 | 43 |
44 for (l = account->permit; l != NULL; l = l->next) { | |
7261 | 45 if (!gaim_utf8_strcasecmp(name, gaim_normalize(account, (char *)l->data))) |
6371 | 46 break; |
47 } | |
48 | |
49 g_free(name); | |
50 | |
51 if (l != NULL) | |
52 return FALSE; | |
53 | |
54 account->permit = g_slist_append(account->permit, g_strdup(who)); | |
55 | |
6378
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
56 if (!local_only && gaim_account_is_connected(account)) |
6373
4d61775a5741
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
57 serv_add_permit(gaim_account_get_connection(account), who); |
4d61775a5741
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
58 |
6371 | 59 gaim_blist_save(); |
60 | |
61 if (privacy_ops != NULL && privacy_ops->permit_added != NULL) | |
62 privacy_ops->permit_added(account, who); | |
63 | |
64 return TRUE; | |
65 } | |
66 | |
67 gboolean | |
6378
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
68 gaim_privacy_permit_remove(GaimAccount *account, const char *who, |
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
69 gboolean local_only) |
6371 | 70 { |
71 GSList *l; | |
72 char *name; | |
73 | |
74 g_return_val_if_fail(account != NULL, FALSE); | |
75 g_return_val_if_fail(who != NULL, FALSE); | |
76 | |
7261 | 77 name = g_strdup(gaim_normalize(account, who)); |
6371 | 78 |
79 for (l = account->permit; l != NULL; l = l->next) { | |
7261 | 80 if (!gaim_utf8_strcasecmp(name, gaim_normalize(account, (char *)l->data))) |
6371 | 81 break; |
82 } | |
83 | |
84 g_free(name); | |
85 | |
86 if (l == NULL) | |
87 return FALSE; | |
88 | |
89 account->permit = g_slist_remove(account->permit, l->data); | |
90 g_free(l->data); | |
91 | |
6378
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
92 if (!local_only && gaim_account_is_connected(account)) |
7581 | 93 serv_rem_permit(gaim_account_get_connection(account), who); |
6373
4d61775a5741
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
94 |
6371 | 95 gaim_blist_save(); |
96 | |
97 if (privacy_ops != NULL && privacy_ops->permit_removed != NULL) | |
98 privacy_ops->permit_removed(account, who); | |
99 | |
100 return TRUE; | |
101 } | |
102 | |
103 gboolean | |
6378
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
104 gaim_privacy_deny_add(GaimAccount *account, const char *who, |
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
105 gboolean local_only) |
6371 | 106 { |
107 GSList *l; | |
108 char *name; | |
109 | |
110 g_return_val_if_fail(account != NULL, FALSE); | |
111 g_return_val_if_fail(who != NULL, FALSE); | |
112 | |
7261 | 113 name = g_strdup(gaim_normalize(account, who)); |
6371 | 114 |
115 for (l = account->deny; l != NULL; l = l->next) { | |
7261 | 116 if (!gaim_utf8_strcasecmp(name, gaim_normalize(account, (char *)l->data))) |
6371 | 117 break; |
118 } | |
119 | |
120 g_free(name); | |
121 | |
122 if (l != NULL) | |
123 return FALSE; | |
124 | |
125 account->deny = g_slist_append(account->deny, g_strdup(who)); | |
126 | |
6378
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
127 if (!local_only && gaim_account_is_connected(account)) |
6373
4d61775a5741
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
128 serv_add_deny(gaim_account_get_connection(account), who); |
4d61775a5741
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
129 |
6371 | 130 gaim_blist_save(); |
131 | |
132 if (privacy_ops != NULL && privacy_ops->deny_added != NULL) | |
133 privacy_ops->deny_added(account, who); | |
134 | |
135 return TRUE; | |
136 } | |
137 | |
138 gboolean | |
6378
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
139 gaim_privacy_deny_remove(GaimAccount *account, const char *who, |
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
140 gboolean local_only) |
6371 | 141 { |
142 GSList *l; | |
143 char *name; | |
144 | |
145 g_return_val_if_fail(account != NULL, FALSE); | |
146 g_return_val_if_fail(who != NULL, FALSE); | |
147 | |
7261 | 148 name = g_strdup(gaim_normalize(account, who)); |
6371 | 149 |
150 for (l = account->deny; l != NULL; l = l->next) { | |
7261 | 151 if (!gaim_utf8_strcasecmp(name, gaim_normalize(account, (char *)l->data))) |
6371 | 152 break; |
153 } | |
154 | |
155 g_free(name); | |
156 | |
157 if (l == NULL) | |
158 return FALSE; | |
159 | |
160 account->deny = g_slist_remove(account->deny, l->data); | |
161 g_free(l->data); | |
162 | |
6378
01289157fc37
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
163 if (!local_only && gaim_account_is_connected(account)) { |
6375
72023626d5b8
[gaim-migrate @ 6880]
Christian Hammond <chipx86@chipx86.com>
parents:
6373
diff
changeset
|
164 gaim_debug(GAIM_DEBUG_INFO, "privacy", |
72023626d5b8
[gaim-migrate @ 6880]
Christian Hammond <chipx86@chipx86.com>
parents:
6373
diff
changeset
|
165 "Removing %s from server-side deny list\n", who); |
6373
4d61775a5741
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
166 serv_rem_deny(gaim_account_get_connection(account), who); |
6375
72023626d5b8
[gaim-migrate @ 6880]
Christian Hammond <chipx86@chipx86.com>
parents:
6373
diff
changeset
|
167 } |
6373
4d61775a5741
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
168 |
6371 | 169 gaim_blist_save(); |
170 | |
171 if (privacy_ops != NULL && privacy_ops->deny_removed != NULL) | |
172 privacy_ops->deny_removed(account, who); | |
173 | |
174 return TRUE; | |
175 } | |
176 | |
177 void | |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6378
diff
changeset
|
178 gaim_privacy_set_ui_ops(GaimPrivacyUiOps *ops) |
6371 | 179 { |
180 privacy_ops = ops; | |
181 } | |
182 | |
183 GaimPrivacyUiOps * | |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6378
diff
changeset
|
184 gaim_privacy_get_ui_ops(void) |
6371 | 185 { |
186 return privacy_ops; | |
187 } | |
188 | |
189 void | |
190 gaim_privacy_init(void) | |
191 { | |
192 } |