Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
| 6371 | 1 | /** |
| 15884 | 2 | * purple |
| 6371 | 3 | * |
| 15884 | 4 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 6 | * source distribution. | |
|
8007
511119d4c2cd
[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 | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16863
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 6371 | 21 | */ |
| 22 | #include "internal.h" | |
| 23 | ||
| 24 | #include "account.h" | |
| 25 | #include "privacy.h" | |
| 26 | #include "server.h" | |
| 27 | #include "util.h" | |
| 28 | ||
| 15884 | 29 | static PurplePrivacyUiOps *privacy_ops = NULL; |
| 6371 | 30 | |
| 31 | gboolean | |
| 15884 | 32 | purple_privacy_permit_add(PurpleAccount *account, const char *who, |
|
6378
233d1294508f
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
33 | gboolean local_only) |
| 6371 | 34 | { |
| 35 | GSList *l; | |
| 36 | char *name; | |
| 15884 | 37 | PurpleBuddy *buddy; |
| 6371 | 38 | |
| 39 | g_return_val_if_fail(account != NULL, FALSE); | |
| 40 | g_return_val_if_fail(who != NULL, FALSE); | |
| 41 | ||
| 15884 | 42 | name = g_strdup(purple_normalize(account, who)); |
| 6371 | 43 | |
| 44 | for (l = account->permit; l != NULL; l = l->next) { | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
45 | if (g_str_equal(name, l->data)) |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
46 | /* This buddy already exists */ |
| 6371 | 47 | break; |
| 48 | } | |
| 49 | ||
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14274
diff
changeset
|
50 | if (l != NULL) |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
51 | { |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
52 | /* This buddy already exists, so bail out */ |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
53 | g_free(name); |
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14274
diff
changeset
|
54 | return FALSE; |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
55 | } |
| 6371 | 56 | |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
57 | account->permit = g_slist_append(account->permit, name); |
| 6371 | 58 | |
| 15884 | 59 | if (!local_only && purple_account_is_connected(account)) |
| 60 | serv_add_permit(purple_account_get_connection(account), who); | |
|
6373
919566d5cc80
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
61 | |
| 6371 | 62 | if (privacy_ops != NULL && privacy_ops->permit_added != NULL) |
| 63 | privacy_ops->permit_added(account, who); | |
| 64 | ||
| 15884 | 65 | purple_blist_schedule_save(); |
|
10704
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
9741
diff
changeset
|
66 | |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
67 | /* This lets the UI know a buddy has had its privacy setting changed */ |
| 15884 | 68 | buddy = purple_find_buddy(account, name); |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
69 | if (buddy != NULL) { |
| 15884 | 70 | purple_signal_emit(purple_blist_get_handle(), |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
71 | "buddy-privacy-changed", buddy); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
72 | } |
| 6371 | 73 | return TRUE; |
| 74 | } | |
| 75 | ||
| 76 | gboolean | |
| 15884 | 77 | purple_privacy_permit_remove(PurpleAccount *account, const char *who, |
|
6378
233d1294508f
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
78 | gboolean local_only) |
| 6371 | 79 | { |
| 80 | GSList *l; | |
|
14274
bd4a14747e07
[gaim-migrate @ 16893]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
81 | const char *name; |
| 15884 | 82 | PurpleBuddy *buddy; |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
83 | char *del; |
| 6371 | 84 | |
| 85 | g_return_val_if_fail(account != NULL, FALSE); | |
| 86 | g_return_val_if_fail(who != NULL, FALSE); | |
| 87 | ||
| 15884 | 88 | name = purple_normalize(account, who); |
| 6371 | 89 | |
| 90 | for (l = account->permit; l != NULL; l = l->next) { | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
91 | if (g_str_equal(name, l->data)) |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
92 | /* We found the buddy we were looking for */ |
| 6371 | 93 | break; |
| 94 | } | |
| 95 | ||
| 96 | if (l == NULL) | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
97 | /* We didn't find the buddy we were looking for, so bail out */ |
| 6371 | 98 | return FALSE; |
| 99 | ||
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
100 | /* We should not free l->data just yet. There can be occasions where |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
101 | * l->data == who. In such cases, freeing l->data here can cause crashes |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
102 | * later when who is used. */ |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
103 | del = l->data; |
|
11719
2d62fa2e2d76
[gaim-migrate @ 14010]
Michael Carlson <corfe83@users.sourceforge.net>
parents:
11111
diff
changeset
|
104 | account->permit = g_slist_delete_link(account->permit, l); |
| 6371 | 105 | |
| 15884 | 106 | if (!local_only && purple_account_is_connected(account)) |
| 107 | serv_rem_permit(purple_account_get_connection(account), who); | |
|
6373
919566d5cc80
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
108 | |
| 6371 | 109 | if (privacy_ops != NULL && privacy_ops->permit_removed != NULL) |
| 110 | privacy_ops->permit_removed(account, who); | |
| 111 | ||
| 15884 | 112 | purple_blist_schedule_save(); |
|
10704
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
9741
diff
changeset
|
113 | |
| 15884 | 114 | buddy = purple_find_buddy(account, name); |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
115 | if (buddy != NULL) { |
| 15884 | 116 | purple_signal_emit(purple_blist_get_handle(), |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
117 | "buddy-privacy-changed", buddy); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
118 | } |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
119 | g_free(del); |
| 6371 | 120 | return TRUE; |
| 121 | } | |
| 122 | ||
| 123 | gboolean | |
| 15884 | 124 | purple_privacy_deny_add(PurpleAccount *account, const char *who, |
|
6378
233d1294508f
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
125 | gboolean local_only) |
| 6371 | 126 | { |
| 127 | GSList *l; | |
| 128 | char *name; | |
| 15884 | 129 | PurpleBuddy *buddy; |
| 6371 | 130 | |
| 131 | g_return_val_if_fail(account != NULL, FALSE); | |
| 132 | g_return_val_if_fail(who != NULL, FALSE); | |
| 133 | ||
| 15884 | 134 | name = g_strdup(purple_normalize(account, who)); |
| 6371 | 135 | |
| 136 | for (l = account->deny; l != NULL; l = l->next) { | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
137 | if (g_str_equal(name, l->data)) |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
138 | /* This buddy already exists */ |
| 6371 | 139 | break; |
| 140 | } | |
| 141 | ||
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
142 | if (l != NULL) |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
143 | { |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
144 | /* This buddy already exists, so bail out */ |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
145 | g_free(name); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
146 | return FALSE; |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
147 | } |
| 6371 | 148 | |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
149 | account->deny = g_slist_append(account->deny, name); |
| 6371 | 150 | |
| 15884 | 151 | if (!local_only && purple_account_is_connected(account)) |
| 152 | serv_add_deny(purple_account_get_connection(account), who); | |
|
6373
919566d5cc80
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
153 | |
| 6371 | 154 | if (privacy_ops != NULL && privacy_ops->deny_added != NULL) |
| 155 | privacy_ops->deny_added(account, who); | |
| 156 | ||
| 15884 | 157 | purple_blist_schedule_save(); |
|
10704
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
9741
diff
changeset
|
158 | |
| 15884 | 159 | buddy = purple_find_buddy(account, name); |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
160 | if (buddy != NULL) { |
| 15884 | 161 | purple_signal_emit(purple_blist_get_handle(), |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
162 | "buddy-privacy-changed", buddy); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
163 | } |
| 6371 | 164 | return TRUE; |
| 165 | } | |
| 166 | ||
| 167 | gboolean | |
| 15884 | 168 | purple_privacy_deny_remove(PurpleAccount *account, const char *who, |
|
6378
233d1294508f
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
169 | gboolean local_only) |
| 6371 | 170 | { |
| 171 | GSList *l; | |
|
14274
bd4a14747e07
[gaim-migrate @ 16893]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
172 | const char *normalized; |
| 6371 | 173 | char *name; |
| 15884 | 174 | PurpleBuddy *buddy; |
| 6371 | 175 | |
| 176 | g_return_val_if_fail(account != NULL, FALSE); | |
| 177 | g_return_val_if_fail(who != NULL, FALSE); | |
| 178 | ||
| 15884 | 179 | normalized = purple_normalize(account, who); |
| 6371 | 180 | |
| 181 | for (l = account->deny; l != NULL; l = l->next) { | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
182 | if (g_str_equal(normalized, l->data)) |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
183 | /* We found the buddy we were looking for */ |
| 6371 | 184 | break; |
| 185 | } | |
| 186 | ||
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
187 | if (l == NULL) |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
188 | /* We didn't find the buddy we were looking for, so bail out */ |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
189 | return FALSE; |
| 6371 | 190 | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
191 | buddy = purple_find_buddy(account, normalized); |
| 6371 | 192 | |
|
13150
325c25e2c31d
[gaim-migrate @ 15512]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11719
diff
changeset
|
193 | name = l->data; |
|
11719
2d62fa2e2d76
[gaim-migrate @ 14010]
Michael Carlson <corfe83@users.sourceforge.net>
parents:
11111
diff
changeset
|
194 | account->deny = g_slist_delete_link(account->deny, l); |
| 6371 | 195 | |
| 15884 | 196 | if (!local_only && purple_account_is_connected(account)) |
| 197 | serv_rem_deny(purple_account_get_connection(account), name); | |
|
6373
919566d5cc80
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
198 | |
| 6371 | 199 | if (privacy_ops != NULL && privacy_ops->deny_removed != NULL) |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
200 | privacy_ops->deny_removed(account, who); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
201 | |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
202 | if (buddy != NULL) { |
| 15884 | 203 | purple_signal_emit(purple_blist_get_handle(), |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
204 | "buddy-privacy-changed", buddy); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
205 | } |
| 6371 | 206 | |
|
13150
325c25e2c31d
[gaim-migrate @ 15512]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11719
diff
changeset
|
207 | g_free(name); |
| 15884 | 208 | purple_blist_schedule_save(); |
|
10704
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
9741
diff
changeset
|
209 | |
| 6371 | 210 | return TRUE; |
| 211 | } | |
| 212 | ||
|
22365
7be96d358b45
Update a comment. I think it was missing a word or three.
Mark Doliner <markdoliner@pidgin.im>
parents:
19859
diff
changeset
|
213 | /** |
|
7be96d358b45
Update a comment. I think it was missing a word or three.
Mark Doliner <markdoliner@pidgin.im>
parents:
19859
diff
changeset
|
214 | * This makes sure your permit list contains all buddies from your |
|
7be96d358b45
Update a comment. I think it was missing a word or three.
Mark Doliner <markdoliner@pidgin.im>
parents:
19859
diff
changeset
|
215 | * buddy list and ONLY buddies from your buddy list. |
|
7be96d358b45
Update a comment. I think it was missing a word or three.
Mark Doliner <markdoliner@pidgin.im>
parents:
19859
diff
changeset
|
216 | */ |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
217 | static void |
|
22374
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
218 | add_all_buddies_to_permit_list(PurpleAccount *account, gboolean local) |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
219 | { |
|
16863
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
220 | GSList *list; |
|
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
221 | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
222 | /* Remove anyone in the permit list who is not in the buddylist */ |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
223 | for (list = account->permit; list != NULL; ) { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
224 | char *person = list->data; |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
225 | list = list->next; |
| 15884 | 226 | if (!purple_find_buddy(account, person)) |
| 227 | purple_privacy_permit_remove(account, person, local); | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
228 | } |
|
16863
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
229 | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
230 | /* Now make sure everyone in the buddylist is in the permit list */ |
|
16863
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
231 | list = purple_find_buddies(account, NULL); |
|
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
232 | while (list != NULL) |
|
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
233 | { |
|
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
234 | PurpleBuddy *buddy = list->data; |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
23417
diff
changeset
|
235 | const gchar *name = purple_buddy_get_name(buddy); |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
23417
diff
changeset
|
236 | |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
23417
diff
changeset
|
237 | if (!g_slist_find_custom(account->permit, name, (GCompareFunc)g_utf8_collate)) |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
23417
diff
changeset
|
238 | purple_privacy_permit_add(account, name, local); |
|
16863
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
239 | list = g_slist_delete_link(list, list); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
240 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
241 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
242 | |
|
22374
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
243 | /* |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
244 | * TODO: All callers of this function pass in FALSE for local and |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
245 | * restore and I don't understand when you would ever want to |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
246 | * use TRUE for either of them. I think both parameters could |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
247 | * safely be removed in the next major version bump. |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
248 | */ |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
249 | void |
| 15884 | 250 | purple_privacy_allow(PurpleAccount *account, const char *who, gboolean local, |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
251 | gboolean restore) |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
252 | { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
253 | GSList *list; |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
254 | PurplePrivacyType type = account->perm_deny; |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
255 | |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
256 | switch (account->perm_deny) { |
| 15884 | 257 | case PURPLE_PRIVACY_ALLOW_ALL: |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
258 | return; |
| 15884 | 259 | case PURPLE_PRIVACY_ALLOW_USERS: |
| 260 | purple_privacy_permit_add(account, who, local); | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
261 | break; |
| 15884 | 262 | case PURPLE_PRIVACY_DENY_USERS: |
| 263 | purple_privacy_deny_remove(account, who, local); | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
264 | break; |
| 15884 | 265 | case PURPLE_PRIVACY_DENY_ALL: |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
266 | if (!restore) { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
267 | /* Empty the allow-list. */ |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
268 | const char *norm = purple_normalize(account, who); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
269 | for (list = account->permit; list != NULL;) { |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
270 | char *person = list->data; |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
271 | list = list->next; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
272 | if (!purple_strequal(norm, person)) |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
273 | purple_privacy_permit_remove(account, person, local); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
274 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
275 | } |
| 15884 | 276 | purple_privacy_permit_add(account, who, local); |
| 277 | account->perm_deny = PURPLE_PRIVACY_ALLOW_USERS; | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
278 | break; |
| 15884 | 279 | case PURPLE_PRIVACY_ALLOW_BUDDYLIST: |
| 280 | if (!purple_find_buddy(account, who)) { | |
|
22374
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
281 | add_all_buddies_to_permit_list(account, local); |
| 15884 | 282 | purple_privacy_permit_add(account, who, local); |
| 283 | account->perm_deny = PURPLE_PRIVACY_ALLOW_USERS; | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
284 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
285 | break; |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
286 | default: |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
287 | g_return_if_reached(); |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
288 | } |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
289 | |
|
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
290 | /* Notify the server if the privacy setting was changed */ |
|
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
291 | if (type != account->perm_deny && purple_account_is_connected(account)) |
|
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
292 | serv_set_permit_deny(purple_account_get_connection(account)); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
293 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
294 | |
|
22374
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
295 | /* |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
296 | * TODO: All callers of this function pass in FALSE for local and |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
297 | * restore and I don't understand when you would ever want to |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
298 | * use TRUE for either of them. I think both parameters could |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
299 | * safely be removed in the next major version bump. |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
300 | */ |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
301 | void |
| 15884 | 302 | purple_privacy_deny(PurpleAccount *account, const char *who, gboolean local, |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
303 | gboolean restore) |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
304 | { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
305 | GSList *list; |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
306 | PurplePrivacyType type = account->perm_deny; |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
307 | |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
308 | switch (account->perm_deny) { |
| 15884 | 309 | case PURPLE_PRIVACY_ALLOW_ALL: |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
310 | if (!restore) { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
311 | /* Empty the deny-list. */ |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
312 | const char *norm = purple_normalize(account, who); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
313 | for (list = account->deny; list != NULL; ) { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
314 | char *person = list->data; |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
315 | list = list->next; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
316 | if (!purple_strequal(norm, person)) |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
317 | purple_privacy_deny_remove(account, person, local); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
318 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
319 | } |
| 15884 | 320 | purple_privacy_deny_add(account, who, local); |
| 321 | account->perm_deny = PURPLE_PRIVACY_DENY_USERS; | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
322 | break; |
| 15884 | 323 | case PURPLE_PRIVACY_ALLOW_USERS: |
| 324 | purple_privacy_permit_remove(account, who, local); | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
325 | break; |
| 15884 | 326 | case PURPLE_PRIVACY_DENY_USERS: |
| 327 | purple_privacy_deny_add(account, who, local); | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
328 | break; |
| 15884 | 329 | case PURPLE_PRIVACY_DENY_ALL: |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
330 | break; |
| 15884 | 331 | case PURPLE_PRIVACY_ALLOW_BUDDYLIST: |
| 332 | if (purple_find_buddy(account, who)) { | |
|
22374
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
333 | add_all_buddies_to_permit_list(account, local); |
| 15884 | 334 | purple_privacy_permit_remove(account, who, local); |
| 335 | account->perm_deny = PURPLE_PRIVACY_ALLOW_USERS; | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
336 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
337 | break; |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
338 | default: |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
339 | g_return_if_reached(); |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
340 | } |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
341 | |
|
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
342 | /* Notify the server if the privacy setting was changed */ |
|
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
343 | if (type != account->perm_deny && purple_account_is_connected(account)) |
|
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
344 | serv_set_permit_deny(purple_account_get_connection(account)); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
345 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
346 | |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
347 | gboolean |
| 15884 | 348 | purple_privacy_check(PurpleAccount *account, const char *who) |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
349 | { |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
350 | GSList *list; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
351 | |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
352 | switch (account->perm_deny) { |
| 15884 | 353 | case PURPLE_PRIVACY_ALLOW_ALL: |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
354 | return TRUE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
355 | |
| 15884 | 356 | case PURPLE_PRIVACY_DENY_ALL: |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
357 | return FALSE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
358 | |
| 15884 | 359 | case PURPLE_PRIVACY_ALLOW_USERS: |
| 360 | who = purple_normalize(account, who); | |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
361 | for (list=account->permit; list!=NULL; list=list->next) { |
|
25582
997ba674e64b
Change two more uses of purple_utf8_strcasecmp to g_str_equal
Mark Doliner <markdoliner@pidgin.im>
parents:
25581
diff
changeset
|
362 | if (g_str_equal(who, list->data)) |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
363 | return TRUE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
364 | } |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
365 | return FALSE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
366 | |
| 15884 | 367 | case PURPLE_PRIVACY_DENY_USERS: |
| 368 | who = purple_normalize(account, who); | |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
369 | for (list=account->deny; list!=NULL; list=list->next) { |
|
25582
997ba674e64b
Change two more uses of purple_utf8_strcasecmp to g_str_equal
Mark Doliner <markdoliner@pidgin.im>
parents:
25581
diff
changeset
|
370 | if (g_str_equal(who, list->data)) |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
371 | return FALSE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
372 | } |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
373 | return TRUE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
374 | |
| 15884 | 375 | case PURPLE_PRIVACY_ALLOW_BUDDYLIST: |
| 376 | return (purple_find_buddy(account, who) != NULL); | |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
377 | |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
378 | default: |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
379 | g_return_val_if_reached(TRUE); |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
380 | } |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
381 | } |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
382 | |
| 6371 | 383 | void |
| 15884 | 384 | purple_privacy_set_ui_ops(PurplePrivacyUiOps *ops) |
| 6371 | 385 | { |
| 386 | privacy_ops = ops; | |
| 387 | } | |
| 388 | ||
| 15884 | 389 | PurplePrivacyUiOps * |
| 390 | purple_privacy_get_ui_ops(void) | |
| 6371 | 391 | { |
| 392 | return privacy_ops; | |
| 393 | } | |
| 394 | ||
| 395 | void | |
| 15884 | 396 | purple_privacy_init(void) |
| 6371 | 397 | { |
| 398 | } |