Mercurial > pidgin
annotate src/server.c @ 1006:0a4d0ed65e17
[gaim-migrate @ 1016]
wow, configurable sounds. this should be neat. too bad the UI isn't done yet. but at least you can have them configured. oh yeah, this means we don't need gaim.soundlist anymore, since i removed the option to go through gnome for sounds. (there were only two advantages to having them go through gnome, and making them configurable was the primary one). anyway, i also changed some of the installation script stuff so that now everything (including the panel) should go through the $(whateverdir) makefile variables, so it should be easier to make packages in chrooted environments
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Thu, 19 Oct 2000 10:42:46 +0000 |
| parents | 1d8f05ea6bdf |
| children | 966845e5ad29 |
| rev | line source |
|---|---|
| 1 | 1 /* |
| 2 * gaim | |
| 3 * | |
| 4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 5 * | |
| 6 * This program is free software; you can redistribute it and/or modify | |
| 7 * it under the terms of the GNU General Public License as published by | |
| 8 * the Free Software Foundation; either version 2 of the License, or | |
| 9 * (at your option) any later version. | |
| 10 * | |
| 11 * This program is distributed in the hope that it will be useful, | |
| 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 * GNU General Public License for more details. | |
| 15 * | |
| 16 * You should have received a copy of the GNU General Public License | |
| 17 * along with this program; if not, write to the Free Software | |
| 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 19 * | |
| 20 */ | |
| 21 | |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
22 #ifdef HAVE_CONFIG_H |
|
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
23 #include "../config.h" |
|
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
24 #endif |
| 1 | 25 #include <time.h> |
| 26 #include <stdio.h> | |
| 27 #include <string.h> | |
| 28 #include <sys/types.h> | |
| 29 #include <sys/stat.h> | |
| 30 #include <sys/time.h> | |
| 31 #include <unistd.h> | |
| 32 #include <gtk/gtk.h> | |
|
338
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
335
diff
changeset
|
33 #include <aim.h> |
|
276
9e6fc62490cd
[gaim-migrate @ 286]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
273
diff
changeset
|
34 extern int gaim_caps; |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
35 #include "prpl.h" |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
36 #include "multi.h" |
| 1 | 37 #include "gaim.h" |
| 38 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
39 #include "pixmaps/ok.xpm" |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
40 #include "pixmaps/cancel.xpm" |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
41 |
| 1 | 42 int correction_time = 0; |
| 43 | |
|
980
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
978
diff
changeset
|
44 void serv_login(struct aim_user *user) |
| 1 | 45 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
46 struct prpl *p = find_prpl(user->protocol); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
47 if (p && p->login) { |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
48 debug_printf("Logging in using %s\n", (*p->name)()); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
49 (*p->login)(user); |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
50 } |
| 1 | 51 } |
| 52 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
53 void serv_close(struct gaim_connection *gc) |
| 1 | 54 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
55 if (gc->prpl && gc->prpl->close) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
56 (*gc->prpl->close)(gc); |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
57 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
58 account_offline(gc); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
59 destroy_gaim_conn(gc); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
60 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
61 if (connections) return; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
62 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
63 if (gc->idle_timer > 0) |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
64 gtk_timeout_remove(gc->idle_timer); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
65 gc->idle_timer = -1; |
| 1 | 66 } |
| 67 | |
| 68 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
69 void serv_touch_idle(struct gaim_connection *gc) |
| 1 | 70 { |
| 71 /* Are we idle? If so, not anymore */ | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
72 if (gc->is_idle > 0) { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
73 gc->is_idle = 0; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
74 serv_set_idle(gc, 0); |
| 1 | 75 } |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
76 time(&gc->lastsent); |
| 1 | 77 } |
| 78 | |
| 79 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
80 static gint check_idle(struct gaim_connection *gc) |
| 1 | 81 { |
| 82 time_t t; | |
| 83 | |
| 84 /* Not idle, really... :) */ | |
| 85 update_all_buddies(); | |
| 86 | |
|
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
87 plugin_event(event_blist_update, 0, 0, 0, 0); |
|
834
bac7089491c1
[gaim-migrate @ 844]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
831
diff
changeset
|
88 |
| 1 | 89 time(&t); |
| 90 | |
| 91 if (report_idle != IDLE_GAIM) | |
| 92 return TRUE; | |
| 93 | |
| 94 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
95 if (gc->is_idle) |
| 1 | 96 return TRUE; |
| 97 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
98 if ((t - gc->lastsent) > 600) { /* 15 minutes! */ |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
99 serv_set_idle(gc, (int)t - gc->lastsent); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
100 gc->is_idle = 1; |
| 1 | 101 } |
| 102 | |
| 103 return TRUE; | |
| 104 | |
| 105 } | |
| 106 | |
| 107 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
108 void serv_finish_login(struct gaim_connection *gc) |
| 1 | 109 { |
| 110 char *buf; | |
| 111 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
112 if (strlen(gc->user_info)) { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
113 buf = g_malloc(strlen(gc->user_info) * 4); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
114 strcpy(buf, gc->user_info); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
115 serv_set_info(gc, buf); |
| 1 | 116 g_free(buf); |
| 117 } | |
| 118 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
119 if (gc->idle_timer > 0) |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
120 gtk_timeout_remove(gc->idle_timer); |
| 1 | 121 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
122 gc->idle_timer = gtk_timeout_add(20000, (GtkFunction)check_idle, gc); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
123 serv_touch_idle(gc); |
| 1 | 124 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
125 time(&gc->login_time); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
126 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
127 serv_add_buddy(gc->username); |
| 1 | 128 } |
| 129 | |
| 130 | |
| 131 | |
|
980
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
978
diff
changeset
|
132 void serv_send_im(struct gaim_connection *gc, char *name, char *message, int away) |
| 1 | 133 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
134 if (gc->prpl && gc->prpl->send_im) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
135 (*gc->prpl->send_im)(gc, name, message, away); |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
136 |
| 1 | 137 if (!away) |
|
980
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
978
diff
changeset
|
138 serv_touch_idle(gc); |
| 1 | 139 } |
| 140 | |
| 141 void serv_get_info(char *name) | |
| 142 { | |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
143 /* FIXME: getting someone's info? how do you decide something like that? I think that |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
144 * the buddy list/UI needs to be really changed before this gets fixed*/ |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
145 struct gaim_connection *g = connections->data; |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
146 |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
147 if (g && g->prpl && g->prpl->get_info) |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
148 (*g->prpl->get_info)(g, name); |
|
249
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
149 } |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
150 |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
151 void serv_get_away_msg(char *name) |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
152 { |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
153 /* FIXME: see the serv_get_info comment above :-P */ |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
154 struct gaim_connection *g = connections->data; |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
155 |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
156 if (g && g->prpl && g->prpl->get_info) |
|
990
d2d6be9c85fe
[gaim-migrate @ 1000]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
986
diff
changeset
|
157 (*g->prpl->get_away_msg)(g, name); |
| 1 | 158 } |
| 159 | |
| 160 void serv_get_dir(char *name) | |
| 161 { | |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
162 /* FIXME: see the serv_get_info comment above :-P */ |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
163 struct gaim_connection *g = connections->data; |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
164 |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
165 if (g && g->prpl && g->prpl->get_dir) |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
166 (*g->prpl->get_dir)(g, name); |
| 1 | 167 } |
| 168 | |
| 169 void serv_set_dir(char *first, char *middle, char *last, char *maiden, | |
| 170 char *city, char *state, char *country, int web) | |
| 171 { | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
172 /* FIXME */ |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
173 struct gaim_connection *g = connections->data; |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
174 |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
175 if (g && g->prpl && g->prpl->set_dir) |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
176 (*g->prpl->set_dir)(g, first, middle, last, maiden, city, state, country, web); |
| 1 | 177 } |
| 178 | |
| 179 void serv_dir_search(char *first, char *middle, char *last, char *maiden, | |
| 180 char *city, char *state, char *country, char *email) | |
| 181 { | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
182 /* FIXME */ |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
183 struct gaim_connection *g = connections->data; |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
184 |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
185 if (g && g->prpl && g->prpl->dir_search) |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
186 (*g->prpl->dir_search)(g, first, middle, last, maiden, city, state, country, email); |
| 1 | 187 } |
| 188 | |
| 189 | |
| 190 void serv_set_away(char *message) | |
| 191 { | |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
192 GSList *c = connections; |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
193 struct gaim_connection *g; |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
194 |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
195 while (c) { |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
196 g = (struct gaim_connection *)c->data; |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
197 if (g->prpl && g->prpl->set_away) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
198 (*g->prpl->set_away)(g, message); |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
199 c = c->next; |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
200 } |
| 1 | 201 } |
| 202 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
203 void serv_set_info(struct gaim_connection *g, char *info) |
| 1 | 204 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
205 if (g->prpl && g->prpl->set_info) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
206 (*g->prpl->set_info)(g, info); |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
207 } |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
208 |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
209 void serv_change_passwd(struct gaim_connection *g, char *orig, char *new) { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
210 if (g->prpl && g->prpl->change_passwd) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
211 (*g->prpl->change_passwd)(g, orig, new); |
| 1 | 212 } |
| 213 | |
| 214 void serv_add_buddy(char *name) | |
| 215 { | |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
216 /* FIXME: this will need to be changed. for now all buddies will be added to |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
217 * all connections :-P */ |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
218 GSList *c = connections; |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
219 struct gaim_connection *g; |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
220 |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
221 while (c) { |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
222 g = (struct gaim_connection *)c->data; |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
223 if (g->prpl && g->prpl->add_buddy) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
224 (*g->prpl->add_buddy)(g, name); |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
225 c = c->next; |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
226 } |
| 1 | 227 } |
| 228 | |
| 229 void serv_add_buddies(GList *buddies) | |
| 230 { | |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
231 /* FIXME: see the comment above for adding one buddy :-P */ |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
232 GSList *c = connections; |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
233 struct gaim_connection *g; |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
234 |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
235 while (c) { |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
236 g = (struct gaim_connection *)c->data; |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
237 if (g->prpl && g->prpl->add_buddies) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
238 (*g->prpl->add_buddies)(g, buddies); |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
239 c = c->next; |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
240 } |
| 1 | 241 } |
| 242 | |
| 243 | |
| 244 void serv_remove_buddy(char *name) | |
| 245 { | |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
246 /* FIXME: since we added them to all conns, we need to remove them from all conns */ |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
247 GSList *c = connections; |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
248 struct gaim_connection *g; |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
249 |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
250 while (c) { |
|
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
251 g = (struct gaim_connection *)c->data; |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
252 if (g->prpl && g->prpl->remove_buddy) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
253 (*g->prpl->remove_buddy)(g, name); |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
254 c = c->next; |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
255 } |
| 1 | 256 } |
| 257 | |
| 258 void serv_add_permit(char *name) | |
| 259 { | |
|
752
870fcc64a709
[gaim-migrate @ 762]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
747
diff
changeset
|
260 permdeny = 3; |
|
870fcc64a709
[gaim-migrate @ 762]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
747
diff
changeset
|
261 build_permit_tree(); |
|
793
57cc66fbfa8e
[gaim-migrate @ 803]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
780
diff
changeset
|
262 serv_set_permit_deny(); |
| 1 | 263 } |
| 264 | |
| 265 | |
| 266 | |
| 267 void serv_add_deny(char *name) | |
| 268 { | |
|
752
870fcc64a709
[gaim-migrate @ 762]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
747
diff
changeset
|
269 permdeny = 4; |
|
870fcc64a709
[gaim-migrate @ 762]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
747
diff
changeset
|
270 build_permit_tree(); |
|
793
57cc66fbfa8e
[gaim-migrate @ 803]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
780
diff
changeset
|
271 serv_set_permit_deny(); |
| 1 | 272 } |
| 273 | |
| 274 | |
| 275 | |
| 276 void serv_set_permit_deny() | |
| 277 { | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
278 /* FIXME */ |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
279 struct gaim_connection *g = connections->data; |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
280 if (g && g->protocol == PROTO_TOC) { |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
281 char buf[MSG_LEN]; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
282 int at; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
283 GList *list; |
| 1 | 284 |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
285 switch (permdeny) { |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
286 case PERMIT_ALL: |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
287 sprintf(buf, "toc_add_permit %s", g->username); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
288 sflap_send(g, buf, -1, TYPE_DATA); |
|
752
870fcc64a709
[gaim-migrate @ 762]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
747
diff
changeset
|
289 sprintf(buf, "toc_add_deny"); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
290 sflap_send(g, buf, -1, TYPE_DATA); |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
291 break; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
292 case PERMIT_NONE: |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
293 sprintf(buf, "toc_add_deny %s", g->username); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
294 sflap_send(g, buf, -1, TYPE_DATA); |
|
752
870fcc64a709
[gaim-migrate @ 762]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
747
diff
changeset
|
295 sprintf(buf, "toc_add_permit"); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
296 sflap_send(g, buf, -1, TYPE_DATA); |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
297 break; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
298 case PERMIT_SOME: |
|
684
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
299 at = g_snprintf(buf, sizeof(buf), "toc_add_permit"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
300 list = permit; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
301 while (list) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
302 at += g_snprintf(&buf[at], sizeof(buf) - at, " %s", normalize(list->data)); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
303 list = list->next; |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
304 } |
|
684
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
305 buf[at] = 0; /* is this necessary? */ |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
306 sflap_send(g, buf, -1, TYPE_DATA); |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
307 break; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
308 case DENY_SOME: |
|
685
94a27f7567c5
[gaim-migrate @ 695]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
684
diff
changeset
|
309 /* you'll still see people as being online, but they won't see you, and you |
|
94a27f7567c5
[gaim-migrate @ 695]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
684
diff
changeset
|
310 * won't get updates for them. that's why i thought this was broken. */ |
|
684
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
311 at = g_snprintf(buf, sizeof(buf), "toc_add_deny"); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
312 list = deny; |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
313 while (list) { |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
314 at += g_snprintf(&buf[at], sizeof(buf) - at, " %s", normalize(list->data)); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
315 list = list->next; |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
316 } |
|
684
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
317 buf[at] = 0; /* is this necessary? */ |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
318 sflap_send(g, buf, -1, TYPE_DATA); |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
319 break; |
|
318
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
320 } |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
321 } else if (g->protocol == PROTO_OSCAR) { |
|
707
668b4d544afe
[gaim-migrate @ 717]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
694
diff
changeset
|
322 /* |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
323 int at; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
324 GList *list; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
325 char buf[MSG_LEN]; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
326 |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
327 switch (permdeny) { |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
328 case PERMIT_ALL: |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
329 aim_bos_changevisibility(gaim_sess, gaim_conn, |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
330 AIM_VISIBILITYCHANGE_DENYADD, current_user->username); |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
331 break; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
332 case PERMIT_NONE: |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
333 aim_bos_changevisibility(gaim_sess, gaim_conn, |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
334 AIM_VISIBILITYCHANGE_PERMITADD, current_user->username); |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
335 break; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
336 case PERMIT_SOME: |
|
679
71b2477033cb
[gaim-migrate @ 689]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
678
diff
changeset
|
337 at = g_snprintf(buf, sizeof(buf), "%s", current_user->username); |
|
71b2477033cb
[gaim-migrate @ 689]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
678
diff
changeset
|
338 list = permit; |
|
71b2477033cb
[gaim-migrate @ 689]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
678
diff
changeset
|
339 while (list) { |
|
71b2477033cb
[gaim-migrate @ 689]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
678
diff
changeset
|
340 at += g_snprintf(&buf[at], sizeof(buf) - at, "&"); |
|
71b2477033cb
[gaim-migrate @ 689]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
678
diff
changeset
|
341 at += g_snprintf(&buf[at], sizeof(buf) - at, "%s", list->data); |
|
71b2477033cb
[gaim-migrate @ 689]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
678
diff
changeset
|
342 list = list->next; |
|
281
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
343 } |
|
679
71b2477033cb
[gaim-migrate @ 689]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
678
diff
changeset
|
344 aim_bos_changevisibility(gaim_sess, gaim_conn, |
|
71b2477033cb
[gaim-migrate @ 689]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
678
diff
changeset
|
345 AIM_VISIBILITYCHANGE_PERMITADD, buf); |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
346 break; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
347 case DENY_SOME: |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
348 if (deny) { |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
349 at = 0; |
|
680
acdbee5a9492
[gaim-migrate @ 690]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
679
diff
changeset
|
350 list = deny; |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
351 while (list) { |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
352 at += g_snprintf(&buf[at], sizeof(buf) - at, "%s", list->data); |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
353 list = list->next; |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
354 if (list) |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
355 at += g_snprintf(&buf[at], sizeof(buf) - at, "&"); |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
356 } |
|
684
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
357 sprintf(debug_buff, "denying %s\n", buf); |
|
b29c92be568b
[gaim-migrate @ 694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
680
diff
changeset
|
358 debug_print(debug_buff); |
|
678
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
359 aim_bos_changevisibility(gaim_sess, gaim_conn, |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
360 AIM_VISIBILITYCHANGE_DENYADD, buf); |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
361 } else { |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
362 aim_bos_changevisibility(gaim_sess, gaim_conn, |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
363 AIM_VISIBILITYCHANGE_DENYADD, current_user->username); |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
364 } |
|
c72f58814e9f
[gaim-migrate @ 688]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
660
diff
changeset
|
365 break; |
|
281
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
366 } |
|
707
668b4d544afe
[gaim-migrate @ 717]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
694
diff
changeset
|
367 */ |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
368 } |
|
986
ca8f1d02630a
[gaim-migrate @ 996]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
981
diff
changeset
|
369 do_export(0, 0); |
|
ca8f1d02630a
[gaim-migrate @ 996]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
981
diff
changeset
|
370 serv_save_config(); |
| 1 | 371 } |
| 372 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
373 void serv_set_idle(struct gaim_connection *g, int time) |
| 1 | 374 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
375 if (g->prpl && g->prpl->set_idle) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
376 (*g->prpl->set_idle)(g, time); |
| 1 | 377 } |
| 378 | |
| 379 | |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
973
diff
changeset
|
380 void serv_warn(struct gaim_connection *g, char *name, int anon) |
| 1 | 381 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
382 if (g->prpl && g->prpl->warn) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
383 (*g->prpl->warn)(g, name, anon); |
| 1 | 384 } |
| 385 | |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
707
diff
changeset
|
386 void serv_build_config(char *buf, int len, gboolean show) { |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
707
diff
changeset
|
387 toc_build_config(buf, len, show); |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
388 } |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
389 |
| 1 | 390 |
| 391 void serv_save_config() | |
| 392 { | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
393 /* FIXME */ |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
394 struct gaim_connection *g = connections->data; |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
395 if (g && g->protocol == PROTO_TOC) { |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
396 char *buf = g_malloc(BUF_LONG); |
|
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
397 char *buf2 = g_malloc(MSG_LEN); |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
707
diff
changeset
|
398 serv_build_config(buf, BUF_LONG / 2, FALSE); |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
399 g_snprintf(buf2, MSG_LEN, "toc_set_config {%s}", buf); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
400 sflap_send(g, buf2, -1, TYPE_DATA); |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
401 g_free(buf2); |
|
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
402 g_free(buf); |
|
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
403 } |
| 1 | 404 } |
| 405 | |
| 406 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
407 void serv_accept_chat(struct gaim_connection *g, int i) |
| 1 | 408 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
409 if (g->prpl && g->prpl->accept_chat) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
410 (*g->prpl->accept_chat)(g, i); |
| 1 | 411 } |
| 412 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
413 void serv_join_chat(struct gaim_connection *g, int exchange, char *name) |
| 1 | 414 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
415 if (g->prpl && g->prpl->join_chat) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
416 (*g->prpl->join_chat)(g, exchange, name); |
| 1 | 417 } |
| 418 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
419 void serv_chat_invite(struct gaim_connection *g, int id, char *message, char *name) |
| 1 | 420 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
421 if (g->prpl && g->prpl->chat_invite) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
422 (*g->prpl->chat_invite)(g, id, message, name); |
| 1 | 423 } |
| 424 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
425 void serv_chat_leave(struct gaim_connection *g, int id) |
| 1 | 426 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
427 if (g->prpl && g->prpl->chat_leave) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
428 (*g->prpl->chat_leave)(g, id); |
| 1 | 429 } |
| 430 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
431 void serv_chat_whisper(struct gaim_connection *g, int id, char *who, char *message) |
| 1 | 432 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
433 if (g->prpl && g->prpl->chat_whisper) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
434 (*g->prpl->chat_whisper)(g, id, who, message); |
| 1 | 435 } |
| 436 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
437 void serv_chat_send(struct gaim_connection *g, int id, char *message) |
| 1 | 438 { |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
439 if (g->prpl && g->prpl->chat_send) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
440 (*g->prpl->chat_send)(g, id, message); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
441 serv_touch_idle(g); |
| 1 | 442 } |
| 443 | |
| 444 | |
| 445 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
446 void serv_got_im(struct gaim_connection *gc, char *name, char *message, int away) |
| 1 | 447 { |
| 448 struct conversation *cnv; | |
| 764 | 449 int is_idle = -1; |
| 450 int new_conv = 0; | |
| 1 | 451 |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
452 char *buffy = g_strdup(message); |
|
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
453 char *angel = g_strdup(name); |
|
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
454 plugin_event(event_im_recv, gc, &angel, &buffy, 0); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
455 if (!buffy || !angel) |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
456 return; |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
457 g_snprintf(message, strlen(message) + 1, "%s", buffy); |
|
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
458 g_free(buffy); |
|
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
459 g_snprintf(name, strlen(name) + 1, "%s", angel); |
|
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
460 g_free(angel); |
| 1 | 461 |
|
736
d05d746384a7
[gaim-migrate @ 746]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
710
diff
changeset
|
462 if ((general_options & OPT_GEN_TIK_HACK) && awaymessage && |
| 764 | 463 !strcmp(message, ">>>Automated Message: Getting Away Message<<<")) |
| 464 { | |
|
831
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
809
diff
changeset
|
465 char *tmpmsg = stylize(awaymessage->message, MSG_LEN); |
|
980
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
978
diff
changeset
|
466 serv_send_im(gc, name, tmpmsg, 1); |
|
831
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
809
diff
changeset
|
467 g_free(tmpmsg); |
|
736
d05d746384a7
[gaim-migrate @ 746]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
710
diff
changeset
|
468 return; |
|
d05d746384a7
[gaim-migrate @ 746]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
710
diff
changeset
|
469 } |
|
d05d746384a7
[gaim-migrate @ 746]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
710
diff
changeset
|
470 |
| 1 | 471 cnv = find_conversation(name); |
| 616 | 472 |
| 473 if (general_options & OPT_GEN_SEND_LINKS) { | |
| 474 linkify_text(message); | |
| 475 } | |
| 476 | |
| 764 | 477 if (away) |
| 478 away = WFLAG_AUTO; | |
| 1 | 479 |
| 480 if (awaymessage != NULL) { | |
| 481 if (!(general_options & OPT_GEN_DISCARD_WHEN_AWAY)) { | |
| 482 if (cnv == NULL) { | |
| 483 new_conv = 1; | |
| 484 cnv = new_conversation(name); | |
| 485 } | |
| 486 } | |
| 487 if (cnv != NULL) { | |
| 488 if (sound_options & OPT_SOUND_WHEN_AWAY) | |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
489 play_sound(RECEIVE); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
447
diff
changeset
|
490 write_to_conv(cnv, message, away | WFLAG_RECV, NULL); |
| 1 | 491 } |
| 492 | |
| 493 } else { | |
| 494 if (cnv == NULL) { | |
| 495 new_conv = 1; | |
| 496 cnv = new_conversation(name); | |
| 497 } | |
| 498 if (new_conv && (sound_options & OPT_SOUND_FIRST_RCV)) { | |
| 499 play_sound(FIRST_RECEIVE); | |
| 500 } else { | |
| 501 if (cnv->makesound && (sound_options & OPT_SOUND_RECV)) | |
| 502 play_sound(RECEIVE); | |
| 503 } | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
447
diff
changeset
|
504 write_to_conv(cnv, message, away | WFLAG_RECV, NULL); |
| 1 | 505 } |
| 506 | |
| 507 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
508 cnv->gc = gc; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
509 gtk_option_menu_set_history(GTK_OPTION_MENU(cnv->menu), g_slist_index(connections, gc)); |
| 1 | 510 |
| 511 | |
| 764 | 512 if (awaymessage != NULL) { |
| 513 time_t t; | |
|
765
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
514 char *tmpmsg; |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
515 struct buddy *b = find_buddy(name); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
516 char *alias = b ? b->show : name; |
| 1 | 517 |
| 764 | 518 time(&t); |
| 1 | 519 |
| 520 | |
| 764 | 521 if ((cnv == NULL) || (t - cnv->sent_away) < 120) |
| 522 return; | |
| 523 | |
| 524 cnv->sent_away = t; | |
| 1 | 525 |
| 764 | 526 if (is_idle) |
| 527 is_idle = -1; | |
| 1 | 528 |
| 764 | 529 /* apply default fonts and colors */ |
|
765
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
530 tmpmsg = stylize(awaymessage->message, MSG_LEN); |
| 764 | 531 |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
532 /* PRPL */ |
|
962
e006338ce34e
[gaim-migrate @ 972]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
533 if (gc->protocol == PROTO_TOC) { |
|
e006338ce34e
[gaim-migrate @ 972]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
534 escape_text(tmpmsg); |
|
e006338ce34e
[gaim-migrate @ 972]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
535 escape_message(tmpmsg); |
|
e006338ce34e
[gaim-migrate @ 972]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
536 } |
|
980
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
978
diff
changeset
|
537 serv_send_im(gc, name, away_subs(tmpmsg, alias), 1); |
|
831
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
809
diff
changeset
|
538 g_free(tmpmsg); |
|
97f1ae636ed7
[gaim-migrate @ 841]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
809
diff
changeset
|
539 tmpmsg = stylize(awaymessage->message, MSG_LEN); |
| 1 | 540 |
| 764 | 541 if (is_idle == -1) |
| 1 | 542 is_idle = 1; |
| 543 | |
| 764 | 544 if (cnv != NULL) |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
545 write_to_conv(cnv, away_subs(tmpmsg, alias), WFLAG_SEND | WFLAG_AUTO, NULL); |
|
765
bf31bf916f53
[gaim-migrate @ 775]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
764
diff
changeset
|
546 g_free(tmpmsg); |
| 764 | 547 } |
| 1 | 548 } |
| 549 | |
| 550 | |
| 551 | |
|
513
eaddaa0dbbcb
[gaim-migrate @ 523]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
511
diff
changeset
|
552 void serv_got_update(char *name, int loggedin, int evil, time_t signon, time_t idle, int type, u_short caps) |
| 1 | 553 { |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
554 struct buddy *b = find_buddy(name); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
555 struct gaim_connection *gc = find_gaim_conn_by_name(name); |
| 1 | 556 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
557 if (gc) { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
558 correction_time = (int)(signon - gc->login_time); |
| 1 | 559 update_all_buddies(); |
| 25 | 560 if (!b) { |
| 1 | 561 return; |
| 25 | 562 } |
| 1 | 563 } |
| 564 | |
| 565 if (!b) { | |
| 566 sprintf(debug_buff,"Error, no such person\n"); | |
| 567 debug_print(debug_buff); | |
| 568 return; | |
| 569 } | |
| 570 | |
| 571 /* This code will 'align' the name from the TOC */ | |
| 572 /* server with what's in our record. We want to */ | |
| 573 /* store things how THEY want it... */ | |
| 574 if (strcmp(name, b->name)) { | |
| 575 GList *cnv = conversations; | |
| 576 struct conversation *cv; | |
| 577 | |
| 578 char *who = g_malloc(80); | |
| 579 | |
| 580 strcpy(who, normalize(name)); | |
| 581 | |
| 582 while(cnv) { | |
| 583 cv = (struct conversation *)cnv->data; | |
| 584 if (!strcasecmp(who, normalize(cv->name))) { | |
| 585 g_snprintf(cv->name, sizeof(cv->name), "%s", name); | |
| 586 if (find_log_info(name) || (general_options & OPT_GEN_LOG_ALL)) | |
| 587 g_snprintf(who, 63, LOG_CONVERSATION_TITLE, name); | |
| 588 else | |
| 589 g_snprintf(who, 63, CONVERSATION_TITLE, name); | |
| 590 gtk_window_set_title(GTK_WINDOW(cv->window), who); | |
| 79 | 591 /* was g_free(buf), but break gives us that |
| 592 * and freeing twice is not good --Sumner */ | |
| 1 | 593 break; |
| 594 } | |
| 595 cnv = cnv->next; | |
| 596 } | |
| 45 | 597 g_free(who); |
| 1 | 598 g_snprintf(b->name, sizeof(b->name), "%s", name); |
| 599 /*gtk_label_set_text(GTK_LABEL(b->label), b->name);*/ | |
| 600 | |
| 601 /* okay lets save the new config... */ | |
| 602 | |
| 603 } | |
| 604 | |
|
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
605 if (!b->idle && idle) plugin_event(event_buddy_idle, b->name, 0, 0, 0); |
|
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
606 if (b->idle && !idle) plugin_event(event_buddy_unidle, b->name, 0, 0, 0); |
|
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
607 |
| 1 | 608 b->idle = idle; |
| 609 b->evil = evil; | |
|
780
c714def9cebb
[gaim-migrate @ 790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
771
diff
changeset
|
610 |
|
136
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
611 if ((b->uc & UC_UNAVAILABLE) && !(type & UC_UNAVAILABLE)) { |
|
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
612 plugin_event(event_buddy_back, b->name, 0, 0, 0); |
|
780
c714def9cebb
[gaim-migrate @ 790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
771
diff
changeset
|
613 } else if (!(b->uc & UC_UNAVAILABLE) && (type & UC_UNAVAILABLE)) { |
|
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
614 plugin_event(event_buddy_away, b->name, 0, 0, 0); |
|
136
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
615 } |
|
780
c714def9cebb
[gaim-migrate @ 790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
771
diff
changeset
|
616 |
| 1 | 617 b->uc = type; |
|
515
b33ed0a7f49b
[gaim-migrate @ 525]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
513
diff
changeset
|
618 if (caps) b->caps = caps; |
| 1 | 619 |
| 620 b->signon = signon; | |
| 621 | |
| 622 if (loggedin) { | |
| 623 if (!b->present) { | |
| 624 b->present = 1; | |
| 625 do_pounce(b->name); | |
| 626 } | |
| 627 } else | |
| 628 b->present = 0; | |
| 629 | |
| 630 set_buddy(b); | |
| 631 } | |
| 632 | |
| 633 static | |
| 634 void close_warned(GtkWidget *w, GtkWidget *w2) | |
| 635 { | |
| 636 gtk_widget_destroy(w2); | |
| 637 } | |
| 638 | |
| 639 | |
| 640 | |
| 641 void serv_got_eviled(char *name, int lev) | |
| 642 { | |
| 643 char *buf2 = g_malloc(1024); | |
| 644 GtkWidget *d, *label, *close; | |
| 645 | |
| 646 | |
|
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
647 plugin_event(event_warned, name, (void *)lev, 0, 0); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
648 |
|
400
bb87776942c4
[gaim-migrate @ 410]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
391
diff
changeset
|
649 g_snprintf(buf2, 1023, "You have just been warned by %s.\nYour new warning level is %d%%", |
| 1 | 650 ((name == NULL) ? "an anonymous person" : name) , lev); |
| 651 | |
| 652 | |
| 653 d = gtk_dialog_new(); | |
| 654 gtk_widget_realize(d); | |
| 655 aol_icon(d->window); | |
| 656 | |
| 657 label = gtk_label_new(buf2); | |
| 658 gtk_widget_show(label); | |
| 659 close = gtk_button_new_with_label("Close"); | |
|
535
f03f041c1aa9
[gaim-migrate @ 545]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
528
diff
changeset
|
660 if (display_options & OPT_DISP_COOL_LOOK) |
|
f03f041c1aa9
[gaim-migrate @ 545]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
528
diff
changeset
|
661 gtk_button_set_relief(GTK_BUTTON(close), GTK_RELIEF_NONE); |
| 1 | 662 gtk_widget_show(close); |
| 663 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), | |
| 664 label, FALSE, FALSE, 5); | |
| 665 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), | |
| 666 close, FALSE, FALSE, 5); | |
| 667 | |
| 668 gtk_window_set_title(GTK_WINDOW(d), "Warned"); | |
| 669 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_warned), d); | |
| 670 gtk_widget_show(d); | |
| 671 } | |
| 672 | |
| 673 | |
| 674 | |
| 675 static void close_invite(GtkWidget *w, GtkWidget *w2) | |
| 676 { | |
| 677 gtk_widget_destroy(w2); | |
| 678 } | |
| 679 | |
| 680 static void chat_invite_callback(GtkWidget *w, GtkWidget *w2) | |
| 681 { | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
682 struct gaim_connection *g = (struct gaim_connection *) |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
683 gtk_object_get_user_data(GTK_OBJECT(GTK_DIALOG(w2)->vbox)); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
684 if (g->protocol == PROTO_TOC) { |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
685 int i = (int)gtk_object_get_user_data(GTK_OBJECT(w2)); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
686 serv_accept_chat(g, i); |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
687 gtk_widget_destroy(w2); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
688 } else if (g->protocol == PROTO_OSCAR) { |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
689 char *i = (char *)gtk_object_get_user_data(GTK_OBJECT(w2)); |
|
693
30a8e386849d
[gaim-migrate @ 703]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
692
diff
changeset
|
690 int id = (int)gtk_object_get_user_data(GTK_OBJECT(w)); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
691 serv_join_chat(g, id, i); |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
692 g_free(i); |
|
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
693 gtk_widget_destroy(w2); |
|
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
694 } |
| 1 | 695 } |
| 696 | |
| 697 | |
| 698 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
699 void serv_got_chat_invite(struct gaim_connection *g, char *name, int id, char *who, char *message) |
| 1 | 700 { |
| 701 GtkWidget *d; | |
| 702 GtkWidget *label; | |
| 703 GtkWidget *yesbtn; | |
| 704 GtkWidget *nobtn; | |
| 705 | |
| 706 char buf2[BUF_LONG]; | |
| 707 | |
| 708 | |
|
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
709 plugin_event(event_chat_invited, g, who, name, message); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
710 |
|
414
f9dc74875833
[gaim-migrate @ 424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
711 if (message) |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
712 g_snprintf(buf2, sizeof(buf2), "User '%s' invites %s to buddy chat room: '%s'\n%s", who, g->username, name, message); |
|
414
f9dc74875833
[gaim-migrate @ 424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
713 else |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
714 g_snprintf(buf2, sizeof(buf2), "User '%s' invites %s to buddy chat room: '%s'\n", who, g->username, name); |
| 1 | 715 |
| 716 d = gtk_dialog_new(); | |
| 717 gtk_widget_realize(d); | |
| 718 aol_icon(d->window); | |
| 719 | |
| 720 | |
| 721 label = gtk_label_new(buf2); | |
| 722 gtk_widget_show(label); | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
723 yesbtn = picture_button(d, _("Yes"), ok_xpm); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
724 nobtn = picture_button(d, _("No"), cancel_xpm); |
| 1 | 725 gtk_widget_show(nobtn); |
| 726 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), | |
| 727 label, FALSE, FALSE, 5); | |
| 728 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), | |
| 729 yesbtn, FALSE, FALSE, 5); | |
| 730 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), | |
| 731 nobtn, FALSE, FALSE, 5); | |
| 732 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
733 gtk_object_set_user_data(GTK_OBJECT(GTK_DIALOG(d)->vbox), g); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
734 if (g->protocol == PROTO_TOC) { |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
735 gtk_object_set_user_data(GTK_OBJECT(d), (void *)id); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
736 gtk_object_set_user_data(GTK_OBJECT(GTK_DIALOG(d)->vbox), g); |
|
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
737 } else if (g->protocol == PROTO_OSCAR) { |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
738 gtk_object_set_user_data(GTK_OBJECT(d), (void *)g_strdup(name)); |
|
693
30a8e386849d
[gaim-migrate @ 703]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
692
diff
changeset
|
739 gtk_object_set_user_data(GTK_OBJECT(yesbtn), (void *)id); |
|
30a8e386849d
[gaim-migrate @ 703]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
692
diff
changeset
|
740 } |
| 1 | 741 |
| 742 | |
| 743 gtk_window_set_title(GTK_WINDOW(d), "Buddy chat invite"); | |
| 744 gtk_signal_connect(GTK_OBJECT(nobtn), "clicked", GTK_SIGNAL_FUNC(close_invite), d); | |
| 745 gtk_signal_connect(GTK_OBJECT(yesbtn), "clicked", GTK_SIGNAL_FUNC(chat_invite_callback), d); | |
| 746 | |
| 747 | |
| 748 gtk_widget_show(d); | |
| 749 } | |
| 750 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
751 void serv_got_joined_chat(struct gaim_connection *gc, int id, char *name) |
| 1 | 752 { |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
447
diff
changeset
|
753 struct conversation *b; |
| 1 | 754 |
|
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
755 plugin_event(event_chat_join, gc, name, 0, 0); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
756 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
447
diff
changeset
|
757 b = (struct conversation *)g_new0(struct conversation, 1); |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
758 gc->buddy_chats = g_slist_append(gc->buddy_chats, b); |
| 1 | 759 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
447
diff
changeset
|
760 b->is_chat = TRUE; |
| 1 | 761 b->ignored = NULL; |
| 762 b->in_room = NULL; | |
| 763 b->id = id; | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
764 b->gc = gc; |
| 1 | 765 g_snprintf(b->name, 80, "%s", name); |
| 888 | 766 |
| 767 if ((general_options & OPT_GEN_LOG_ALL) || find_log_info(b->name)) { | |
| 768 FILE *fd; | |
| 769 char *filename; | |
| 770 | |
| 771 filename = (char *)malloc(100); | |
| 772 snprintf(filename, 100, "%s.chat", b->name); | |
| 773 | |
| 774 fd = open_log_file(filename); | |
| 775 if (!(general_options & OPT_GEN_STRIP_HTML)) | |
| 776 fprintf(fd, "<HR><BR><H3 Align=Center> ---- New Conversation @ %s ----</H3><BR>\n", full_date()); | |
| 777 else | |
| 778 fprintf(fd, "---- New Conversation @ %s ----\n", full_date()); | |
| 779 | |
| 780 fclose(fd); | |
| 781 free(filename); | |
| 782 } | |
| 783 | |
| 1 | 784 show_new_buddy_chat(b); |
| 785 } | |
| 786 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
787 void serv_got_chat_left(struct gaim_connection *g, int id) |
| 1 | 788 { |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
789 GSList *bcs = g->buddy_chats; |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
447
diff
changeset
|
790 struct conversation *b = NULL; |
| 1 | 791 |
| 792 | |
| 793 while(bcs) { | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
447
diff
changeset
|
794 b = (struct conversation *)bcs->data; |
| 1 | 795 if (id == b->id) { |
| 796 break; | |
| 797 } | |
| 798 b = NULL; | |
| 799 bcs = bcs->next; | |
| 800 } | |
| 801 | |
| 802 if (!b) | |
| 803 return; | |
| 804 | |
|
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
805 plugin_event(event_chat_leave, g, b->name, 0, 0); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
806 |
|
368
9bf1f77985d2
[gaim-migrate @ 378]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
807 sprintf(debug_buff, "Leaving room %s.\n", b->name); |
|
9bf1f77985d2
[gaim-migrate @ 378]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
808 debug_print(debug_buff); |
| 1 | 809 |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
810 g->buddy_chats = g_slist_remove(g->buddy_chats, b); |
| 1 | 811 |
| 812 g_free(b); | |
| 813 } | |
| 814 | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
815 void serv_got_chat_in(struct gaim_connection *g, int id, char *who, int whisper, char *message) |
| 1 | 816 { |
| 817 int w; | |
|
964
2cd7b73e2c9a
[gaim-migrate @ 974]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
962
diff
changeset
|
818 GSList *bcs = g->buddy_chats; |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
447
diff
changeset
|
819 struct conversation *b = NULL; |
| 1 | 820 |
| 821 while(bcs) { | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
447
diff
changeset
|
822 b = (struct conversation *)bcs->data; |
| 1 | 823 if (id == b->id) |
| 824 break; | |
| 825 bcs = bcs->next; | |
| 826 b = NULL; | |
| 827 | |
| 828 } | |
| 829 if (!b) | |
| 830 return; | |
| 831 | |
|
1000
91b7377e7b45
[gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
990
diff
changeset
|
832 plugin_event(event_chat_recv, g, b->name, who, message); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
368
diff
changeset
|
833 |
| 1 | 834 if (whisper) |
| 835 w = WFLAG_WHISPER; | |
| 836 else | |
| 837 w = 0; | |
| 838 | |
| 839 chat_write(b, who, w, message); | |
| 840 } | |
| 841 | |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
842 void serv_rvous_accept(struct gaim_connection *g, char *name, char *cookie, char *uid) |
|
260
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
843 { |
|
423
0d4e80bdb96b
[gaim-migrate @ 433]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
414
diff
changeset
|
844 /* Oscar doesn't matter here because this won't ever be called for it */ |
|
260
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
845 char buf[MSG_LEN]; |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
846 g_snprintf(buf, MSG_LEN, "toc_rvous_accept %s %s %s", normalize(name), |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
847 cookie, uid); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
848 sflap_send(g, buf, -1, TYPE_DATA); |
|
260
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
849 } |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
850 |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
851 void serv_rvous_cancel(struct gaim_connection *g, char *name, char *cookie, char *uid) |
|
260
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
852 { |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
853 char buf[MSG_LEN]; |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
854 g_snprintf(buf, MSG_LEN, "toc_rvous_cancel %s %s %s", normalize(name), |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
855 cookie, uid); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
931
diff
changeset
|
856 sflap_send(g, buf, -1, TYPE_DATA); |
|
260
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
857 } |
|
511
3133ab511d92
[gaim-migrate @ 521]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
503
diff
changeset
|
858 |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
859 void send_keepalive(gpointer d) { |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
860 struct gaim_connection *gc = (struct gaim_connection *)d; |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
861 debug_print("sending oscar NOP\n"); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
862 if (gc->prpl && gc->prpl->keepalive) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
863 (*gc->prpl->keepalive)(gc); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
864 } |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
865 |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
866 void update_keepalive(struct gaim_connection *gc, gboolean on) { |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
867 if (on && gc->keepalive < 0 && blist) { |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
868 debug_print("allowing NOP\n"); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
869 gc->keepalive = gtk_timeout_add(60000, (GtkFunction)send_keepalive, gc); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
870 } else if (!on && gc->keepalive > -1) { |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
871 debug_print("removing NOP\n"); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
872 gtk_timeout_remove(gc->keepalive); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
873 gc->keepalive = -1; |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
874 } |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
875 } |
