Mercurial > pidgin.yaz
annotate src/server.c @ 338:9d258a0aa560
[gaim-migrate @ 348]
Whoa, all kinds of things happened here. The applet looks better. The
preferences dialog changes based on your compile-time options (oscar,
gnome). Whispering works again. libfaim got updated; it can almost do
RVOUS stuff, and hopefully soon can make requests too. The applet doesn't
need to have its sounds go through GNOME, although it still can. There
is code to facilitate SOCKS5 support (all that needs to be done is to
actually write the code to communicate with the proxy server).
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Tue, 06 Jun 2000 09:55:30 +0000 |
| parents | 71be288e7578 |
| children | b402a23f35df |
| 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 | |
| 22 #include <time.h> | |
| 23 #include <stdio.h> | |
| 24 #include <string.h> | |
| 25 #include <sys/types.h> | |
| 26 #include <sys/stat.h> | |
| 27 #include <sys/time.h> | |
| 28 #include <unistd.h> | |
| 29 #include <gtk/gtk.h> | |
| 30 #ifdef USE_OSCAR | |
|
338
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
335
diff
changeset
|
31 #include <aim.h> |
|
276
9e6fc62490cd
[gaim-migrate @ 286]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
273
diff
changeset
|
32 extern int gaim_caps; |
| 1 | 33 #endif |
| 34 #include "gaim.h" | |
| 35 | |
| 36 static int idle_timer = -1; | |
| 37 static time_t lastsent = 0; | |
| 38 static time_t login_time = 0; | |
| 39 static struct timeval lag_tv; | |
| 40 static int is_idle = 0; | |
| 41 | |
| 42 int correction_time = 0; | |
| 43 | |
| 44 int serv_login(char *username, char *password) | |
| 45 { | |
| 46 #ifndef USE_OSCAR | |
| 47 return toc_login(username, password); | |
| 48 #else | |
| 49 return oscar_login(username, password); | |
| 50 #endif | |
| 51 } | |
| 52 | |
| 53 void serv_close() | |
| 54 { | |
| 55 #ifndef USE_OSCAR | |
| 56 toc_close(); | |
|
242
14fc16f579c8
[gaim-migrate @ 252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
57 #else |
|
14fc16f579c8
[gaim-migrate @ 252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
58 oscar_close(); |
| 1 | 59 #endif |
| 60 gtk_timeout_remove(idle_timer); | |
| 61 idle_timer = -1; | |
| 62 } | |
| 63 | |
| 64 | |
| 65 void serv_touch_idle() | |
| 66 { | |
| 67 /* Are we idle? If so, not anymore */ | |
| 68 if (is_idle > 0) { | |
| 69 is_idle = 0; | |
| 70 serv_set_idle(0); | |
| 71 } | |
| 72 time(&lastsent); | |
| 73 } | |
| 74 | |
| 75 | |
| 76 static gint check_idle() | |
| 77 { | |
| 78 time_t t; | |
| 79 | |
| 80 /* Not idle, really... :) */ | |
| 81 update_all_buddies(); | |
| 82 | |
| 83 time(&t); | |
| 84 | |
| 85 gettimeofday(&lag_tv, NULL); | |
|
171
789c792ed14b
[gaim-migrate @ 181]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
145
diff
changeset
|
86 if (general_options & OPT_GEN_SHOW_LAGMETER) |
|
181
f2d631f867a3
[gaim-migrate @ 191]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
171
diff
changeset
|
87 serv_send_im(current_user->username, LAGOMETER_STR, 1); |
| 1 | 88 |
| 89 if (report_idle != IDLE_GAIM) | |
| 90 return TRUE; | |
| 91 | |
| 92 | |
| 93 if (is_idle) | |
| 94 return TRUE; | |
| 95 | |
| 96 if ((t - lastsent) > 600) { /* 15 minutes! */ | |
| 97 serv_set_idle((int)t - lastsent); | |
| 98 is_idle = 1; | |
| 99 } | |
| 100 | |
|
115
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
101 #ifdef GAIM_PLUGINS |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
102 { |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
103 GList *c = callbacks; |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
104 struct gaim_callback *g; |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
105 void (*function)(void *); |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
106 while (c) { |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
107 g = (struct gaim_callback *)c->data; |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
108 if (g->event == event_blist_update && |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
109 g->function != NULL) { |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
110 function = g->function; |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
111 (*function)(g->data); |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
112 } |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
113 c = c->next; |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
114 } |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
115 } |
|
890cfb7d8fdb
[gaim-migrate @ 125]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
116 #endif |
| 1 | 117 |
| 118 return TRUE; | |
| 119 | |
| 120 } | |
| 121 | |
| 122 | |
| 123 void serv_finish_login() | |
| 124 { | |
| 125 char *buf; | |
| 126 | |
| 127 if (strlen(current_user->user_info)) { | |
| 79 | 128 buf = g_malloc(strlen(current_user->user_info) * 4); |
| 1 | 129 strcpy(buf, current_user->user_info); |
| 130 escape_text(buf); | |
| 131 serv_set_info(buf); | |
| 132 g_free(buf); | |
| 133 } | |
| 134 | |
| 135 if (idle_timer != -1) | |
| 136 gtk_timeout_remove(idle_timer); | |
| 137 | |
| 138 idle_timer = gtk_timeout_add(20000, (GtkFunction)check_idle, NULL); | |
| 139 serv_touch_idle(); | |
| 140 | |
| 141 time(&login_time); | |
| 142 | |
| 143 serv_add_buddy(current_user->username); | |
| 144 | |
| 145 if (!(general_options & OPT_GEN_REGISTERED)) | |
| 146 { | |
| 147 show_register_dialog(); | |
| 148 save_prefs(); | |
| 149 } | |
| 150 } | |
| 151 | |
| 152 | |
| 153 | |
| 154 void serv_send_im(char *name, char *message, int away) | |
| 155 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
156 #ifndef USE_OSCAR |
| 1 | 157 char buf[MSG_LEN - 7]; |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
158 |
| 1 | 159 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name), |
| 160 message, ((away) ? " auto" : "")); | |
| 161 sflap_send(buf, strlen(buf), TYPE_DATA); | |
| 162 #else | |
|
302
61894ab8c47e
[gaim-migrate @ 312]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
283
diff
changeset
|
163 if (away) |
|
61894ab8c47e
[gaim-migrate @ 312]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
283
diff
changeset
|
164 aim_send_im(gaim_sess, gaim_conn, name, AIM_IMFLAGS_AWAY, message); |
|
61894ab8c47e
[gaim-migrate @ 312]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
283
diff
changeset
|
165 else |
|
61894ab8c47e
[gaim-migrate @ 312]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
283
diff
changeset
|
166 aim_send_im(gaim_sess, gaim_conn, name, 0, message); |
| 1 | 167 #endif |
| 168 if (!away) | |
| 169 serv_touch_idle(); | |
| 170 } | |
| 171 | |
| 172 void serv_get_info(char *name) | |
| 173 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
174 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
175 char buf[MSG_LEN]; |
| 1 | 176 g_snprintf(buf, MSG_LEN, "toc_get_info %s", normalize(name)); |
| 177 sflap_send(buf, -1, TYPE_DATA); | |
|
243
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
178 #else |
|
249
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
179 aim_getinfo(gaim_sess, gaim_conn, name, AIM_GETINFO_GENERALINFO); |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
180 #endif |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
181 } |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
182 |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
183 void serv_get_away_msg(char *name) |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
184 { |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
185 #ifndef USE_OSCAR |
|
249
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
186 char buf[MSG_LEN]; |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
187 /* HAHA! TOC doesn't have this yet */ |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
188 #else |
|
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
189 aim_getinfo(gaim_sess, gaim_conn, name, AIM_GETINFO_AWAYMESSAGE); |
| 1 | 190 #endif |
| 191 } | |
| 192 | |
| 193 void serv_get_dir(char *name) | |
| 194 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
195 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
196 char buf[MSG_LEN]; |
| 1 | 197 g_snprintf(buf, MSG_LEN, "toc_get_dir %s", normalize(name)); |
| 198 sflap_send(buf, -1, TYPE_DATA); | |
| 199 #endif | |
| 200 } | |
| 201 | |
| 202 void serv_set_dir(char *first, char *middle, char *last, char *maiden, | |
| 203 char *city, char *state, char *country, int web) | |
| 204 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
205 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
206 char buf2[BUF_LEN*4], buf[BUF_LEN]; |
| 1 | 207 g_snprintf(buf2, sizeof(buf2), "%s:%s:%s:%s:%s:%s:%s:%s", first, |
| 208 middle, last, maiden, city, state, country, | |
| 209 (web == 1) ? "Y" : ""); | |
| 210 escape_text(buf2); | |
| 211 g_snprintf(buf, sizeof(buf), "toc_set_dir %s", buf2); | |
| 212 sflap_send(buf, -1, TYPE_DATA); | |
| 213 #endif | |
| 214 } | |
| 215 | |
| 216 void serv_dir_search(char *first, char *middle, char *last, char *maiden, | |
| 217 char *city, char *state, char *country, char *email) | |
| 218 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
219 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
220 char buf[BUF_LONG]; |
| 1 | 221 g_snprintf(buf, sizeof(buf)/2, "toc_dir_search %s:%s:%s:%s:%s:%s:%s:%s", first, middle, last, maiden, city, state, country, email); |
| 222 sprintf(debug_buff,"Searching for: %s,%s,%s,%s,%s,%s,%s\n", first, middle, last, maiden, city, state, country); | |
| 223 debug_print(debug_buff); | |
| 224 sflap_send(buf, -1, TYPE_DATA); | |
|
243
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
225 #else |
|
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
226 if (strlen(email)) |
|
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
227 aim_usersearch_address(gaim_sess, gaim_conn, email); |
| 1 | 228 #endif |
| 229 } | |
| 230 | |
| 231 | |
| 232 void serv_set_away(char *message) | |
| 233 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
234 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
235 char buf[MSG_LEN]; |
| 1 | 236 if (message) |
| 237 g_snprintf(buf, MSG_LEN, "toc_set_away \"%s\"", message); | |
| 238 else | |
|
200
bc117fbcf527
[gaim-migrate @ 210]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
181
diff
changeset
|
239 g_snprintf(buf, MSG_LEN, "toc_set_away \"\""); |
| 1 | 240 sflap_send(buf, -1, TYPE_DATA); |
|
243
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
241 #else |
|
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
242 aim_bos_setprofile(gaim_sess, gaim_conn, current_user->user_info, |
|
276
9e6fc62490cd
[gaim-migrate @ 286]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
273
diff
changeset
|
243 message, gaim_caps); |
| 1 | 244 #endif |
| 245 } | |
| 246 | |
| 247 void serv_set_info(char *info) | |
| 248 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
249 #ifndef USE_OSCAR |
| 1 | 250 char buf[MSG_LEN]; |
| 251 g_snprintf(buf, sizeof(buf), "toc_set_info \"%s\n\"", info); | |
| 252 sflap_send(buf, -1, TYPE_DATA); | |
|
243
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
253 #else |
|
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
254 if (awaymessage) |
|
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
255 aim_bos_setprofile(gaim_sess, gaim_conn, info, |
|
276
9e6fc62490cd
[gaim-migrate @ 286]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
273
diff
changeset
|
256 awaymessage->message, gaim_caps); |
|
243
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
257 else |
|
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
258 aim_bos_setprofile(gaim_sess, gaim_conn, info, |
|
276
9e6fc62490cd
[gaim-migrate @ 286]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
273
diff
changeset
|
259 NULL, gaim_caps); |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
260 #endif |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
261 } |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
262 |
|
331
f3c8d79688db
[gaim-migrate @ 341]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
319
diff
changeset
|
263 extern gboolean change_password; |
|
f3c8d79688db
[gaim-migrate @ 341]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
319
diff
changeset
|
264 extern char *old_password; |
|
f3c8d79688db
[gaim-migrate @ 341]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
319
diff
changeset
|
265 extern char *new_password; |
|
f3c8d79688db
[gaim-migrate @ 341]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
319
diff
changeset
|
266 |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
267 void serv_change_passwd(char *orig, char *new) { |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
268 #ifndef USE_OSCAR |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
269 char *buf = g_malloc(BUF_LONG); |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
270 g_snprintf(buf, BUF_LONG, "toc_change_passwd %s %s", orig, new); |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
271 sflap_send(buf, strlen(buf), TYPE_DATA); |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
272 g_free(buf); |
|
331
f3c8d79688db
[gaim-migrate @ 341]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
319
diff
changeset
|
273 #else |
|
f3c8d79688db
[gaim-migrate @ 341]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
319
diff
changeset
|
274 if (change_password) return; |
|
f3c8d79688db
[gaim-migrate @ 341]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
319
diff
changeset
|
275 change_password = TRUE; |
|
f3c8d79688db
[gaim-migrate @ 341]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
319
diff
changeset
|
276 old_password = g_strdup(orig); |
|
f3c8d79688db
[gaim-migrate @ 341]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
319
diff
changeset
|
277 new_password = g_strdup(new); |
|
f3c8d79688db
[gaim-migrate @ 341]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
319
diff
changeset
|
278 aim_bos_reqservice(gaim_sess, gaim_conn, AIM_CONN_TYPE_AUTH); |
| 1 | 279 #endif |
| 280 } | |
| 281 | |
| 282 void serv_add_buddy(char *name) | |
| 283 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
284 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
285 char buf[1024]; |
| 1 | 286 g_snprintf(buf, sizeof(buf), "toc_add_buddy %s", normalize(name)); |
| 287 sflap_send(buf, -1, TYPE_DATA); | |
|
242
14fc16f579c8
[gaim-migrate @ 252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
288 #else |
|
14fc16f579c8
[gaim-migrate @ 252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
289 aim_add_buddy(gaim_sess, gaim_conn, name); |
| 1 | 290 #endif |
| 291 } | |
| 292 | |
| 293 void serv_add_buddies(GList *buddies) | |
| 294 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
295 #ifndef USE_OSCAR |
| 1 | 296 char buf[MSG_LEN]; |
| 297 int n, num = 0; | |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
298 |
| 1 | 299 n = g_snprintf(buf, sizeof(buf), "toc_add_buddy"); |
| 300 while(buddies) { | |
| 301 if (num == 20) { | |
| 302 sflap_send(buf, -1, TYPE_DATA); | |
| 303 n = g_snprintf(buf, sizeof(buf), "toc_add_buddy"); | |
| 304 num = 0; | |
| 305 } | |
| 306 ++num; | |
| 307 n += g_snprintf(buf + n, sizeof(buf) - n, " %s", normalize(buddies->data)); | |
| 308 buddies = buddies->next; | |
| 309 } | |
| 310 sflap_send(buf, -1, TYPE_DATA); | |
|
242
14fc16f579c8
[gaim-migrate @ 252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
311 #else |
|
319
cea40691706c
[gaim-migrate @ 329]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
318
diff
changeset
|
312 char buf[MSG_LEN]; |
|
cea40691706c
[gaim-migrate @ 329]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
318
diff
changeset
|
313 int n = 0; |
|
242
14fc16f579c8
[gaim-migrate @ 252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
314 while(buddies) { |
|
319
cea40691706c
[gaim-migrate @ 329]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
318
diff
changeset
|
315 if (n > MSG_LEN - 18) { |
|
cea40691706c
[gaim-migrate @ 329]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
318
diff
changeset
|
316 aim_bos_setbuddylist(gaim_sess, gaim_conn, buf); |
|
cea40691706c
[gaim-migrate @ 329]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
318
diff
changeset
|
317 n = 0; |
|
cea40691706c
[gaim-migrate @ 329]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
318
diff
changeset
|
318 } |
|
cea40691706c
[gaim-migrate @ 329]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
318
diff
changeset
|
319 n += g_snprintf(buf + n, sizeof(buf) - n, "%s&", buddies->data); |
|
242
14fc16f579c8
[gaim-migrate @ 252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
320 buddies = buddies->next; |
|
14fc16f579c8
[gaim-migrate @ 252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
321 } |
|
319
cea40691706c
[gaim-migrate @ 329]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
318
diff
changeset
|
322 aim_bos_setbuddylist(gaim_sess, gaim_conn, buf); |
| 1 | 323 #endif |
| 324 } | |
| 325 | |
| 326 | |
| 327 void serv_remove_buddy(char *name) | |
| 328 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
329 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
330 char buf[1024]; |
| 1 | 331 g_snprintf(buf, sizeof(buf), "toc_remove_buddy %s", normalize(name)); |
| 332 sflap_send(buf, -1, TYPE_DATA); | |
|
242
14fc16f579c8
[gaim-migrate @ 252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
333 #else |
|
14fc16f579c8
[gaim-migrate @ 252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
334 aim_remove_buddy(gaim_sess, gaim_conn, name); |
| 1 | 335 #endif |
| 336 } | |
| 337 | |
| 338 void serv_add_permit(char *name) | |
| 339 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
340 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
341 char buf[1024]; |
| 1 | 342 g_snprintf(buf, sizeof(buf), "toc_add_permit %s", normalize(name)); |
| 343 sflap_send(buf, -1, TYPE_DATA); | |
|
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
243
diff
changeset
|
344 #else |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
243
diff
changeset
|
345 serv_set_permit_deny(); |
| 1 | 346 #endif |
| 347 } | |
| 348 | |
| 349 | |
| 350 | |
| 351 void serv_add_deny(char *name) | |
| 352 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
353 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
354 char buf[1024]; |
| 1 | 355 g_snprintf(buf, sizeof(buf), "toc_add_deny %s", normalize(name)); |
| 356 sflap_send(buf, -1, TYPE_DATA); | |
|
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
243
diff
changeset
|
357 #else |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
243
diff
changeset
|
358 serv_set_permit_deny(); |
| 1 | 359 #endif |
| 360 } | |
| 361 | |
| 362 | |
| 363 | |
| 364 void serv_set_permit_deny() | |
| 365 { | |
|
281
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
366 #ifndef USE_OSCAR |
| 1 | 367 char buf[MSG_LEN]; |
| 368 int at; | |
| 369 GList *list; | |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
370 |
|
318
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
371 if (permdeny == 1 || permdeny == 4) { |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
372 g_snprintf(buf, sizeof(buf), "toc_add_deny"); |
| 1 | 373 sflap_send(buf, -1, TYPE_DATA); |
| 374 } else { | |
|
318
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
375 g_snprintf(buf, sizeof(buf), "toc_add_permit"); |
| 1 | 376 sflap_send(buf, -1, TYPE_DATA); |
| 377 } | |
| 378 | |
| 379 | |
|
318
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
380 if (permit) { |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
381 at = g_snprintf(buf, sizeof(buf), "toc_add_permit"); |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
382 list = permit; |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
383 while(list) { |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
384 at += g_snprintf(&buf[at], sizeof(buf) - at, " %s", normalize(list->data)); |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
385 list = list->next; |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
386 } |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
387 buf[at] = 0; |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
388 sflap_send(buf, -1, TYPE_DATA); |
| 1 | 389 } |
| 390 | |
|
318
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
391 if (deny) { |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
392 at = g_snprintf(buf, sizeof(buf), "toc_add_deny"); |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
393 list = deny; |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
394 while(list) { |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
395 at += g_snprintf(&buf[at], sizeof(buf) - at, " %s", normalize(list->data)); |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
396 list = list->next; |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
397 } |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
398 buf[at] = 0; |
|
35796808896a
[gaim-migrate @ 328]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
314
diff
changeset
|
399 sflap_send(buf, -1, TYPE_DATA); |
| 1 | 400 } |
|
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
243
diff
changeset
|
401 #else |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
243
diff
changeset
|
402 /* oscar requires us to do everyone at once (?) */ |
|
265
59f1748b09a6
[gaim-migrate @ 275]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
263
diff
changeset
|
403 /* I think this code is OK now. */ |
|
281
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
404 char buf[BUF_LONG]; int at; GList *list, *grp, *bud; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
405 if (permdeny == 3) { /* Permit Some : Only people on buddy list and |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
406 on permit list */ |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
407 struct group *g; struct buddy *b; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
408 at = 0; list = permit; grp = groups; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
409 debug_print("Setting permit list...\n"); |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
410 while (grp) { |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
411 g = (struct group *)grp->data; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
412 bud = g->members; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
413 while (bud) { |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
414 b = (struct buddy *)bud->data; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
415 at += g_snprintf(&buf[at], sizeof(buf) - at, |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
416 "%s&", b->name); |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
417 bud = bud->next; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
418 } |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
419 grp = grp->next; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
420 } |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
421 while (list) { |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
422 at += g_snprintf(&buf[at], sizeof(buf) - at, "%s&", |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
423 list->data); |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
424 list = list->next; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
425 } |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
426 aim_bos_changevisibility(gaim_sess, gaim_conn, |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
427 AIM_VISIBILITYCHANGE_PERMITADD, buf); |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
428 } else { /* Deny Some : Deny people on deny list */ |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
429 list = deny; at = 0; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
430 if (list == NULL) return; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
431 while (list) { |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
432 at += g_snprintf(&buf[at], sizeof(buf) - at, "%s&", |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
433 list->data); |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
434 list = list->next; |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
435 } |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
436 aim_bos_changevisibility(gaim_sess, gaim_conn, |
|
7b06ba09ffe2
[gaim-migrate @ 291]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
280
diff
changeset
|
437 AIM_VISIBILITYCHANGE_DENYADD, buf); |
|
280
e606585a38bd
[gaim-migrate @ 290]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
276
diff
changeset
|
438 } |
| 1 | 439 #endif |
| 440 } | |
| 441 | |
| 442 void serv_set_idle(int time) | |
| 443 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
444 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
445 char buf[256]; |
| 1 | 446 g_snprintf(buf, sizeof(buf), "toc_set_idle %d", time); |
| 447 sflap_send(buf, -1, TYPE_DATA); | |
|
243
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
448 #else |
|
3414ff74cb0f
[gaim-migrate @ 253]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
242
diff
changeset
|
449 aim_bos_setidle(gaim_sess, gaim_conn, time); |
| 1 | 450 #endif |
| 451 } | |
| 452 | |
| 453 | |
| 454 void serv_warn(char *name, int anon) | |
| 455 { | |
| 456 #ifndef USE_OSCAR | |
| 457 char *send = g_malloc(256); | |
| 458 g_snprintf(send, 255, "toc_evil %s %s", name, | |
| 459 ((anon) ? "anon" : "norm")); | |
| 460 sflap_send(send, -1, TYPE_DATA); | |
| 461 g_free(send); | |
| 462 #endif | |
| 463 } | |
| 464 | |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
465 void serv_build_config(char *buf, int len) { |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
466 toc_build_config(buf, len); |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
467 } |
|
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
468 |
| 1 | 469 |
| 470 void serv_save_config() | |
| 471 { | |
| 472 #ifndef USE_OSCAR | |
| 473 char *buf = g_malloc(BUF_LONG); | |
| 474 char *buf2 = g_malloc(MSG_LEN); | |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
475 serv_build_config(buf, BUF_LONG / 2); |
| 1 | 476 g_snprintf(buf2, MSG_LEN, "toc_set_config {%s}", buf); |
| 477 sflap_send(buf2, -1, TYPE_DATA); | |
| 478 g_free(buf2); | |
| 479 g_free(buf); | |
| 480 #endif | |
| 481 } | |
| 482 | |
| 483 | |
| 484 void serv_accept_chat(int i) | |
| 485 { | |
| 486 #ifndef USE_OSCAR | |
| 487 char *buf = g_malloc(256); | |
| 488 g_snprintf(buf, 255, "toc_chat_accept %d", i); | |
| 489 sflap_send(buf, -1, TYPE_DATA); | |
| 490 g_free(buf); | |
|
252
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
491 #else |
|
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
492 /* this should never get called because libfaim doesn't use the id |
|
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
493 * (i'm not even sure Oscar does). go through serv_join_chat instead */ |
| 1 | 494 #endif |
| 495 } | |
| 496 | |
| 497 void serv_join_chat(int exchange, char *name) | |
| 498 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
499 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
500 char buf[BUF_LONG]; |
| 1 | 501 g_snprintf(buf, sizeof(buf)/2, "toc_chat_join %d \"%s\"", exchange, name); |
| 502 sflap_send(buf, -1, TYPE_DATA); | |
|
248
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
503 #else |
|
302
61894ab8c47e
[gaim-migrate @ 312]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
283
diff
changeset
|
504 sprintf(debug_buff, "Attempting to join chat room %s.\n", name); |
|
61894ab8c47e
[gaim-migrate @ 312]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
283
diff
changeset
|
505 debug_print(debug_buff); |
|
312
3069be4c291e
[gaim-migrate @ 322]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
302
diff
changeset
|
506 /* aim_bos_reqservice(gaim_sess, gaim_conn, AIM_CONN_TYPE_CHATNAV); */ |
|
314
f6183455b855
[gaim-migrate @ 324]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
313
diff
changeset
|
507 /* aim_chatnav_createroom(gaim_sess, aim_getconn_type(gaim_sess, AIM_CONN_TYPE_CHATNAV), name, 0x0004); */ |
|
248
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
508 aim_chat_join(gaim_sess, gaim_conn, 0x0004, name); |
| 1 | 509 #endif |
| 510 } | |
| 511 | |
| 512 void serv_chat_invite(int id, char *message, char *name) | |
| 513 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
514 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
515 char buf[BUF_LONG]; |
| 1 | 516 g_snprintf(buf, sizeof(buf)/2, "toc_chat_invite %d \"%s\" %s", id, message, normalize(name)); |
| 517 sflap_send(buf, -1, TYPE_DATA); | |
|
258
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
518 #else |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
519 GList *bcs = buddy_chats; |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
520 struct buddy_chat *b = NULL; |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
521 |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
522 while (bcs) { |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
523 b = (struct buddy_chat *)bcs->data; |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
524 if (id == b->id) |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
525 break; |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
526 bcs = bcs->next; |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
527 b = NULL; |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
528 } |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
529 |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
530 if (!b) |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
531 return; |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
532 |
|
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
533 aim_chat_invite(gaim_sess, gaim_conn, name, message, 0x4, b->name, 0x1); |
| 1 | 534 #endif |
| 535 } | |
| 536 | |
| 537 void serv_chat_leave(int id) | |
| 538 { | |
| 539 #ifndef USE_OSCAR | |
| 540 char *buf = g_malloc(256); | |
| 541 g_snprintf(buf, 255, "toc_chat_leave %d", id); | |
| 542 sflap_send(buf, -1, TYPE_DATA); | |
| 543 g_free(buf); | |
|
248
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
544 #else |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
545 GList *bcs = buddy_chats; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
546 struct buddy_chat *b = NULL; |
|
312
3069be4c291e
[gaim-migrate @ 322]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
302
diff
changeset
|
547 struct chat_connection *c = NULL; |
|
248
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
548 |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
549 while (bcs) { |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
550 b = (struct buddy_chat *)bcs->data; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
551 if (id == b->id) |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
552 break; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
553 bcs = bcs->next; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
554 b = NULL; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
555 } |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
556 |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
557 if (!b) |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
558 return; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
559 |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
560 aim_chat_leaveroom(gaim_sess, b->name); |
|
312
3069be4c291e
[gaim-migrate @ 322]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
302
diff
changeset
|
561 c = find_oscar_chat(b->name); |
|
3069be4c291e
[gaim-migrate @ 322]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
302
diff
changeset
|
562 if (c != NULL) { |
|
3069be4c291e
[gaim-migrate @ 322]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
302
diff
changeset
|
563 oscar_chats = g_list_remove(oscar_chats, c); |
|
3069be4c291e
[gaim-migrate @ 322]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
302
diff
changeset
|
564 gdk_input_remove(c->inpa); |
|
3069be4c291e
[gaim-migrate @ 322]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
302
diff
changeset
|
565 g_free(c->name); |
|
3069be4c291e
[gaim-migrate @ 322]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
302
diff
changeset
|
566 g_free(c); |
|
3069be4c291e
[gaim-migrate @ 322]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
302
diff
changeset
|
567 } |
| 1 | 568 #endif |
| 569 } | |
| 570 | |
| 571 void serv_chat_whisper(int id, char *who, char *message) | |
| 572 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
573 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
574 char buf2[MSG_LEN]; |
| 1 | 575 g_snprintf(buf2, sizeof(buf2), "toc_chat_whisper %d %s \"%s\"", id, who, message); |
| 576 sflap_send(buf2, -1, TYPE_DATA); | |
|
248
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
577 #else |
|
338
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
335
diff
changeset
|
578 do_error_dialog("Sorry, Oscar doesn't whisper. Send an IM. (The last message was not received.)", |
|
258
1eeece1c7b7b
[gaim-migrate @ 268]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
256
diff
changeset
|
579 "Gaim - Chat"); |
| 1 | 580 #endif |
| 581 } | |
| 582 | |
| 583 void serv_chat_send(int id, char *message) | |
| 584 { | |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
585 #ifndef USE_OSCAR |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
200
diff
changeset
|
586 char buf[MSG_LEN]; |
| 1 | 587 g_snprintf(buf, sizeof(buf), "toc_chat_send %d \"%s\"",id, message); |
| 588 sflap_send(buf, -1, TYPE_DATA); | |
|
248
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
589 #else |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
590 struct aim_conn_t *cn; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
591 GList *bcs = buddy_chats; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
592 struct buddy_chat *b = NULL; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
593 |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
594 while (bcs) { |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
595 b = (struct buddy_chat *)bcs->data; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
596 if (id == b->id) |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
597 break; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
598 bcs = bcs->next; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
599 b = NULL; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
600 } |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
601 if (!b) |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
602 return; |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
603 |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
604 cn = aim_chat_getconn(gaim_sess, b->name); |
|
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
605 aim_chat_send_im(gaim_sess, cn, message); |
| 1 | 606 #endif |
| 607 } | |
| 608 | |
| 609 | |
| 610 | |
| 611 | |
| 612 void serv_got_im(char *name, char *message, int away) | |
| 613 { | |
| 614 struct conversation *cnv; | |
| 615 int is_idle = -1; | |
| 616 int new_conv = 0; | |
| 617 char *nname; | |
| 618 | |
|
94
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
619 #ifdef GAIM_PLUGINS |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
620 GList *c = callbacks; |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
621 struct gaim_callback *g; |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
622 void (*function)(char **, char **, void *); |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
623 while (c) { |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
624 g = (struct gaim_callback *)c->data; |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
625 if (g->event == event_im_recv && g->function != NULL) { |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
626 function = g->function; |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
627 /* I can guarantee you this is wrong */ |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
628 (*function)(&name, &message, g->data); |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
629 } |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
630 c = c->next; |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
631 } |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
632 /* make sure no evil plugin is trying to crash gaim */ |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
633 if (message == NULL) |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
634 return; |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
635 #endif |
|
9f6ce50ffb78
[gaim-migrate @ 104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
79
diff
changeset
|
636 |
| 1 | 637 nname = g_strdup(normalize(name)); |
| 638 | |
|
171
789c792ed14b
[gaim-migrate @ 181]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
145
diff
changeset
|
639 if (!strcasecmp(normalize(current_user->username), nname)) { |
| 1 | 640 if (!strcmp(message, LAGOMETER_STR)) { |
| 641 struct timeval tv; | |
| 642 int ms; | |
| 643 | |
| 644 gettimeofday(&tv, NULL); | |
| 645 | |
| 646 ms = 1000000 * (tv.tv_sec - lag_tv.tv_sec); | |
| 647 | |
| 648 ms += tv.tv_usec - lag_tv.tv_usec; | |
| 649 | |
| 650 update_lagometer(ms); | |
| 651 g_free(nname); | |
| 652 return; | |
| 653 } | |
| 14 | 654 } |
| 1 | 655 g_free(nname); |
| 656 | |
| 657 cnv = find_conversation(name); | |
|
145
41bd1cd48571
[gaim-migrate @ 155]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
136
diff
changeset
|
658 if (away) away = WFLAG_AUTO; |
| 1 | 659 |
| 660 if (awaymessage != NULL) { | |
| 661 if (!(general_options & OPT_GEN_DISCARD_WHEN_AWAY)) { | |
| 662 if (cnv == NULL) { | |
| 663 new_conv = 1; | |
| 664 cnv = new_conversation(name); | |
| 665 } | |
| 666 } | |
| 667 if (cnv != NULL) { | |
| 668 if (sound_options & OPT_SOUND_WHEN_AWAY) | |
| 669 play_sound(AWAY); | |
|
145
41bd1cd48571
[gaim-migrate @ 155]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
136
diff
changeset
|
670 write_to_conv(cnv, message, away | WFLAG_RECV); |
| 1 | 671 } |
| 672 | |
| 673 } else { | |
| 674 if (cnv == NULL) { | |
| 675 new_conv = 1; | |
| 676 cnv = new_conversation(name); | |
| 677 } | |
| 678 if (new_conv && (sound_options & OPT_SOUND_FIRST_RCV)) { | |
| 679 play_sound(FIRST_RECEIVE); | |
| 680 } else { | |
| 681 if (cnv->makesound && (sound_options & OPT_SOUND_RECV)) | |
| 682 play_sound(RECEIVE); | |
| 683 } | |
|
145
41bd1cd48571
[gaim-migrate @ 155]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
136
diff
changeset
|
684 write_to_conv(cnv, message, away | WFLAG_RECV); |
| 1 | 685 } |
| 686 | |
| 687 | |
| 688 | |
| 689 | |
| 690 if (awaymessage != NULL) { | |
| 691 time_t t; | |
|
263
8aa7368baae7
[gaim-migrate @ 273]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
260
diff
changeset
|
692 char tmpmsg[BUF_LEN]; |
| 1 | 693 |
| 694 time(&t); | |
| 695 | |
| 696 | |
| 697 if ((cnv == NULL) || (t - cnv->sent_away) < 120) | |
| 698 return; | |
| 699 | |
| 700 cnv->sent_away = t; | |
| 701 | |
| 702 if (is_idle) | |
| 703 is_idle = -1; | |
| 704 | |
|
263
8aa7368baae7
[gaim-migrate @ 273]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
260
diff
changeset
|
705 strcpy(tmpmsg, awaymessage->message); |
|
8aa7368baae7
[gaim-migrate @ 273]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
260
diff
changeset
|
706 escape_text(tmpmsg); |
|
8aa7368baae7
[gaim-migrate @ 273]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
260
diff
changeset
|
707 escape_message(tmpmsg); |
|
8aa7368baae7
[gaim-migrate @ 273]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
260
diff
changeset
|
708 serv_send_im(name, tmpmsg, 1); |
| 1 | 709 |
| 710 if (is_idle == -1) | |
| 711 is_idle = 1; | |
| 712 | |
| 713 if (cnv != NULL) | |
| 714 write_to_conv(cnv, awaymessage->message, WFLAG_SEND | WFLAG_AUTO); | |
| 715 } | |
| 716 } | |
| 717 | |
| 718 | |
| 719 | |
| 720 void serv_got_update(char *name, int loggedin, int evil, time_t signon, time_t idle, int type) | |
| 721 { | |
| 722 struct buddy *b; | |
| 723 char *nname; | |
| 724 | |
| 725 b = find_buddy(name); | |
| 726 | |
| 727 nname = g_strdup(normalize(name)); | |
| 728 if (!strcasecmp(nname, normalize(current_user->username))) { | |
| 729 correction_time = (int)(signon - login_time); | |
| 730 update_all_buddies(); | |
| 25 | 731 if (!b) { |
| 732 g_free(nname); | |
| 1 | 733 return; |
| 25 | 734 } |
| 1 | 735 } |
| 736 | |
| 25 | 737 g_free(nname); |
| 1 | 738 |
| 739 if (!b) { | |
| 740 sprintf(debug_buff,"Error, no such person\n"); | |
| 741 debug_print(debug_buff); | |
| 742 return; | |
| 743 } | |
| 744 | |
| 745 /* This code will 'align' the name from the TOC */ | |
| 746 /* server with what's in our record. We want to */ | |
| 747 /* store things how THEY want it... */ | |
| 748 if (strcmp(name, b->name)) { | |
| 749 GList *cnv = conversations; | |
| 750 struct conversation *cv; | |
| 751 | |
| 752 char *who = g_malloc(80); | |
| 753 | |
| 754 strcpy(who, normalize(name)); | |
| 755 | |
| 756 while(cnv) { | |
| 757 cv = (struct conversation *)cnv->data; | |
| 758 if (!strcasecmp(who, normalize(cv->name))) { | |
| 759 g_snprintf(cv->name, sizeof(cv->name), "%s", name); | |
| 760 if (find_log_info(name) || (general_options & OPT_GEN_LOG_ALL)) | |
| 761 g_snprintf(who, 63, LOG_CONVERSATION_TITLE, name); | |
| 762 else | |
| 763 g_snprintf(who, 63, CONVERSATION_TITLE, name); | |
| 764 gtk_window_set_title(GTK_WINDOW(cv->window), who); | |
| 79 | 765 /* was g_free(buf), but break gives us that |
| 766 * and freeing twice is not good --Sumner */ | |
| 1 | 767 break; |
| 768 } | |
| 769 cnv = cnv->next; | |
| 770 } | |
| 45 | 771 g_free(who); |
| 1 | 772 g_snprintf(b->name, sizeof(b->name), "%s", name); |
| 773 /*gtk_label_set_text(GTK_LABEL(b->label), b->name);*/ | |
| 774 | |
| 775 /* okay lets save the new config... */ | |
| 776 | |
| 777 } | |
| 778 | |
| 779 b->idle = idle; | |
| 780 b->evil = evil; | |
|
136
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
781 #ifdef GAIM_PLUGINS |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
782 if ((b->uc & UC_UNAVAILABLE) && !(type & UC_UNAVAILABLE)) { |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
783 GList *c = callbacks; |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
784 struct gaim_callback *g; |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
785 void (*function)(char *, void *); |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
786 while (c) { |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
787 g = (struct gaim_callback *)c->data; |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
788 if (g->event == event_buddy_back && |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
789 g->function != NULL) { |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
790 function = g->function; |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
791 (*function)(b->name, g->data); |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
792 } |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
793 c = c->next; |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
794 } |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
795 } |
|
4e91b92f91a7
[gaim-migrate @ 146]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
115
diff
changeset
|
796 #endif |
| 1 | 797 b->uc = type; |
| 798 | |
| 799 b->signon = signon; | |
| 800 | |
| 801 if (loggedin) { | |
| 802 if (!b->present) { | |
| 803 b->present = 1; | |
| 804 do_pounce(b->name); | |
| 805 } | |
| 806 } else | |
| 807 b->present = 0; | |
| 808 | |
| 809 set_buddy(b); | |
| 810 } | |
| 811 | |
| 812 static | |
| 813 void close_warned(GtkWidget *w, GtkWidget *w2) | |
| 814 { | |
| 815 gtk_widget_destroy(w2); | |
| 816 } | |
| 817 | |
| 818 | |
| 819 | |
| 820 void serv_got_eviled(char *name, int lev) | |
| 821 { | |
| 822 char *buf2 = g_malloc(1024); | |
| 823 GtkWidget *d, *label, *close; | |
| 824 | |
| 825 | |
| 826 g_snprintf(buf2, 1023, "You have just been warned by %s.\nYour new warning level is %d./%%", | |
| 827 ((name == NULL) ? "an anonymous person" : name) , lev); | |
| 828 | |
| 829 | |
| 830 d = gtk_dialog_new(); | |
| 831 gtk_widget_realize(d); | |
| 832 aol_icon(d->window); | |
| 833 | |
| 834 label = gtk_label_new(buf2); | |
| 835 gtk_widget_show(label); | |
| 836 close = gtk_button_new_with_label("Close"); | |
| 837 gtk_widget_show(close); | |
| 838 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), | |
| 839 label, FALSE, FALSE, 5); | |
| 840 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), | |
| 841 close, FALSE, FALSE, 5); | |
| 842 | |
| 843 gtk_window_set_title(GTK_WINDOW(d), "Warned"); | |
| 844 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_warned), d); | |
| 845 gtk_widget_show(d); | |
| 846 } | |
| 847 | |
| 848 | |
| 849 | |
| 850 static void close_invite(GtkWidget *w, GtkWidget *w2) | |
| 851 { | |
| 852 gtk_widget_destroy(w2); | |
| 853 } | |
| 854 | |
| 855 static void chat_invite_callback(GtkWidget *w, GtkWidget *w2) | |
| 856 { | |
|
252
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
857 #ifndef USE_OSCAR |
| 1 | 858 int i = (int)gtk_object_get_user_data(GTK_OBJECT(w2)); |
| 859 serv_accept_chat(i); | |
| 860 gtk_widget_destroy(w2); | |
|
252
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
861 #else |
|
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
862 char *i = (char *)gtk_object_get_user_data(GTK_OBJECT(w2)); |
|
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
863 serv_join_chat(0, i); /* for oscar, it doesn't use the id anyway */ |
|
313
f6406aeb2691
[gaim-migrate @ 323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
312
diff
changeset
|
864 g_free(i); |
|
252
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
865 gtk_widget_destroy(w2); |
|
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
866 #endif |
| 1 | 867 } |
| 868 | |
| 869 | |
| 870 | |
| 871 void serv_got_chat_invite(char *name, int id, char *who, char *message) | |
| 872 { | |
| 873 GtkWidget *d; | |
| 874 GtkWidget *label; | |
| 875 GtkWidget *yesbtn; | |
| 876 GtkWidget *nobtn; | |
| 877 | |
| 878 char buf2[BUF_LONG]; | |
| 879 | |
| 880 | |
| 881 g_snprintf(buf2, sizeof(buf2), "User '%s' invites you to buddy chat room: '%s'\n%s", who, name, message); | |
| 882 | |
| 883 d = gtk_dialog_new(); | |
| 884 gtk_widget_realize(d); | |
| 885 aol_icon(d->window); | |
| 886 | |
| 887 | |
| 888 label = gtk_label_new(buf2); | |
| 889 gtk_widget_show(label); | |
| 890 yesbtn = gtk_button_new_with_label("Yes"); | |
| 891 gtk_widget_show(yesbtn); | |
| 892 nobtn = gtk_button_new_with_label("No"); | |
| 893 gtk_widget_show(nobtn); | |
| 894 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), | |
| 895 label, FALSE, FALSE, 5); | |
| 896 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), | |
| 897 yesbtn, FALSE, FALSE, 5); | |
| 898 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), | |
| 899 nobtn, FALSE, FALSE, 5); | |
| 900 | |
| 901 | |
| 902 /* gtk_widget_set_usize(d, 200, 110); */ | |
|
252
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
903 #ifndef USE_OSCAR |
| 1 | 904 gtk_object_set_user_data(GTK_OBJECT(d), (void *)id); |
|
252
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
905 #else |
|
313
f6406aeb2691
[gaim-migrate @ 323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
312
diff
changeset
|
906 gtk_object_set_user_data(GTK_OBJECT(d), (void *)g_strdup(name)); |
|
252
4a41f8323022
[gaim-migrate @ 262]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
249
diff
changeset
|
907 #endif |
| 1 | 908 |
| 909 | |
| 910 gtk_window_set_title(GTK_WINDOW(d), "Buddy chat invite"); | |
| 911 gtk_signal_connect(GTK_OBJECT(nobtn), "clicked", GTK_SIGNAL_FUNC(close_invite), d); | |
| 912 gtk_signal_connect(GTK_OBJECT(yesbtn), "clicked", GTK_SIGNAL_FUNC(chat_invite_callback), d); | |
| 913 | |
| 914 | |
| 915 gtk_widget_show(d); | |
| 916 } | |
| 917 | |
| 918 void serv_got_joined_chat(int id, char *name) | |
| 919 { | |
| 920 struct buddy_chat *b; | |
| 921 | |
| 922 b = (struct buddy_chat *)g_new0(struct buddy_chat, 1); | |
| 923 buddy_chats = g_list_append(buddy_chats, b); | |
| 924 | |
| 925 b->ignored = NULL; | |
| 926 b->in_room = NULL; | |
| 927 b->id = id; | |
| 928 g_snprintf(b->name, 80, "%s", name); | |
| 929 show_new_buddy_chat(b); | |
| 930 } | |
| 931 | |
| 932 void serv_got_chat_left(int id) | |
| 933 { | |
| 934 GList *bcs = buddy_chats; | |
| 935 struct buddy_chat *b = NULL; | |
| 936 | |
| 937 | |
| 938 while(bcs) { | |
| 939 b = (struct buddy_chat *)bcs->data; | |
| 940 if (id == b->id) { | |
| 941 break; | |
| 942 } | |
| 943 b = NULL; | |
| 944 bcs = bcs->next; | |
| 945 } | |
| 946 | |
| 947 if (!b) | |
| 948 return; | |
| 949 | |
| 950 if (b->window) | |
| 951 gtk_widget_destroy(GTK_WIDGET(b->window)); | |
| 952 | |
| 953 buddy_chats = g_list_remove(buddy_chats, b); | |
| 954 | |
| 955 g_free(b); | |
| 956 } | |
| 957 | |
| 958 void serv_got_chat_in(int id, char *who, int whisper, char *message) | |
| 959 { | |
| 960 int w; | |
| 961 GList *bcs = buddy_chats; | |
| 962 struct buddy_chat *b = NULL; | |
| 963 | |
| 964 while(bcs) { | |
| 965 b = (struct buddy_chat *)bcs->data; | |
| 966 if (id == b->id) | |
| 967 break; | |
| 968 bcs = bcs->next; | |
| 969 b = NULL; | |
| 970 | |
| 971 } | |
| 972 if (!b) | |
| 973 return; | |
| 974 | |
| 975 if (whisper) | |
| 976 w = WFLAG_WHISPER; | |
| 977 else | |
| 978 w = 0; | |
| 979 | |
| 980 chat_write(b, who, w, message); | |
| 981 } | |
| 982 | |
|
260
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
983 void serv_rvous_accept(char *name, char *cookie, char *uid) |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
984 { |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
985 #ifndef USE_OSCAR |
|
260
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
986 char buf[MSG_LEN]; |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
987 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
|
988 cookie, uid); |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
989 sflap_send(buf, strlen(buf), TYPE_DATA); |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
990 #endif |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
991 } |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
992 |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
993 void serv_rvous_cancel(char *name, char *cookie, char *uid) |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
994 { |
|
273
4c6c213646a3
[gaim-migrate @ 283]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
270
diff
changeset
|
995 #ifndef USE_OSCAR |
|
260
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
996 char buf[MSG_LEN]; |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
997 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
|
998 cookie, uid); |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
999 sflap_send(buf, strlen(buf), TYPE_DATA); |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
1000 #endif |
|
325d9804df10
[gaim-migrate @ 270]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
258
diff
changeset
|
1001 } |
