src/server.c

Tue, 06 Jun 2000 09:55:30 +0000

author
Eric Warmenhoven <warmenhoven@yahoo.com>
date
Tue, 06 Jun 2000 09:55:30 +0000
changeset 338
21c93bc7ae83
parent 335
4efbe61200e7
child 349
6f7d28b0f98d
permissions
-rw-r--r--

[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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 * gaim
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * (at your option) any later version.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * GNU General Public License for more details.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
22 #include <time.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
23 #include <stdio.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
24 #include <string.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
25 #include <sys/types.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
26 #include <sys/stat.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
27 #include <sys/time.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
28 #include <unistd.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
29 #include <gtk/gtk.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
33 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
34 #include "gaim.h"
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
35
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
36 static int idle_timer = -1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
37 static time_t lastsent = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
38 static time_t login_time = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
39 static struct timeval lag_tv;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
40 static int is_idle = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
41
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
42 int correction_time = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
43
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
44 int serv_login(char *username, char *password)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
45 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
46 #ifndef USE_OSCAR
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
47 return toc_login(username, password);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
48 #else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
49 return oscar_login(username, password);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
50 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
51 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
52
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
53 void serv_close()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
54 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
55 #ifndef USE_OSCAR
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
59 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
60 gtk_timeout_remove(idle_timer);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
61 idle_timer = -1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
62 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
63
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
64
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
65 void serv_touch_idle()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
66 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
67 /* Are we idle? If so, not anymore */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
68 if (is_idle > 0) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
69 is_idle = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
70 serv_set_idle(0);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
71 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
72 time(&lastsent);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
73 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
74
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
75
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
76 static gint check_idle()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
77 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
78 time_t t;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
79
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
80 /* Not idle, really... :) */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
81 update_all_buddies();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
82
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
83 time(&t);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
84
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
88
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
89 if (report_idle != IDLE_GAIM)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
90 return TRUE;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
91
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
92
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
93 if (is_idle)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
94 return TRUE;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
95
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
96 if ((t - lastsent) > 600) { /* 15 minutes! */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
97 serv_set_idle((int)t - lastsent);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
98 is_idle = 1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
99 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
117
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
118 return TRUE;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
119
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
120 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
121
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
122
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
123 void serv_finish_login()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
124 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
125 char *buf;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
126
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
127 if (strlen(current_user->user_info)) {
79
d0d0ecf6fc03 [gaim-migrate @ 89]
G Sumner Hayes
parents: 45
diff changeset
128 buf = g_malloc(strlen(current_user->user_info) * 4);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
129 strcpy(buf, current_user->user_info);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
130 escape_text(buf);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
131 serv_set_info(buf);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
132 g_free(buf);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
133 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
134
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
135 if (idle_timer != -1)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
136 gtk_timeout_remove(idle_timer);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
137
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
138 idle_timer = gtk_timeout_add(20000, (GtkFunction)check_idle, NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
139 serv_touch_idle();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
140
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
141 time(&login_time);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
142
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
143 serv_add_buddy(current_user->username);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
144
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
145 if (!(general_options & OPT_GEN_REGISTERED))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
146 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
147 show_register_dialog();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
148 save_prefs();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
149 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
150 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
151
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
152
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
153
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
154 void serv_send_im(char *name, char *message, int away)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
155 {
273
3796a8752962 [gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 270
diff changeset
156 #ifndef USE_OSCAR
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
157 char buf[MSG_LEN - 7];
94
0c6ba3d3fa90 [gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 79
diff changeset
158
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
159 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
160 message, ((away) ? " auto" : ""));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
161 sflap_send(buf, strlen(buf), TYPE_DATA);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
167 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
168 if (!away)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
169 serv_touch_idle();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
170 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
171
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
172 void serv_get_info(char *name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
176 g_snprintf(buf, MSG_LEN, "toc_get_info %s", normalize(name));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
190 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
191 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
192
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
193 void serv_get_dir(char *name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
197 g_snprintf(buf, MSG_LEN, "toc_get_dir %s", normalize(name));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
198 sflap_send(buf, -1, TYPE_DATA);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
199 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
200 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
201
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
202 void serv_set_dir(char *first, char *middle, char *last, char *maiden,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
203 char *city, char *state, char *country, int web)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
207 g_snprintf(buf2, sizeof(buf2), "%s:%s:%s:%s:%s:%s:%s:%s", first,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
208 middle, last, maiden, city, state, country,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
209 (web == 1) ? "Y" : "");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
210 escape_text(buf2);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
211 g_snprintf(buf, sizeof(buf), "toc_set_dir %s", buf2);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
212 sflap_send(buf, -1, TYPE_DATA);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
213 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
214 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
215
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
216 void serv_dir_search(char *first, char *middle, char *last, char *maiden,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
217 char *city, char *state, char *country, char *email)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
222 sprintf(debug_buff,"Searching for: %s,%s,%s,%s,%s,%s,%s\n", first, middle, last, maiden, city, state, country);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
223 debug_print(debug_buff);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
228 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
229 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
230
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
231
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
232 void serv_set_away(char *message)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
236 if (message)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
237 g_snprintf(buf, MSG_LEN, "toc_set_away \"%s\"", message);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
244 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
245 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
246
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
247 void serv_set_info(char *info)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
248 {
273
3796a8752962 [gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 270
diff changeset
249 #ifndef USE_OSCAR
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
250 char buf[MSG_LEN];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
251 g_snprintf(buf, sizeof(buf), "toc_set_info \"%s\n\"", info);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
279 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
280 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
281
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
282 void serv_add_buddy(char *name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
286 g_snprintf(buf, sizeof(buf), "toc_add_buddy %s", normalize(name));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
290 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
291 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
292
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
293 void serv_add_buddies(GList *buddies)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
294 {
273
3796a8752962 [gaim-migrate @ 283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 270
diff changeset
295 #ifndef USE_OSCAR
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
296 char buf[MSG_LEN];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
297 int n, num = 0;
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 200
diff changeset
298
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
299 n = g_snprintf(buf, sizeof(buf), "toc_add_buddy");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
300 while(buddies) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
301 if (num == 20) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
302 sflap_send(buf, -1, TYPE_DATA);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
303 n = g_snprintf(buf, sizeof(buf), "toc_add_buddy");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
304 num = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
305 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
306 ++num;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
307 n += g_snprintf(buf + n, sizeof(buf) - n, " %s", normalize(buddies->data));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
308 buddies = buddies->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
309 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
323 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
324 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
325
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
326
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
327 void serv_remove_buddy(char *name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
331 g_snprintf(buf, sizeof(buf), "toc_remove_buddy %s", normalize(name));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
335 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
336 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
337
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
338 void serv_add_permit(char *name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
342 g_snprintf(buf, sizeof(buf), "toc_add_permit %s", normalize(name));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
346 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
347 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
348
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
349
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
350
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
351 void serv_add_deny(char *name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
355 g_snprintf(buf, sizeof(buf), "toc_add_deny %s", normalize(name));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
359 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
360 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
361
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
362
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
363
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
364 void serv_set_permit_deny()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
365 {
281
fe895b9b04c1 [gaim-migrate @ 291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 280
diff changeset
366 #ifndef USE_OSCAR
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
367 char buf[MSG_LEN];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
368 int at;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
373 sflap_send(buf, -1, TYPE_DATA);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
376 sflap_send(buf, -1, TYPE_DATA);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
377 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
378
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
389 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
439 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
440 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
441
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
442 void serv_set_idle(int time)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
446 g_snprintf(buf, sizeof(buf), "toc_set_idle %d", time);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
450 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
451 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
452
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
453
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
454 void serv_warn(char *name, int anon)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
455 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
456 #ifndef USE_OSCAR
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
457 char *send = g_malloc(256);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
458 g_snprintf(send, 255, "toc_evil %s %s", name,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
459 ((anon) ? "anon" : "norm"));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
460 sflap_send(send, -1, TYPE_DATA);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
461 g_free(send);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
462 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
463 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
469
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
470 void serv_save_config()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
471 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
472 #ifndef USE_OSCAR
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
473 char *buf = g_malloc(BUF_LONG);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
476 g_snprintf(buf2, MSG_LEN, "toc_set_config {%s}", buf);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
477 sflap_send(buf2, -1, TYPE_DATA);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
478 g_free(buf2);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
479 g_free(buf);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
480 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
481 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
482
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
483
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
484 void serv_accept_chat(int i)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
485 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
486 #ifndef USE_OSCAR
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
487 char *buf = g_malloc(256);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
488 g_snprintf(buf, 255, "toc_chat_accept %d", i);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
489 sflap_send(buf, -1, TYPE_DATA);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
494 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
495 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
496
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
497 void serv_join_chat(int exchange, char *name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
501 g_snprintf(buf, sizeof(buf)/2, "toc_chat_join %d \"%s\"", exchange, name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
509 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
510 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
511
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
512 void serv_chat_invite(int id, char *message, char *name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
516 g_snprintf(buf, sizeof(buf)/2, "toc_chat_invite %d \"%s\" %s", id, message, normalize(name));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
534 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
535 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
536
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
537 void serv_chat_leave(int id)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
538 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
539 #ifndef USE_OSCAR
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
540 char *buf = g_malloc(256);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
541 g_snprintf(buf, 255, "toc_chat_leave %d", id);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
542 sflap_send(buf, -1, TYPE_DATA);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
568 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
569 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
570
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
571 void serv_chat_whisper(int id, char *who, char *message)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
575 g_snprintf(buf2, sizeof(buf2), "toc_chat_whisper %d %s \"%s\"", id, who, message);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
580 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
581 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
582
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
583 void serv_chat_send(int id, char *message)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
587 g_snprintf(buf, sizeof(buf), "toc_chat_send %d \"%s\"",id, message);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
606 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
607 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
608
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
609
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
610
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
611
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
612 void serv_got_im(char *name, char *message, int away)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
613 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
614 struct conversation *cnv;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
615 int is_idle = -1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
616 int new_conv = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
617 char *nname;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
637 nname = g_strdup(normalize(name));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
638
171
b3df3f8d922c [gaim-migrate @ 181]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 145
diff changeset
639 if (!strcasecmp(normalize(current_user->username), nname)) {
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
640 if (!strcmp(message, LAGOMETER_STR)) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
641 struct timeval tv;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
642 int ms;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
643
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
644 gettimeofday(&tv, NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
645
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
646 ms = 1000000 * (tv.tv_sec - lag_tv.tv_sec);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
647
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
648 ms += tv.tv_usec - lag_tv.tv_usec;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
649
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
650 update_lagometer(ms);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
651 g_free(nname);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
652 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
653 }
14
63285ff5a538 [gaim-migrate @ 23]
Rob Flynn <gaim@robflynn.com>
parents: 1
diff changeset
654 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
655 g_free(nname);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
656
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
659
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
660 if (awaymessage != NULL) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
661 if (!(general_options & OPT_GEN_DISCARD_WHEN_AWAY)) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
662 if (cnv == NULL) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
663 new_conv = 1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
664 cnv = new_conversation(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
665 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
666 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
667 if (cnv != NULL) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
668 if (sound_options & OPT_SOUND_WHEN_AWAY)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
671 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
672
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
673 } else {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
674 if (cnv == NULL) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
675 new_conv = 1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
676 cnv = new_conversation(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
677 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
678 if (new_conv && (sound_options & OPT_SOUND_FIRST_RCV)) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
679 play_sound(FIRST_RECEIVE);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
680 } else {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
681 if (cnv->makesound && (sound_options & OPT_SOUND_RECV))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
682 play_sound(RECEIVE);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
685 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
686
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
687
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
688
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
689
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
690 if (awaymessage != NULL) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
691 time_t t;
263
b7e1d3d50079 [gaim-migrate @ 273]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 260
diff changeset
692 char tmpmsg[BUF_LEN];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
693
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
694 time(&t);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
695
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
696
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
697 if ((cnv == NULL) || (t - cnv->sent_away) < 120)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
698 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
699
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
700 cnv->sent_away = t;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
701
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
702 if (is_idle)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
703 is_idle = -1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
709
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
710 if (is_idle == -1)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
711 is_idle = 1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
712
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
713 if (cnv != NULL)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
714 write_to_conv(cnv, awaymessage->message, WFLAG_SEND | WFLAG_AUTO);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
715 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
716 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
717
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
718
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
719
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
720 void serv_got_update(char *name, int loggedin, int evil, time_t signon, time_t idle, int type)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
721 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
722 struct buddy *b;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
723 char *nname;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
724
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
725 b = find_buddy(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
726
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
727 nname = g_strdup(normalize(name));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
728 if (!strcasecmp(nname, normalize(current_user->username))) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
729 correction_time = (int)(signon - login_time);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
730 update_all_buddies();
25
c4646d5b2541 [gaim-migrate @ 34]
Pete
parents: 14
diff changeset
731 if (!b) {
c4646d5b2541 [gaim-migrate @ 34]
Pete
parents: 14
diff changeset
732 g_free(nname);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
733 return;
25
c4646d5b2541 [gaim-migrate @ 34]
Pete
parents: 14
diff changeset
734 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
735 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
736
25
c4646d5b2541 [gaim-migrate @ 34]
Pete
parents: 14
diff changeset
737 g_free(nname);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
738
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
739 if (!b) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
740 sprintf(debug_buff,"Error, no such person\n");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
741 debug_print(debug_buff);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
742 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
743 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
744
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
745 /* This code will 'align' the name from the TOC */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
746 /* server with what's in our record. We want to */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
747 /* store things how THEY want it... */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
748 if (strcmp(name, b->name)) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
749 GList *cnv = conversations;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
750 struct conversation *cv;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
751
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
752 char *who = g_malloc(80);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
753
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
754 strcpy(who, normalize(name));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
755
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
756 while(cnv) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
757 cv = (struct conversation *)cnv->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
758 if (!strcasecmp(who, normalize(cv->name))) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
759 g_snprintf(cv->name, sizeof(cv->name), "%s", name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
760 if (find_log_info(name) || (general_options & OPT_GEN_LOG_ALL))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
761 g_snprintf(who, 63, LOG_CONVERSATION_TITLE, name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
762 else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
763 g_snprintf(who, 63, CONVERSATION_TITLE, name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
764 gtk_window_set_title(GTK_WINDOW(cv->window), who);
79
d0d0ecf6fc03 [gaim-migrate @ 89]
G Sumner Hayes
parents: 45
diff changeset
765 /* was g_free(buf), but break gives us that
d0d0ecf6fc03 [gaim-migrate @ 89]
G Sumner Hayes
parents: 45
diff changeset
766 * and freeing twice is not good --Sumner */
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
767 break;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
768 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
769 cnv = cnv->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
770 }
45
ae4b2197ff68 [gaim-migrate @ 54]
Rob Flynn <gaim@robflynn.com>
parents: 25
diff changeset
771 g_free(who);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
772 g_snprintf(b->name, sizeof(b->name), "%s", name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
773 /*gtk_label_set_text(GTK_LABEL(b->label), b->name);*/
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
774
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
775 /* okay lets save the new config... */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
776
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
777 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
778
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
779 b->idle = idle;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
797 b->uc = type;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
798
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
799 b->signon = signon;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
800
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
801 if (loggedin) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
802 if (!b->present) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
803 b->present = 1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
804 do_pounce(b->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
805 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
806 } else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
807 b->present = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
808
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
809 set_buddy(b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
810 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
811
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
812 static
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
813 void close_warned(GtkWidget *w, GtkWidget *w2)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
814 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
815 gtk_widget_destroy(w2);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
816 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
817
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
818
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
819
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
820 void serv_got_eviled(char *name, int lev)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
821 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
822 char *buf2 = g_malloc(1024);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
823 GtkWidget *d, *label, *close;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
824
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
825
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
826 g_snprintf(buf2, 1023, "You have just been warned by %s.\nYour new warning level is %d./%%",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
827 ((name == NULL) ? "an anonymous person" : name) , lev);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
828
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
829
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
830 d = gtk_dialog_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
831 gtk_widget_realize(d);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
832 aol_icon(d->window);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
833
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
834 label = gtk_label_new(buf2);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
835 gtk_widget_show(label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
836 close = gtk_button_new_with_label("Close");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
837 gtk_widget_show(close);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
838 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
839 label, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
840 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
841 close, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
842
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
843 gtk_window_set_title(GTK_WINDOW(d), "Warned");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
844 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_warned), d);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
845 gtk_widget_show(d);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
846 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
847
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
848
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
849
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
850 static void close_invite(GtkWidget *w, GtkWidget *w2)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
851 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
852 gtk_widget_destroy(w2);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
853 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
854
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
855 static void chat_invite_callback(GtkWidget *w, GtkWidget *w2)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
856 {
252
1748fe53bc71 [gaim-migrate @ 262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 249
diff changeset
857 #ifndef USE_OSCAR
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
858 int i = (int)gtk_object_get_user_data(GTK_OBJECT(w2));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
859 serv_accept_chat(i);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
867 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
868
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
869
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
870
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
871 void serv_got_chat_invite(char *name, int id, char *who, char *message)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
872 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
873 GtkWidget *d;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
874 GtkWidget *label;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
875 GtkWidget *yesbtn;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
876 GtkWidget *nobtn;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
877
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
878 char buf2[BUF_LONG];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
879
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
880
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
881 g_snprintf(buf2, sizeof(buf2), "User '%s' invites you to buddy chat room: '%s'\n%s", who, name, message);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
882
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
883 d = gtk_dialog_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
884 gtk_widget_realize(d);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
885 aol_icon(d->window);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
886
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
887
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
888 label = gtk_label_new(buf2);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
889 gtk_widget_show(label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
890 yesbtn = gtk_button_new_with_label("Yes");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
891 gtk_widget_show(yesbtn);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
892 nobtn = gtk_button_new_with_label("No");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
893 gtk_widget_show(nobtn);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
894 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
895 label, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
896 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
897 yesbtn, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
898 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
899 nobtn, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
900
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
901
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
908
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
909
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
910 gtk_window_set_title(GTK_WINDOW(d), "Buddy chat invite");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
911 gtk_signal_connect(GTK_OBJECT(nobtn), "clicked", GTK_SIGNAL_FUNC(close_invite), d);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
912 gtk_signal_connect(GTK_OBJECT(yesbtn), "clicked", GTK_SIGNAL_FUNC(chat_invite_callback), d);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
913
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
914
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
915 gtk_widget_show(d);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
916 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
917
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
918 void serv_got_joined_chat(int id, char *name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
919 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
920 struct buddy_chat *b;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
921
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
922 b = (struct buddy_chat *)g_new0(struct buddy_chat, 1);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
923 buddy_chats = g_list_append(buddy_chats, b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
924
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
925 b->ignored = NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
926 b->in_room = NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
927 b->id = id;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
928 g_snprintf(b->name, 80, "%s", name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
929 show_new_buddy_chat(b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
930 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
931
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
932 void serv_got_chat_left(int id)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
933 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
934 GList *bcs = buddy_chats;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
935 struct buddy_chat *b = NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
936
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
937
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
938 while(bcs) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
939 b = (struct buddy_chat *)bcs->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
940 if (id == b->id) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
941 break;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
942 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
943 b = NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
944 bcs = bcs->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
945 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
946
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
947 if (!b)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
948 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
949
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
950 if (b->window)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
951 gtk_widget_destroy(GTK_WIDGET(b->window));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
952
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
953 buddy_chats = g_list_remove(buddy_chats, b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
954
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
955 g_free(b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
956 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
957
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
958 void serv_got_chat_in(int id, char *who, int whisper, char *message)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
959 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
960 int w;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
961 GList *bcs = buddy_chats;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
962 struct buddy_chat *b = NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
963
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
964 while(bcs) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
965 b = (struct buddy_chat *)bcs->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
966 if (id == b->id)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
967 break;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
968 bcs = bcs->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
969 b = NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
970
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
971 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
972 if (!b)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
973 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
974
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
975 if (whisper)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
976 w = WFLAG_WHISPER;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
977 else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
978 w = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
979
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
980 chat_write(b, who, w, message);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
981 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
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 }

mercurial