Tue, 06 Jun 2000 09:55:30 +0000
[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).
| 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
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
335
diff
changeset
|
31 | #include <aim.h> |
|
276
60d81c158356
[gaim-migrate @ 286]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
476adbe0c517
[gaim-migrate @ 252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
237
diff
changeset
|
57 | #else |
|
476adbe0c517
[gaim-migrate @ 252]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
b3df3f8d922c
[gaim-migrate @ 181]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
145
diff
changeset
|
86 | if (general_options & OPT_GEN_SHOW_LAGMETER) |
|
181
6a367d1ed782
[gaim-migrate @ 191]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
101 | #ifdef GAIM_PLUGINS |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
102 | { |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
103 | GList *c = callbacks; |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
104 | struct gaim_callback *g; |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
105 | void (*function)(void *); |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
106 | while (c) { |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
107 | g = (struct gaim_callback *)c->data; |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
108 | if (g->event == event_blist_update && |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
109 | g->function != NULL) { |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
110 | function = g->function; |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
111 | (*function)(g->data); |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
112 | } |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
113 | c = c->next; |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
114 | } |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
101
diff
changeset
|
115 | } |
|
dec7a64f1b0f
[gaim-migrate @ 125]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
156 | #ifndef USE_OSCAR |
| 1 | 157 | char buf[MSG_LEN - 7]; |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
2951c0306e5a
[gaim-migrate @ 312]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
283
diff
changeset
|
163 | if (away) |
|
2951c0306e5a
[gaim-migrate @ 312]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
283
diff
changeset
|
164 | aim_send_im(gaim_sess, gaim_conn, name, AIM_IMFLAGS_AWAY, message); |
|
2951c0306e5a
[gaim-migrate @ 312]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
283
diff
changeset
|
165 | else |
|
2951c0306e5a
[gaim-migrate @ 312]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
174 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
178 | #else |
|
249
14b7e4f943ff
[gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
248
diff
changeset
|
179 | aim_getinfo(gaim_sess, gaim_conn, name, AIM_GETINFO_GENERALINFO); |
|
14b7e4f943ff
[gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
248
diff
changeset
|
180 | #endif |
|
14b7e4f943ff
[gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
248
diff
changeset
|
181 | } |
|
14b7e4f943ff
[gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
248
diff
changeset
|
182 | |
|
14b7e4f943ff
[gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
248
diff
changeset
|
183 | void serv_get_away_msg(char *name) |
|
14b7e4f943ff
[gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
248
diff
changeset
|
184 | { |
|
273
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
185 | #ifndef USE_OSCAR |
|
249
14b7e4f943ff
[gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
248
diff
changeset
|
186 | char buf[MSG_LEN]; |
|
14b7e4f943ff
[gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
248
diff
changeset
|
187 | /* HAHA! TOC doesn't have this yet */ |
|
14b7e4f943ff
[gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
248
diff
changeset
|
188 | #else |
|
14b7e4f943ff
[gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
195 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
205 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
219 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
225 | #else |
|
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
226 | if (strlen(email)) |
|
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
234 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
aa9fbd9e68a3
[gaim-migrate @ 210]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
181
diff
changeset
|
239 | g_snprintf(buf, MSG_LEN, "toc_set_away \"\""); |
| 1 | 240 | sflap_send(buf, -1, TYPE_DATA); |
|
243
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
241 | #else |
|
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
242 | aim_bos_setprofile(gaim_sess, gaim_conn, current_user->user_info, |
|
276
60d81c158356
[gaim-migrate @ 286]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
273
diff
changeset
|
243 | message, gaim_caps); |
| 1 | 244 | #endif |
| 245 | } | |
| 246 | ||
| 247 | void serv_set_info(char *info) | |
| 248 | { | |
|
273
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
253 | #else |
|
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
254 | if (awaymessage) |
|
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
255 | aim_bos_setprofile(gaim_sess, gaim_conn, info, |
|
276
60d81c158356
[gaim-migrate @ 286]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
273
diff
changeset
|
256 | awaymessage->message, gaim_caps); |
|
243
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
257 | else |
|
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
258 | aim_bos_setprofile(gaim_sess, gaim_conn, info, |
|
276
60d81c158356
[gaim-migrate @ 286]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
273
diff
changeset
|
259 | NULL, gaim_caps); |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
260 | #endif |
|
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
261 | } |
|
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
262 | |
|
331
a89ce2ecac3e
[gaim-migrate @ 341]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
319
diff
changeset
|
263 | extern gboolean change_password; |
|
a89ce2ecac3e
[gaim-migrate @ 341]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
319
diff
changeset
|
264 | extern char *old_password; |
|
a89ce2ecac3e
[gaim-migrate @ 341]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
319
diff
changeset
|
265 | extern char *new_password; |
|
a89ce2ecac3e
[gaim-migrate @ 341]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
319
diff
changeset
|
266 | |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
267 | void serv_change_passwd(char *orig, char *new) { |
|
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
268 | #ifndef USE_OSCAR |
|
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
269 | char *buf = g_malloc(BUF_LONG); |
|
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
270 | g_snprintf(buf, BUF_LONG, "toc_change_passwd %s %s", orig, new); |
|
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
271 | sflap_send(buf, strlen(buf), TYPE_DATA); |
|
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
272 | g_free(buf); |
|
331
a89ce2ecac3e
[gaim-migrate @ 341]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
319
diff
changeset
|
273 | #else |
|
a89ce2ecac3e
[gaim-migrate @ 341]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
319
diff
changeset
|
274 | if (change_password) return; |
|
a89ce2ecac3e
[gaim-migrate @ 341]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
319
diff
changeset
|
275 | change_password = TRUE; |
|
a89ce2ecac3e
[gaim-migrate @ 341]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
319
diff
changeset
|
276 | old_password = g_strdup(orig); |
|
a89ce2ecac3e
[gaim-migrate @ 341]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
319
diff
changeset
|
277 | new_password = g_strdup(new); |
|
a89ce2ecac3e
[gaim-migrate @ 341]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
284 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
476adbe0c517
[gaim-migrate @ 252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
237
diff
changeset
|
288 | #else |
|
476adbe0c517
[gaim-migrate @ 252]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
295 | #ifndef USE_OSCAR |
| 1 | 296 | char buf[MSG_LEN]; |
| 297 | int n, num = 0; | |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
476adbe0c517
[gaim-migrate @ 252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
237
diff
changeset
|
311 | #else |
|
319
2d1a56492e4e
[gaim-migrate @ 329]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
318
diff
changeset
|
312 | char buf[MSG_LEN]; |
|
2d1a56492e4e
[gaim-migrate @ 329]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
318
diff
changeset
|
313 | int n = 0; |
|
242
476adbe0c517
[gaim-migrate @ 252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
237
diff
changeset
|
314 | while(buddies) { |
|
319
2d1a56492e4e
[gaim-migrate @ 329]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
318
diff
changeset
|
315 | if (n > MSG_LEN - 18) { |
|
2d1a56492e4e
[gaim-migrate @ 329]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
318
diff
changeset
|
316 | aim_bos_setbuddylist(gaim_sess, gaim_conn, buf); |
|
2d1a56492e4e
[gaim-migrate @ 329]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
318
diff
changeset
|
317 | n = 0; |
|
2d1a56492e4e
[gaim-migrate @ 329]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
318
diff
changeset
|
318 | } |
|
2d1a56492e4e
[gaim-migrate @ 329]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
318
diff
changeset
|
319 | n += g_snprintf(buf + n, sizeof(buf) - n, "%s&", buddies->data); |
|
242
476adbe0c517
[gaim-migrate @ 252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
237
diff
changeset
|
320 | buddies = buddies->next; |
|
476adbe0c517
[gaim-migrate @ 252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
237
diff
changeset
|
321 | } |
|
319
2d1a56492e4e
[gaim-migrate @ 329]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
329 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
476adbe0c517
[gaim-migrate @ 252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
237
diff
changeset
|
333 | #else |
|
476adbe0c517
[gaim-migrate @ 252]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
340 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
72198f34b362
[gaim-migrate @ 257]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
243
diff
changeset
|
344 | #else |
|
72198f34b362
[gaim-migrate @ 257]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
353 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
72198f34b362
[gaim-migrate @ 257]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
243
diff
changeset
|
357 | #else |
|
72198f34b362
[gaim-migrate @ 257]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
243
diff
changeset
|
358 | serv_set_permit_deny(); |
| 1 | 359 | #endif |
| 360 | } | |
| 361 | ||
| 362 | ||
| 363 | ||
| 364 | void serv_set_permit_deny() | |
| 365 | { | |
|
281
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
366 | #ifndef USE_OSCAR |
| 1 | 367 | char buf[MSG_LEN]; |
| 368 | int at; | |
| 369 | GList *list; | |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
370 | |
|
318
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
371 | if (permdeny == 1 || permdeny == 4) { |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
372 | g_snprintf(buf, sizeof(buf), "toc_add_deny"); |
| 1 | 373 | sflap_send(buf, -1, TYPE_DATA); |
| 374 | } else { | |
|
318
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
380 | if (permit) { |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
381 | at = g_snprintf(buf, sizeof(buf), "toc_add_permit"); |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
382 | list = permit; |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
383 | while(list) { |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
384 | at += g_snprintf(&buf[at], sizeof(buf) - at, " %s", normalize(list->data)); |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
385 | list = list->next; |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
386 | } |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
387 | buf[at] = 0; |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
388 | sflap_send(buf, -1, TYPE_DATA); |
| 1 | 389 | } |
| 390 | ||
|
318
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
391 | if (deny) { |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
392 | at = g_snprintf(buf, sizeof(buf), "toc_add_deny"); |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
393 | list = deny; |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
394 | while(list) { |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
395 | at += g_snprintf(&buf[at], sizeof(buf) - at, " %s", normalize(list->data)); |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
396 | list = list->next; |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
397 | } |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
398 | buf[at] = 0; |
|
7d5334abed19
[gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
314
diff
changeset
|
399 | sflap_send(buf, -1, TYPE_DATA); |
| 1 | 400 | } |
|
247
72198f34b362
[gaim-migrate @ 257]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
243
diff
changeset
|
401 | #else |
|
72198f34b362
[gaim-migrate @ 257]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
243
diff
changeset
|
402 | /* oscar requires us to do everyone at once (?) */ |
|
265
6e9ad85d490d
[gaim-migrate @ 275]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
263
diff
changeset
|
403 | /* I think this code is OK now. */ |
|
281
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
404 | char buf[BUF_LONG]; int at; GList *list, *grp, *bud; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
405 | if (permdeny == 3) { /* Permit Some : Only people on buddy list and |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
406 | on permit list */ |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
407 | struct group *g; struct buddy *b; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
408 | at = 0; list = permit; grp = groups; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
409 | debug_print("Setting permit list...\n"); |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
410 | while (grp) { |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
411 | g = (struct group *)grp->data; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
412 | bud = g->members; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
413 | while (bud) { |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
414 | b = (struct buddy *)bud->data; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
415 | at += g_snprintf(&buf[at], sizeof(buf) - at, |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
416 | "%s&", b->name); |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
417 | bud = bud->next; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
418 | } |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
419 | grp = grp->next; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
420 | } |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
421 | while (list) { |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
422 | at += g_snprintf(&buf[at], sizeof(buf) - at, "%s&", |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
423 | list->data); |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
424 | list = list->next; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
425 | } |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
426 | aim_bos_changevisibility(gaim_sess, gaim_conn, |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
427 | AIM_VISIBILITYCHANGE_PERMITADD, buf); |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
428 | } else { /* Deny Some : Deny people on deny list */ |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
429 | list = deny; at = 0; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
430 | if (list == NULL) return; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
431 | while (list) { |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
432 | at += g_snprintf(&buf[at], sizeof(buf) - at, "%s&", |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
433 | list->data); |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
434 | list = list->next; |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
435 | } |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
436 | aim_bos_changevisibility(gaim_sess, gaim_conn, |
|
fe895b9b04c1
[gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
280
diff
changeset
|
437 | AIM_VISIBILITYCHANGE_DENYADD, buf); |
|
280
5d99696bdeaa
[gaim-migrate @ 290]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
276
diff
changeset
|
438 | } |
| 1 | 439 | #endif |
| 440 | } | |
| 441 | ||
| 442 | void serv_set_idle(int time) | |
| 443 | { | |
|
273
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
444 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
242
diff
changeset
|
448 | #else |
|
7b462f4e88c6
[gaim-migrate @ 253]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
465 | void serv_build_config(char *buf, int len) { |
|
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
466 | toc_build_config(buf, len); |
|
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
200
diff
changeset
|
467 | } |
|
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
249
diff
changeset
|
491 | #else |
|
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
249
diff
changeset
|
492 | /* this should never get called because libfaim doesn't use the id |
|
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
499 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
503 | #else |
|
302
2951c0306e5a
[gaim-migrate @ 312]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
283
diff
changeset
|
504 | sprintf(debug_buff, "Attempting to join chat room %s.\n", name); |
|
2951c0306e5a
[gaim-migrate @ 312]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
283
diff
changeset
|
505 | debug_print(debug_buff); |
|
312
87ec460697c0
[gaim-migrate @ 322]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
302
diff
changeset
|
506 | /* aim_bos_reqservice(gaim_sess, gaim_conn, AIM_CONN_TYPE_CHATNAV); */ |
|
314
cffcc60c9fd0
[gaim-migrate @ 324]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
313
diff
changeset
|
507 | /* aim_chatnav_createroom(gaim_sess, aim_getconn_type(gaim_sess, AIM_CONN_TYPE_CHATNAV), name, 0x0004); */ |
|
248
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
514 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
518 | #else |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
519 | GList *bcs = buddy_chats; |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
520 | struct buddy_chat *b = NULL; |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
521 | |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
522 | while (bcs) { |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
523 | b = (struct buddy_chat *)bcs->data; |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
524 | if (id == b->id) |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
525 | break; |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
526 | bcs = bcs->next; |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
527 | b = NULL; |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
528 | } |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
529 | |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
530 | if (!b) |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
531 | return; |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
532 | |
|
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
544 | #else |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
545 | GList *bcs = buddy_chats; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
546 | struct buddy_chat *b = NULL; |
|
312
87ec460697c0
[gaim-migrate @ 322]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
302
diff
changeset
|
547 | struct chat_connection *c = NULL; |
|
248
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
548 | |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
549 | while (bcs) { |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
550 | b = (struct buddy_chat *)bcs->data; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
551 | if (id == b->id) |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
552 | break; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
553 | bcs = bcs->next; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
554 | b = NULL; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
555 | } |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
556 | |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
557 | if (!b) |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
558 | return; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
559 | |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
560 | aim_chat_leaveroom(gaim_sess, b->name); |
|
312
87ec460697c0
[gaim-migrate @ 322]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
302
diff
changeset
|
561 | c = find_oscar_chat(b->name); |
|
87ec460697c0
[gaim-migrate @ 322]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
302
diff
changeset
|
562 | if (c != NULL) { |
|
87ec460697c0
[gaim-migrate @ 322]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
302
diff
changeset
|
563 | oscar_chats = g_list_remove(oscar_chats, c); |
|
87ec460697c0
[gaim-migrate @ 322]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
302
diff
changeset
|
564 | gdk_input_remove(c->inpa); |
|
87ec460697c0
[gaim-migrate @ 322]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
302
diff
changeset
|
565 | g_free(c->name); |
|
87ec460697c0
[gaim-migrate @ 322]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
302
diff
changeset
|
566 | g_free(c); |
|
87ec460697c0
[gaim-migrate @ 322]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
302
diff
changeset
|
567 | } |
| 1 | 568 | #endif |
| 569 | } | |
| 570 | ||
| 571 | void serv_chat_whisper(int id, char *who, char *message) | |
| 572 | { | |
|
273
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
573 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
577 | #else |
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
335
diff
changeset
|
578 | do_error_dialog("Sorry, Oscar doesn't whisper. Send an IM. (The last message was not received.)", |
|
258
63b21fea6799
[gaim-migrate @ 268]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
256
diff
changeset
|
579 | "Gaim - Chat"); |
| 1 | 580 | #endif |
| 581 | } | |
| 582 | ||
| 583 | void serv_chat_send(int id, char *message) | |
| 584 | { | |
|
273
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
585 | #ifndef USE_OSCAR |
|
237
83ff5f92ee7e
[gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
589 | #else |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
590 | struct aim_conn_t *cn; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
591 | GList *bcs = buddy_chats; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
592 | struct buddy_chat *b = NULL; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
593 | |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
594 | while (bcs) { |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
595 | b = (struct buddy_chat *)bcs->data; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
596 | if (id == b->id) |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
597 | break; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
598 | bcs = bcs->next; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
599 | b = NULL; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
600 | } |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
601 | if (!b) |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
602 | return; |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
603 | |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
247
diff
changeset
|
604 | cn = aim_chat_getconn(gaim_sess, b->name); |
|
81f75c658111
[gaim-migrate @ 258]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
619 | #ifdef GAIM_PLUGINS |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
620 | GList *c = callbacks; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
621 | struct gaim_callback *g; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
622 | void (*function)(char **, char **, void *); |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
623 | while (c) { |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
624 | g = (struct gaim_callback *)c->data; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
625 | if (g->event == event_im_recv && g->function != NULL) { |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
626 | function = g->function; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
627 | /* I can guarantee you this is wrong */ |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
628 | (*function)(&name, &message, g->data); |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
629 | } |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
630 | c = c->next; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
631 | } |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
632 | /* make sure no evil plugin is trying to crash gaim */ |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
633 | if (message == NULL) |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
634 | return; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
635 | #endif |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
636 | |
| 1 | 637 | nname = g_strdup(normalize(name)); |
| 638 | ||
|
171
b3df3f8d922c
[gaim-migrate @ 181]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
57a926105cb7
[gaim-migrate @ 155]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
57a926105cb7
[gaim-migrate @ 155]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
57a926105cb7
[gaim-migrate @ 155]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
b7e1d3d50079
[gaim-migrate @ 273]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
b7e1d3d50079
[gaim-migrate @ 273]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
260
diff
changeset
|
705 | strcpy(tmpmsg, awaymessage->message); |
|
b7e1d3d50079
[gaim-migrate @ 273]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
260
diff
changeset
|
706 | escape_text(tmpmsg); |
|
b7e1d3d50079
[gaim-migrate @ 273]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
260
diff
changeset
|
707 | escape_message(tmpmsg); |
|
b7e1d3d50079
[gaim-migrate @ 273]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
781 | #ifdef GAIM_PLUGINS |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
782 | if ((b->uc & UC_UNAVAILABLE) && !(type & UC_UNAVAILABLE)) { |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
783 | GList *c = callbacks; |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
784 | struct gaim_callback *g; |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
785 | void (*function)(char *, void *); |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
786 | while (c) { |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
787 | g = (struct gaim_callback *)c->data; |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
788 | if (g->event == event_buddy_back && |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
789 | g->function != NULL) { |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
790 | function = g->function; |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
791 | (*function)(b->name, g->data); |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
792 | } |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
793 | c = c->next; |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
794 | } |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
115
diff
changeset
|
795 | } |
|
d8dee47cbeb7
[gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
249
diff
changeset
|
861 | #else |
|
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
249
diff
changeset
|
862 | char *i = (char *)gtk_object_get_user_data(GTK_OBJECT(w2)); |
|
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
249
diff
changeset
|
863 | serv_join_chat(0, i); /* for oscar, it doesn't use the id anyway */ |
|
313
caad53ed4d2d
[gaim-migrate @ 323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
312
diff
changeset
|
864 | g_free(i); |
|
252
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
249
diff
changeset
|
865 | gtk_widget_destroy(w2); |
|
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
249
diff
changeset
|
903 | #ifndef USE_OSCAR |
| 1 | 904 | gtk_object_set_user_data(GTK_OBJECT(d), (void *)id); |
|
252
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
249
diff
changeset
|
905 | #else |
|
313
caad53ed4d2d
[gaim-migrate @ 323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
312
diff
changeset
|
906 | gtk_object_set_user_data(GTK_OBJECT(d), (void *)g_strdup(name)); |
|
252
1748fe53bc71
[gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
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
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
983 | void serv_rvous_accept(char *name, char *cookie, char *uid) |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
984 | { |
|
273
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
985 | #ifndef USE_OSCAR |
|
260
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
986 | char buf[MSG_LEN]; |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
987 | g_snprintf(buf, MSG_LEN, "toc_rvous_accept %s %s %s", normalize(name), |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
988 | cookie, uid); |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
989 | sflap_send(buf, strlen(buf), TYPE_DATA); |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
990 | #endif |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
991 | } |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
992 | |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
993 | void serv_rvous_cancel(char *name, char *cookie, char *uid) |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
994 | { |
|
273
3796a8752962
[gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
270
diff
changeset
|
995 | #ifndef USE_OSCAR |
|
260
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
996 | char buf[MSG_LEN]; |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
997 | g_snprintf(buf, MSG_LEN, "toc_rvous_cancel %s %s %s", normalize(name), |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
998 | cookie, uid); |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
999 | sflap_send(buf, strlen(buf), TYPE_DATA); |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
1000 | #endif |
|
b145a72a016f
[gaim-migrate @ 270]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
258
diff
changeset
|
1001 | } |