src/protocols/toc/toc.c

Fri, 21 May 2004 14:33:32 +0000

author
Stu Tomlinson <nosnilmot@pidgin.im>
date
Fri, 21 May 2004 14:33:32 +0000
changeset 8999
dd434cfec86a
parent 8993
41f67bceab41
child 9015
3c27e9074fa2
permissions
-rw-r--r--

[gaim-migrate @ 9774]
" This patch renames the existing received-*-msg signals
to receiving-*msg to fit the naming of other signals
where a pointer to the message is passed (writing,
sending, displaying)

It adds new received-*-msg signals which are emitted
after the receiving signals, in line with the other
conversation signals (wrote, sent, displayed)

This is necessary to allow plugins which depend on the
final received message to work alongside plugins which
may modify the message.

One known example of this is festival-gaim alongside
gaim-encryption - festival-gaim would try to "speak"
the encrypted text:
http://sf.net/tracker/?func=detail&aid=943216&group_id=89763&atid=591320

I've tested this with gaim-encryption and festival-gaim
(locally modified so gaim-encryption uses the receiving
signal and festival uses the received signal)

All in-tree users of received-*-msg are updated to use
receiving-*-msg if they do modify the message, the
conversation-signals documentation is updated, the
signals-test.c & signal-test.tcl plugins are also updated." --Stu Tomlinson

committer: Luke Schierer <lschiere@pidgin.im>

2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1 /*
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2 * gaim
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
9 * (at your option) any later version.
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
10 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
14 * GNU General Public License for more details.
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
15 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
19 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
20 */
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5685
diff changeset
21 #include "internal.h"
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
22
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5685
diff changeset
23 #include "account.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5685
diff changeset
24 #include "accountopt.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5685
diff changeset
25 #include "conversation.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5685
diff changeset
26 #include "debug.h"
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
27 #include "prpl.h"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
28 #include "multi.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5685
diff changeset
29 #include "notify.h"
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
30 #include "proxy.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5685
diff changeset
31 #include "request.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5685
diff changeset
32 #include "util.h"
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
33
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
34 static GaimPlugin *my_protocol = NULL;
4249
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
35
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
36 #define REVISION "penguin"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
37
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
38 #define TYPE_SIGNON 1
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
39 #define TYPE_DATA 2
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
40 #define TYPE_ERROR 3
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
41 #define TYPE_SIGNOFF 4
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
42 #define TYPE_KEEPALIVE 5
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
43
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
44 #define FLAPON "FLAPON\r\n\r\n"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
45 #define ROAST "Tic/Toc"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
46
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
47 #define TOC_HOST "toc.oscar.aol.com"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
48 #define TOC_PORT 9898
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
49 #define AUTH_HOST "login.oscar.aol.com"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
50 #define AUTH_PORT 5190
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
51 #define LANGUAGE "english"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
52
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
53 #define STATE_OFFLINE 0
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
54 #define STATE_FLAPON 1
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
55 #define STATE_SIGNON_REQUEST 2
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
56 #define STATE_ONLINE 3
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
57 #define STATE_PAUSE 4
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
58
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
59 #define VOICE_UID "09461341-4C7F-11D1-8222-444553540000"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
60 #define FILE_SEND_UID "09461343-4C7F-11D1-8222-444553540000"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
61 #define IMAGE_UID "09461345-4C7F-11D1-8222-444553540000"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
62 #define B_ICON_UID "09461346-4C7F-11D1-8222-444553540000"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
63 #define STOCKS_UID "09461347-4C7F-11D1-8222-444553540000"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
64 #define FILE_GET_UID "09461348-4C7F-11D1-8222-444553540000"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
65 #define GAMES_UID "0946134a-4C7F-11D1-8222-444553540000"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
66
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
67 #define UC_AOL 0x02
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
68 #define UC_ADMIN 0x04
2501
5e1fa4926c93 [gaim-migrate @ 2514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2453
diff changeset
69 #define UC_UNCONFIRMED 0x08
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
70 #define UC_NORMAL 0x10
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
71 #define UC_WIRELESS 0x20
2501
5e1fa4926c93 [gaim-migrate @ 2514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2453
diff changeset
72
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
73 struct ft_request {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
74 GaimConnection *gc;
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
75 char *user;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
76 char UID[2048];
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
77 char *cookie;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
78 char *ip;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
79 int port;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
80 char *message;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
81 char *filename;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
82 int files;
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
83 int size;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
84 };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
85
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
86 struct buddy_icon {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
87 guint32 hash;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
88 guint32 len;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
89 time_t time;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
90 void *data;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
91 };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
92
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
93 struct toc_data {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
94 int toc_fd;
4597
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
95 char toc_ip[20];
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
96 int seqno;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
97 int state;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
98 };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
99
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
100 struct sflap_hdr {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
101 unsigned char ast;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
102 unsigned char type;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
103 unsigned short seqno;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
104 unsigned short len;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
105 };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
106
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
107 struct signon {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
108 unsigned int ver;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
109 unsigned short tag;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
110 unsigned short namelen;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
111 char username[80];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
112 };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
113
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
114 /* constants to identify proto_opts */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
115 #define USEROPT_AUTH 0
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
116 #define USEROPT_AUTHPORT 1
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
117
6061
526032b3439d [gaim-migrate @ 6511]
Mark Doliner <markdoliner@pidgin.im>
parents: 6059
diff changeset
118 #define TOC_CONNECT_STEPS 4
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
119
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
120 static void toc_login_callback(gpointer, gint, GaimInputCondition);
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
121 static void toc_callback(gpointer, gint, GaimInputCondition);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
122
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
123 /* The following were added for win32 port - Herman */
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
124
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
125 int toc_write(int fd, const void *buffer, int len)
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
126 {
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
127 #ifndef _WIN32
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
128 return write(fd, buffer, len);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
129 #else
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
130 return send(fd, buffer, len, 0);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
131 #endif
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
132 }
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
133
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
134 int toc_read(int fd, void *buffer, int size)
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
135 {
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
136 #ifndef _WIN32
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
137 return read(fd, buffer, size);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
138 #else
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
139 return recv(fd, buffer, size, 0);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
140 #endif
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
141 }
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
142
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
143 int toc_soc_close( int fd )
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
144 {
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
145 #ifndef _WIN32
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
146 return close(fd);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
147 #else
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
148 return closesocket(fd);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
149 #endif
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
150 }
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
151
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
152
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
153 /* ok. this function used to take username/password, and return 0 on success.
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
154 * now, it takes username/password, and returns NULL on error or a new gaim_connection
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
155 * on success. */
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
156 static void toc_login(GaimAccount *account)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
157 {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
158 GaimConnection *gc;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
159 struct toc_data *tdt;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
160 char buf[80];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
161
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
162 gc = gaim_account_get_connection(account);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
163 gc->proto_data = tdt = g_new0(struct toc_data, 1);
6622
277eb0b14653 [gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents: 6516
diff changeset
164 gc->flags |= GAIM_CONNECTION_HTML;
277eb0b14653 [gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents: 6516
diff changeset
165 gc->flags |= GAIM_CONNECTION_AUTO_RESP;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
166
4834
80bc171a5236 [gaim-migrate @ 5159]
Luke Schierer <lschiere@pidgin.im>
parents: 4793
diff changeset
167 g_snprintf(buf, sizeof buf, _("Looking up %s"),
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
168 gaim_account_get_string(account, "server", TOC_HOST));
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
169 gaim_connection_update_progress(gc, buf, 1, TOC_CONNECT_STEPS);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
170
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
171 gaim_debug(GAIM_DEBUG_INFO, "toc", "Client connects to TOC\n");
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5679
diff changeset
172 if (gaim_proxy_connect(account,
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
173 gaim_account_get_string(account, "server", TOC_HOST),
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
174 gaim_account_get_int(account, "port", TOC_PORT),
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4455
diff changeset
175 toc_login_callback, gc) != 0 || !account->gc) {
6321
0b54b2a172d1 [gaim-migrate @ 6820]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6306
diff changeset
176 g_snprintf(buf, sizeof(buf), _("Connect to %s failed"),
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
177 gaim_account_get_string(account, "server", TOC_HOST));
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
178 gaim_connection_error(gc, buf);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
179 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
180 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
181 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
182
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
183 static void toc_login_callback(gpointer data, gint source, GaimInputCondition cond)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
184 {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
185 GaimConnection *gc = data;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
186 struct toc_data *tdt;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
187 char buf[80];
4597
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
188 struct sockaddr_in name;
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
189 socklen_t namelen;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
190
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
191 if (!g_list_find(gaim_connections_get_all(), data)) {
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
192 toc_soc_close(source);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
193 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
194 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
195
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
196 tdt = gc->proto_data;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
197
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
198 if (source == -1) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
199 /* we didn't successfully connect. tdt->toc_fd is valid here */
6321
0b54b2a172d1 [gaim-migrate @ 6820]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6306
diff changeset
200 gaim_connection_error(gc, _("Unable to connect."));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
201 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
202 }
4452
1e5d62c19533 [gaim-migrate @ 4727]
Sean Egan <seanegan@pidgin.im>
parents: 4359
diff changeset
203 tdt->toc_fd = source;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
204
4597
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
205 /*
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
206 * Copy the IP that we're connected to. We need this because "GOTO_URL"'s
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
207 * should open on the exact server we're connected to. toc.oscar.aol.com
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
208 * doesn't work because that hostname resolves to multiple IP addresses.
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
209 */
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
210 if (getpeername(tdt->toc_fd, (struct sockaddr *)&name, &namelen) == 0)
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
211 strncpy(tdt->toc_ip, inet_ntoa(name.sin_addr), sizeof(tdt->toc_ip));
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
212 else
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
213 strncpy(tdt->toc_ip, gaim_account_get_string(gc->account, "server", TOC_HOST), sizeof(tdt->toc_ip));
4597
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
214
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
215 gaim_debug(GAIM_DEBUG_INFO, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
216 "Client sends \"FLAPON\\r\\n\\r\\n\"\n");
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
217 if (toc_write(tdt->toc_fd, FLAPON, strlen(FLAPON)) < 0) {
6321
0b54b2a172d1 [gaim-migrate @ 6820]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6306
diff changeset
218 gaim_connection_error(gc, _("Disconnected."));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
219 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
220 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
221 tdt->state = STATE_FLAPON;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
222
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
223 /* i know a lot of people like to look at gaim to see how TOC works. so i'll comment
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
224 * on what this does. it's really simple. when there's data ready to be read from the
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
225 * toc_fd file descriptor, toc_callback is called, with gc passed as its data arg. */
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
226 gc->inpa = gaim_input_add(tdt->toc_fd, GAIM_INPUT_READ, toc_callback, gc);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
227
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
228 g_snprintf(buf, sizeof(buf), _("Signon: %s"), gaim_account_get_username(gc->account));
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
229 gaim_connection_update_progress(gc, buf, 2, TOC_CONNECT_STEPS);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
230 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
231
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
232 static void toc_close(GaimConnection *gc)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
233 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
234 if (gc->inpa > 0)
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
235 gaim_input_remove(gc->inpa);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
236 gc->inpa = 0;
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
237 toc_soc_close(((struct toc_data *)gc->proto_data)->toc_fd);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
238 g_free(gc->proto_data);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
239 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
240
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
241 static void toc_build_config(GaimAccount *account, char *s, int len, gboolean show)
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
242 {
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
243 GaimBlistNode *gnode, *cnode, *bnode;
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
244 GaimGroup *g;
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
245 GaimBuddy *b;
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
246 GSList *plist = account->permit;
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
247 GSList *dlist = account->deny;
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
248
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
249 int pos = 0;
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
250
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
251 if (!account->perm_deny)
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
252 account->perm_deny = 1;
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
253
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
254 pos += g_snprintf(&s[pos], len - pos, "m %d\n", account->perm_deny);
4785
9af09a0b5ac1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4770
diff changeset
255 for(gnode = gaim_get_blist()->root; gnode && len > pos; gnode = gnode->next) {
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
256 g = (GaimGroup *)gnode;
4785
9af09a0b5ac1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4770
diff changeset
257 if(!GAIM_BLIST_NODE_IS_GROUP(gnode))
9af09a0b5ac1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4770
diff changeset
258 continue;
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
259 if(gaim_group_on_account(g, account)) {
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
260 pos += g_snprintf(&s[pos], len - pos, "g %s\n", g->name);
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
261 for(cnode = gnode->child; cnode; cnode = cnode->next) {
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
262 if(!GAIM_BLIST_NODE_IS_CONTACT(cnode))
4785
9af09a0b5ac1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4770
diff changeset
263 continue;
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
264 for(bnode = gnode->child; bnode && len > pos; bnode = bnode->next) {
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
265 b = (GaimBuddy *)bnode;
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
266 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode))
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
267 continue;
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
268 if(b->account == account) {
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
269 pos += g_snprintf(&s[pos], len - pos, "b %s%s%s\n",
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
270 b->name,
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
271 (show && b->alias) ? ":" : "",
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
272 (show && b->alias) ? b->alias : "");
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
273 }
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
274 }
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
275 }
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
276 }
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
277 }
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
278
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
279 while (len > pos && plist) {
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
280 pos += g_snprintf(&s[pos], len - pos, "p %s\n", (char *)plist->data);
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
281 plist = plist->next;
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
282 }
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
283
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
284 while (len > pos && dlist) {
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
285 pos += g_snprintf(&s[pos], len - pos, "d %s\n", (char *)dlist->data);
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
286 dlist = dlist->next;
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
287 }
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
288 }
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
289
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
290 char *escape_message(const char *msg)
2371
3dcdd158010d [gaim-migrate @ 2384]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2343
diff changeset
291 {
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
292 char *ret;
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
293 int i, j;
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
294
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
295 if (!msg)
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
296 return NULL;
2371
3dcdd158010d [gaim-migrate @ 2384]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2343
diff changeset
297
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
298 /* Calculate the length after escaping */
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
299 for (i=0, j=0; msg[i]; i++)
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
300 switch (msg[i]) {
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
301 case '$':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
302 case '[':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
303 case ']':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
304 case '(':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
305 case ')':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
306 j++;
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
307 default:
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
308 j++;
2371
3dcdd158010d [gaim-migrate @ 2384]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2343
diff changeset
309 }
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
310
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
311 /* Allocate a string */
7606
189d2833dc99 [gaim-migrate @ 8229]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 7261
diff changeset
312 ret = (char *)g_malloc((j+1) * sizeof(char));
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
313
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
314 /* Copy the string */
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
315 for (i=0, j=0; msg[i]; i++)
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
316 switch (msg[i]) {
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
317 case '$':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
318 case '[':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
319 case ']':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
320 case '(':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
321 case ')':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
322 ret[j++] = '\\';
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
323 default:
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
324 ret[j++] = msg[i];
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
325 }
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
326 ret[j] = '\0';
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
327
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
328 return ret;
2371
3dcdd158010d [gaim-migrate @ 2384]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2343
diff changeset
329 }
3dcdd158010d [gaim-migrate @ 2384]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2343
diff changeset
330
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
331 /*
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
332 * Duplicates the input string, replacing each \n with a <BR>, and
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
333 * escaping a few other characters.
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
334 */
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
335 char *escape_text(const char *msg)
2371
3dcdd158010d [gaim-migrate @ 2384]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2343
diff changeset
336 {
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
337 char *ret;
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
338 int i, j;
2371
3dcdd158010d [gaim-migrate @ 2384]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2343
diff changeset
339
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
340 if (!msg)
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
341 return NULL;
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
342
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
343 /* Calculate the length after escaping */
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
344 for (i=0, j=0; msg[i]; i++)
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
345 switch (msg[i]) {
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
346 case '\n':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
347 j += 4;
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
348 break;
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
349 case '{':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
350 case '}':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
351 case '\\':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
352 case '"':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
353 j += 1;
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
354 default:
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
355 j += 1;
2371
3dcdd158010d [gaim-migrate @ 2384]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2343
diff changeset
356 }
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
357
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
358 /* Allocate a string */
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
359 ret = (char *)malloc((j+1) * sizeof(char));
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
360
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
361 /* Copy the string */
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
362 for (i=0, j=0; msg[i]; i++)
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
363 switch (msg[i]) {
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
364 case '\n':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
365 ret[j++] = '<';
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
366 ret[j++] = 'B';
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
367 ret[j++] = 'R';
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
368 ret[j++] = '>';
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
369 break;
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
370 case '{':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
371 case '}':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
372 case '\\':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
373 case '"':
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
374 ret[j++] = '\\';
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
375 default:
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
376 ret[j++] = msg[i];
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
377 }
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
378 ret[j] = '\0';
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
379
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
380 return ret;
2371
3dcdd158010d [gaim-migrate @ 2384]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2343
diff changeset
381 }
3dcdd158010d [gaim-migrate @ 2384]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2343
diff changeset
382
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
383 static int sflap_send(GaimConnection *gc, const char *buf, int olen, int type)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
384 {
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
385 struct toc_data *tdt = (struct toc_data *)gc->proto_data;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
386 int len;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
387 int slen = 0;
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
388 int ret;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
389 struct sflap_hdr hdr;
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
390 char *escaped, *obuf;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
391
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
392 if (tdt->state == STATE_PAUSE)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
393 /* TOC has given us the PAUSE message; sending could cause a disconnect
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
394 * so we just return here like everything went through fine */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
395 return 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
396
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
397 if (olen < 0) {
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
398 escaped = escape_message(buf);
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
399 len = strlen(escaped);
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
400 } else {
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
401 escaped = g_memdup(buf, olen);
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2273
diff changeset
402 len = olen;
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
403 }
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2273
diff changeset
404
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
405 /*
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
406 * One _last_ 2048 check here! This shouldn't ever
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
407 * get hit though, hopefully. If it gets hit on an IM
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
408 * It'll lose the last " and the message won't go through,
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
409 * but this'll stop a segfault.
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
410 */
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2273
diff changeset
411 if (len > MSG_LEN) {
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
412 gaim_debug(GAIM_DEBUG_WARNING, "toc", "message too long, truncating\n");
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
413 escaped[MSG_LEN - 1] = '\0';
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2273
diff changeset
414 len = MSG_LEN;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
415 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
416
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
417 if (olen < 0)
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
418 gaim_debug(GAIM_DEBUG_INFO, "toc", "C: %s\n", escaped);
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
419
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
420 hdr.ast = '*';
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
421 hdr.type = type;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
422 hdr.seqno = htons(tdt->seqno++ & 0xffff);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
423 hdr.len = htons(len + (type == TYPE_SIGNON ? 0 : 1));
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
424
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
425 obuf = (char *)malloc((sizeof(hdr)+len+1) * sizeof(char));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
426 memcpy(obuf, &hdr, sizeof(hdr));
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
427 slen += sizeof(hdr);
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
428
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
429 memcpy(&obuf[slen], escaped, len);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
430 slen += len;
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
431
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
432 if (type != TYPE_SIGNON) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
433 obuf[slen] = '\0';
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
434 slen += 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
435 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
436
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
437 ret = toc_write(tdt->toc_fd, obuf, slen);
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
438 free(obuf);
7606
189d2833dc99 [gaim-migrate @ 8229]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 7261
diff changeset
439 g_free(escaped);
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
440
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
441 return ret;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
442 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
443
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
444 static int wait_reply(GaimConnection *gc, char *buffer, size_t buflen)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
445 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
446 struct toc_data *tdt = (struct toc_data *)gc->proto_data;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
447 struct sflap_hdr *hdr;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
448 int ret;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
449
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
450 if (toc_read(tdt->toc_fd, buffer, sizeof(struct sflap_hdr)) < 0) {
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
451 gaim_debug(GAIM_DEBUG_ERROR, "toc", "Couldn't read flap header\n");
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
452 return -1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
453 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
454
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
455 hdr = (struct sflap_hdr *)buffer;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
456
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
457 if (buflen < ntohs(hdr->len)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
458 /* fake like there's a read error */
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
459 gaim_debug(GAIM_DEBUG_ERROR, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
460 "buffer too small (have %d, need %d)\n",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
461 buflen, ntohs(hdr->len));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
462 return -1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
463 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
464
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
465 if (ntohs(hdr->len) > 0) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
466 int count = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
467 ret = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
468 do {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
469 count += ret;
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
470 ret = toc_read(tdt->toc_fd,
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
471 buffer + sizeof(struct sflap_hdr) + count, ntohs(hdr->len) - count);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
472 } while (count + ret < ntohs(hdr->len) && ret > 0);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
473 buffer[sizeof(struct sflap_hdr) + count + ret] = '\0';
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
474 return ret;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
475 } else
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
476 return 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
477 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
478
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
479 static unsigned char *roast_password(const char *pass)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
480 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
481 /* Trivial "encryption" */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
482 static unsigned char rp[256];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
483 static char *roast = ROAST;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
484 int pos = 2;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
485 int x;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
486 strcpy(rp, "0x");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
487 for (x = 0; (x < 150) && pass[x]; x++)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
488 pos += sprintf(&rp[pos], "%02x", pass[x] ^ roast[x % strlen(roast)]);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
489 rp[pos] = '\0';
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
490 return rp;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
491 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
492
7094
8f9588491993 [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7084
diff changeset
493 static void toc_got_info(void *data, const char *url_text, size_t len)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
494 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
495 if (!url_text)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
496 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
497
7062
26abb8b189ce [gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
498 gaim_notify_formatted(data, NULL, _("Buddy Information"), NULL,
26abb8b189ce [gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
499 url_text, NULL, NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
500 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
501
2453
7088091c1e4c [gaim-migrate @ 2466]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2382
diff changeset
502 static char *show_error_message()
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
503 {
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
504 int no = atoi(strtok(NULL, ":"));
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
505 char *w = strtok(NULL, ":");
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
506 static char buf[256];
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
507
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
508 switch(no) {
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
509 case 69:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
510 g_snprintf(buf, sizeof(buf), _("Unable to write file %s."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
511 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
512 case 169:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
513 g_snprintf(buf, sizeof(buf), _("Unable to read file %s."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
514 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
515 case 269:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
516 g_snprintf(buf, sizeof(buf), _("Message too long, last %s bytes truncated."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
517 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
518 case 901:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
519 g_snprintf(buf, sizeof(buf), _("%s not currently logged in."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
520 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
521 case 902:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
522 g_snprintf(buf, sizeof(buf), _("Warning of %s not allowed."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
523 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
524 case 903:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
525 g_snprintf(buf, sizeof(buf), _("A message has been dropped, you are exceeding the server speed limit."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
526 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
527 case 950:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
528 g_snprintf(buf, sizeof(buf), _("Chat in %s is not available."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
529 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
530 case 960:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
531 g_snprintf(buf, sizeof(buf), _("You are sending messages too fast to %s."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
532 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
533 case 961:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
534 g_snprintf(buf, sizeof(buf), _("You missed an IM from %s because it was too big."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
535 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
536 case 962:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
537 g_snprintf(buf, sizeof(buf), _("You missed an IM from %s because it was sent too fast."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
538 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
539 case 970:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
540 g_snprintf(buf, sizeof(buf), _("Failure."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
541 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
542 case 971:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
543 g_snprintf(buf, sizeof(buf), _("Too many matches."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
544 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
545 case 972:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
546 g_snprintf(buf, sizeof(buf), _("Need more qualifiers."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
547 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
548 case 973:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
549 g_snprintf(buf, sizeof(buf), _("Dir service temporarily unavailable."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
550 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
551 case 974:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
552 g_snprintf(buf, sizeof(buf), _("Email lookup restricted."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
553 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
554 case 975:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
555 g_snprintf(buf, sizeof(buf), _("Keyword ignored."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
556 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
557 case 976:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
558 g_snprintf(buf, sizeof(buf), _("No keywords."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
559 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
560 case 977:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
561 g_snprintf(buf, sizeof(buf), _("User has no directory information."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
562 /* g_snprintf(buf, sizeof(buf), _("Language not supported.")); */
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
563 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
564 case 978:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
565 g_snprintf(buf, sizeof(buf), _("Country not supported."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
566 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
567 case 979:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
568 g_snprintf(buf, sizeof(buf), _("Failure unknown: %s."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
569 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
570 case 980:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
571 g_snprintf(buf, sizeof(buf), _("Incorrect nickname or password."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
572 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
573 case 981:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
574 g_snprintf(buf, sizeof(buf), _("The service is temporarily unavailable."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
575 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
576 case 982:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
577 g_snprintf(buf, sizeof(buf), _("Your warning level is currently too high to log in."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
578 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
579 case 983:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
580 g_snprintf(buf, sizeof(buf), _("You have been connecting and disconnecting too frequently. Wait ten minutes and try again. If you continue to try, you will need to wait even longer."));
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
581 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
582 g_snprintf(buf, sizeof(buf), _("An unknown signon error has occurred: %s."), w);
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
583 break;
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
584 default:
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
585 g_snprintf(buf, sizeof(buf), _("An unknown error, %d, has occurred. Info: %s"), no, w);
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
586 }
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
587
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
588 return buf;
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
589 }
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
590
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
591 static void toc_callback(gpointer data, gint source, GaimInputCondition condition)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
592 {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
593 GaimConnection *gc = (GaimConnection *)data;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
594 struct toc_data *tdt = (struct toc_data *)gc->proto_data;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
595 struct sflap_hdr *hdr;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
596 struct signon so;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
597 char buf[8 * 1024], *c;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
598 char snd[BUF_LEN * 2];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
599
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
600 const char *username = gaim_account_get_username(gc->account);
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
601 char *password;
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
602
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
603 /* there's data waiting to be read, so read it. */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
604 if (wait_reply(gc, buf, 8 * 1024) <= 0) {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
605 gaim_connection_error(gc, _("Connection Closed"));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
606 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
607 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
608
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
609 if (tdt->state == STATE_FLAPON) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
610 hdr = (struct sflap_hdr *)buf;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
611 if (hdr->type != TYPE_SIGNON)
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
612 gaim_debug(GAIM_DEBUG_ERROR, "toc", "hdr->type != TYPE_SIGNON\n");
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
613 else
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
614 gaim_debug(GAIM_DEBUG_INFO, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
615 "TOC sends Client FLAP SIGNON\n");
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
616 tdt->seqno = ntohs(hdr->seqno);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
617 tdt->state = STATE_SIGNON_REQUEST;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
618
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
619 gaim_debug(GAIM_DEBUG_INFO, "toc", "Client sends TOC FLAP SIGNON\n");
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
620 g_snprintf(so.username, sizeof(so.username), "%s", username);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
621 so.ver = htonl(1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
622 so.tag = htons(1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
623 so.namelen = htons(strlen(so.username));
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
624 if (sflap_send(gc, (char *)&so, ntohs(so.namelen) + 8, TYPE_SIGNON) < 0) {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
625 gaim_connection_error(gc, _("Disconnected."));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
626 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
627 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
628
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
629 gaim_debug(GAIM_DEBUG_INFO, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
630 "Client sends TOC \"toc_signon\" message\n");
2853
f9e281f35b79 [gaim-migrate @ 2866]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
631 /* i hate icq. */
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
632 if (username[0] >= '0' && username[0] <= '9')
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
633 password = g_strndup(gaim_account_get_password(gc->account), 8);
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
634 else
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
635 password = g_strdup(gaim_account_get_password(gc->account));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
636 g_snprintf(snd, sizeof snd, "toc_signon %s %d %s %s %s \"%s\"",
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
637 AUTH_HOST, AUTH_PORT, gaim_normalize(gc->account, username),
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
638 roast_password(password), LANGUAGE, REVISION);
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
639 g_free(password);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
640 if (sflap_send(gc, snd, -1, TYPE_DATA) < 0) {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
641 gaim_connection_error(gc, _("Disconnected."));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
642 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
643 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
644
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
645 gaim_connection_update_progress(gc, _("Waiting for reply..."), 3, TOC_CONNECT_STEPS);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
646 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
647 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
648
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
649 if (tdt->state == STATE_SIGNON_REQUEST) {
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
650 gaim_debug(GAIM_DEBUG_INFO, "toc", "TOC sends client SIGN_ON reply\n");
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
651 if (g_ascii_strncasecmp(buf + sizeof(struct sflap_hdr), "SIGN_ON", strlen("SIGN_ON"))) {
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
652 gaim_debug(GAIM_DEBUG_ERROR, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
653 "Didn't get SIGN_ON! buf was: %s\n",
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
654 buf + sizeof(struct sflap_hdr));
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
655 if (!g_ascii_strncasecmp(buf + sizeof(struct sflap_hdr), "ERROR", 5)) {
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
656 strtok(buf + sizeof(struct sflap_hdr), ":");
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
657 gaim_connection_error(gc, show_error_message());
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
658 } else
6623
75ba9eb9d3f8 [gaim-migrate @ 7147]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 6622
diff changeset
659 gaim_connection_error(gc, _("Authentication failed"));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
660 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
661 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
662 /* we're supposed to check that it's really TOC v1 here but we know it is ;) */
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
663 gaim_debug(GAIM_DEBUG_INFO, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
664 "TOC version: %s\n", buf + sizeof(struct sflap_hdr) + 8);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
665
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
666 /* we used to check for the CONFIG here, but we'll wait until we've sent our
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
667 * version of the config and then the toc_init_done message. we'll come back to
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
668 * the callback in a better state if we get CONFIG anyway */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
669
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
670 tdt->state = STATE_ONLINE;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
671
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
672 gaim_connection_set_state(gc, GAIM_CONNECTED);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
673 serv_finish_login(gc);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
674
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
675 /* Client sends TOC toc_init_done message */
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
676 gaim_debug(GAIM_DEBUG_INFO, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
677 "Client sends TOC toc_init_done message\n");
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
678 g_snprintf(snd, sizeof snd, "toc_init_done");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
679 sflap_send(gc, snd, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
680
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
681 /*
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
682 g_snprintf(snd, sizeof snd, "toc_set_caps %s %s %s",
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
683 FILE_SEND_UID, FILE_GET_UID, B_ICON_UID);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
684 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
685 g_snprintf(snd, sizeof snd, "toc_set_caps %s %s", FILE_SEND_UID, FILE_GET_UID);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
686 sflap_send(gc, snd, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
687
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
688 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
689 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
690
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
691 gaim_debug(GAIM_DEBUG_INFO, "toc", "S: %s\n",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
692 buf + sizeof(struct sflap_hdr));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
693
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
694 c = strtok(buf + sizeof(struct sflap_hdr), ":"); /* Ditch the first part */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
695
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
696 if (!g_ascii_strcasecmp(c, "SIGN_ON")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
697 /* we should only get here after a PAUSE */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
698 if (tdt->state != STATE_PAUSE)
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
699 gaim_debug(GAIM_DEBUG_ERROR, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
700 "got SIGN_ON but not PAUSE!\n");
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
701 else {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
702 tdt->state = STATE_ONLINE;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
703 g_snprintf(snd, sizeof snd, "toc_signon %s %d %s %s %s \"%s\"",
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
704 AUTH_HOST, AUTH_PORT,
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
705 gaim_normalize(gc->account, gaim_account_get_username(gc->account)),
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
706 roast_password(gaim_account_get_password(gc->account)),
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
707 LANGUAGE, REVISION);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
708 if (sflap_send(gc, snd, -1, TYPE_DATA) < 0) {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
709 gaim_connection_error(gc, _("Disconnected."));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
710 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
711 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
712 g_snprintf(snd, sizeof snd, "toc_init_done");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
713 sflap_send(gc, snd, -1, TYPE_DATA);
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
714 gaim_notify_info(gc, NULL,
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
715 _("TOC has come back from its pause. You may "
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
716 "now send messages again."), NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
717 }
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
718 } else if (!g_ascii_strcasecmp(c, "CONFIG")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
719 c = strtok(NULL, ":");
7117
4d6a9973c7a9 [gaim-migrate @ 7684]
Christian Hammond <chipx86@chipx86.com>
parents: 7107
diff changeset
720 gaim_blist_parse_toc_buddy_list(gc->account, c);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
721 } else if (!g_ascii_strcasecmp(c, "NICK")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
722 /* ignore NICK so that things get imported/exported properly
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
723 c = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
724 g_snprintf(gc->username, sizeof(gc->username), "%s", c);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
725 */
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
726 } else if (!g_ascii_strcasecmp(c, "IM_IN")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
727 char *away, *message;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
728 int a = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
729
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
730 c = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
731 away = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
732
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
733 message = away;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
734 while (*message && (*message != ':'))
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
735 message++;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
736 message++;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
737
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
738 a = (away && (*away == 'T')) ? GAIM_CONV_IM_AUTO_RESP : 0;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
739
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6867
diff changeset
740 serv_got_im(gc, c, message, a, time(NULL));
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
741 } else if (!g_ascii_strcasecmp(c, "UPDATE_BUDDY")) {
2305
9ba346379088 [gaim-migrate @ 2315]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2303
diff changeset
742 char *l, *uc, *tmp;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
743 int logged, evil, idle, type = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
744 time_t signon, time_idle;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
745
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
746 c = strtok(NULL, ":"); /* name */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
747 l = strtok(NULL, ":"); /* online */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
748 sscanf(strtok(NULL, ":"), "%d", &evil);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
749 sscanf(strtok(NULL, ":"), "%ld", &signon);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
750 sscanf(strtok(NULL, ":"), "%d", &idle);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
751 uc = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
752
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
753 logged = (l && (*l == 'T')) ? 1 : 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
754
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
755 if (uc[0] == 'A')
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
756 type |= UC_AOL;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
757 switch (uc[1]) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
758 case 'A':
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
759 type |= UC_ADMIN;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
760 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
761 case 'U':
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
762 type |= UC_UNCONFIRMED;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
763 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
764 case 'O':
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
765 type |= UC_NORMAL;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
766 break;
3083
9e5972fb96df [gaim-migrate @ 3097]
Sean Egan <seanegan@pidgin.im>
parents: 3074
diff changeset
767 case 'C':
9e5972fb96df [gaim-migrate @ 3097]
Sean Egan <seanegan@pidgin.im>
parents: 3074
diff changeset
768 type |= UC_WIRELESS;
9e5972fb96df [gaim-migrate @ 3097]
Sean Egan <seanegan@pidgin.im>
parents: 3074
diff changeset
769 break;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
770 default:
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
771 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
772 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
773 if (uc[2] == 'U')
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
774 type |= UC_UNAVAILABLE;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
775
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
776 if (idle) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
777 time(&time_idle);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
778 time_idle -= idle * 60;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
779 } else
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
780 time_idle = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
781
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
782 tmp = g_strdup(gaim_normalize(gc->account, gaim_account_get_username(gc->account)));
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
783 if (!strcmp(tmp, gaim_normalize(gc->account, c)))
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
784 gaim_connection_set_display_name(gc, c);
2305
9ba346379088 [gaim-migrate @ 2315]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2303
diff changeset
785 g_free(tmp);
9ba346379088 [gaim-migrate @ 2315]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2303
diff changeset
786
4732
a0857625cadb [gaim-migrate @ 5047]
Nathan Walp <nwalp@pidgin.im>
parents: 4713
diff changeset
787 serv_got_update(gc, c, logged, evil, signon, time_idle, type);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
788 } else if (!g_ascii_strcasecmp(c, "ERROR")) {
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
789 gaim_notify_error(gc, NULL, show_error_message(), NULL);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
790 } else if (!g_ascii_strcasecmp(c, "EVILED")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
791 int lev;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
792 char *name;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
793
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
794 sscanf(strtok(NULL, ":"), "%d", &lev);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
795 name = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
796
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
797 serv_got_eviled(gc, name, lev);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
798 } else if (!g_ascii_strcasecmp(c, "CHAT_JOIN")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
799 char *name;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
800 int id;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
801
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
802 sscanf(strtok(NULL, ":"), "%d", &id);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
803 name = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
804
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
805 serv_got_joined_chat(gc, id, name);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
806 } else if (!g_ascii_strcasecmp(c, "CHAT_IN")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
807 int id, w;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
808 char *m, *who, *whisper;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
809
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
810 sscanf(strtok(NULL, ":"), "%d", &id);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
811 who = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
812 whisper = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
813 m = whisper;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
814 while (*m && (*m != ':'))
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
815 m++;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
816 m++;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
817
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
818 w = (whisper && (*whisper == 'T')) ? 1 : 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
819
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
820 serv_got_chat_in(gc, id, who, w, m, time((time_t)NULL));
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
821 } else if (!g_ascii_strcasecmp(c, "CHAT_UPDATE_BUDDY")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
822 int id;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
823 char *in, *buddy;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
824 GSList *bcs = gc->buddy_chats;
5679
943eb70954b6 [gaim-migrate @ 6097]
Nathan Walp <nwalp@pidgin.im>
parents: 5638
diff changeset
825 GaimConversation *b = NULL;
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
826 GaimConvChat *chat;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
827
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
828 sscanf(strtok(NULL, ":"), "%d", &id);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
829 in = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
830
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
831 chat = GAIM_CONV_CHAT(b);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
832
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
833 while (bcs) {
5679
943eb70954b6 [gaim-migrate @ 6097]
Nathan Walp <nwalp@pidgin.im>
parents: 5638
diff changeset
834 b = (GaimConversation *)bcs->data;
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
835 if (id == gaim_conv_chat_get_id(chat))
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
836 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
837 bcs = bcs->next;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
838 b = NULL;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
839 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
840
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
841 if (!b)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
842 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
843
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
844 if (in && (*in == 'T'))
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
845 while ((buddy = strtok(NULL, ":")) != NULL)
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
846 gaim_conv_chat_add_user(chat, buddy, NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
847 else
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
848 while ((buddy = strtok(NULL, ":")) != NULL)
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
849 gaim_conv_chat_remove_user(chat, buddy, NULL);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
850 } else if (!g_ascii_strcasecmp(c, "CHAT_INVITE")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
851 char *name, *who, *message;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
852 int id;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
853 GHashTable *components = g_hash_table_new_full(g_str_hash, g_str_equal,
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
854 g_free, g_free);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
855
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
856 name = strtok(NULL, ":");
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
857 sscanf(strtok(NULL, ":"), "%d", &id);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
858 who = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
859 message = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
860
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
861 g_hash_table_replace(components, g_strdup("id"), g_strdup_printf("%d", id));
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
862
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
863 serv_got_chat_invite(gc, name, who, message, components);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
864 } else if (!g_ascii_strcasecmp(c, "CHAT_LEFT")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
865 GSList *bcs = gc->buddy_chats;
5679
943eb70954b6 [gaim-migrate @ 6097]
Nathan Walp <nwalp@pidgin.im>
parents: 5638
diff changeset
866 GaimConversation *b = NULL;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
867 int id;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
868
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
869 sscanf(strtok(NULL, ":"), "%d", &id);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
870
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
871 while (bcs) {
5679
943eb70954b6 [gaim-migrate @ 6097]
Nathan Walp <nwalp@pidgin.im>
parents: 5638
diff changeset
872 b = (GaimConversation *)bcs->data;
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
873 if (id == gaim_conv_chat_get_id(GAIM_CONV_CHAT(b)))
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
874 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
875 b = NULL;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
876 bcs = bcs->next;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
877 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
878
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
879 if (!b)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
880 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
881
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
882 if (b->window) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
883 char error_buf[BUF_LONG];
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4455
diff changeset
884 gaim_conversation_set_account(b, NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
885 g_snprintf(error_buf, sizeof error_buf, _("You have been disconnected"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
886 " from chat room %s."), b->name);
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
887 gaim_notify_error(gc, NULL, error_buf, NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
888 } else
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
889 serv_got_chat_left(gc, id);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
890 } else if (!g_ascii_strcasecmp(c, "GOTO_URL")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
891 char *name, *url, tmp[256];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
892
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
893 name = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
894 url = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
895
4597
938654764710 [gaim-migrate @ 4882]
Mark Doliner <markdoliner@pidgin.im>
parents: 4491
diff changeset
896 g_snprintf(tmp, sizeof(tmp), "http://%s:%d/%s", tdt->toc_ip,
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
897 gaim_account_get_int(gc->account, "port", TOC_PORT),
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
898 url);
7094
8f9588491993 [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7084
diff changeset
899 gaim_url_fetch(tmp, FALSE, NULL, FALSE, toc_got_info, gc);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
900 } else if (!g_ascii_strcasecmp(c, "DIR_STATUS")) {
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
901 } else if (!g_ascii_strcasecmp(c, "ADMIN_NICK_STATUS")) {
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
902 } else if (!g_ascii_strcasecmp(c, "ADMIN_PASSWD_STATUS")) {
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
903 gaim_notify_info(gc, NULL, _("Password Change Successful"), NULL);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
904 } else if (!g_ascii_strcasecmp(c, "PAUSE")) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
905 tdt->state = STATE_PAUSE;
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
906 gaim_notify_warning(gc, NULL,
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
907 _("TOC has sent a PAUSE command."),
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
908 _("When this happens, TOC ignores any messages "
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
909 "sent to it, and may kick you off if you send a"
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
910 " message. Gaim will prevent anything from "
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
911 "going through. This is only temporary, please "
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
912 "be patient."));
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
913 } else if (!g_ascii_strcasecmp(c, "RVOUS_PROPOSE")) {
6867
ad7f499d3fe9 [gaim-migrate @ 7413]
Mark Doliner <markdoliner@pidgin.im>
parents: 6855
diff changeset
914 #if 0
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
915 char *user, *uuid, *cookie;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
916 int seq;
3159
15816c95c61c [gaim-migrate @ 3175]
Sean Egan <seanegan@pidgin.im>
parents: 3126
diff changeset
917 char *rip, *pip, *vip, *trillian = NULL;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
918 int port;
3126
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
919
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
920 user = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
921 uuid = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
922 cookie = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
923 sscanf(strtok(NULL, ":"), "%d", &seq);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
924 rip = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
925 pip = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
926 vip = strtok(NULL, ":");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
927 sscanf(strtok(NULL, ":"), "%d", &port);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
928
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
929 if (!strcmp(uuid, FILE_SEND_UID)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
930 /* they want us to get a file */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
931 int unk[4], i;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
932 char *messages[4], *tmp, *name;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
933 int subtype, files, totalsize = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
934 struct ft_request *ft;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
935
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
936 for (i = 0; i < 4; i++) {
3126
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
937 trillian = strtok(NULL, ":");
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
938 sscanf(trillian, "%d", &unk[i]);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
939 if (unk[i] == 10001)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
940 break;
3126
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
941 /* Trillian likes to send an empty token as a message, rather than
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
942 no message at all. */
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
943 if (*(trillian + strlen(trillian) +1) != ':')
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
944 frombase64(strtok(NULL, ":"), &messages[i], NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
945 }
3126
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
946
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
947 frombase64(strtok(NULL, ":"), &tmp, NULL);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
948
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
949 subtype = tmp[1];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
950 files = tmp[3];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
951
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
952 totalsize |= (tmp[4] << 24) & 0xff000000;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
953 totalsize |= (tmp[5] << 16) & 0x00ff0000;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
954 totalsize |= (tmp[6] << 8) & 0x0000ff00;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
955 totalsize |= (tmp[7] << 0) & 0x000000ff;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
956
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
957 if (!totalsize) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
958 g_free(tmp);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
959 for (i--; i >= 0; i--)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
960 g_free(messages[i]);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
961 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
962 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
963
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
964 name = tmp + 8;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
965
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
966 ft = g_new0(struct ft_request, 1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
967 ft->cookie = g_strdup(cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
968 ft->ip = g_strdup(pip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
969 ft->port = port;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
970 if (i)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
971 ft->message = g_strdup(messages[0]);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
972 else
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
973 ft->message = NULL;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
974 ft->filename = g_strdup(name);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
975 ft->user = g_strdup(user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
976 ft->size = totalsize;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
977 ft->files = files;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
978 g_snprintf(ft->UID, sizeof(ft->UID), "%s", FILE_SEND_UID);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
979 ft->gc = gc;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
980
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
981 g_free(tmp);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
982 for (i--; i >= 0; i--)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
983 g_free(messages[i]);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
984
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
985 gaim_debug(GAIM_DEBUG_MISC, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
986 "English translation of RVOUS_PROPOSE: %s requests "
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
987 "Send File (i.e. send a file to you); %s:%d "
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
988 "(verified_ip:port), %d files at total size of "
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
989 "%d bytes.\n", user, vip, port, files, totalsize);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
990 accept_file_dialog(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
991 } else if (!strcmp(uuid, FILE_GET_UID)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
992 /* they want us to send a file */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
993 int unk[4], i;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
994 char *messages[4], *tmp;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
995 struct ft_request *ft;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
996
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
997 for (i = 0; i < 4; i++) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
998 sscanf(strtok(NULL, ":"), "%d", unk + i);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
999 if (unk[i] == 10001)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1000 break;
3126
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
1001 /* Trillian likes to send an empty token as a message, rather than
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
1002 no message at all. */
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
1003 if (*(trillian + strlen(trillian) +1) != ':')
2608079efd58 [gaim-migrate @ 3141]
Sean Egan <seanegan@pidgin.im>
parents: 3100
diff changeset
1004 frombase64(strtok(NULL, ":"), &messages[i], NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1005 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1006 frombase64(strtok(NULL, ":"), &tmp, NULL);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1007
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1008 ft = g_new0(struct ft_request, 1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1009 ft->cookie = g_strdup(cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1010 ft->ip = g_strdup(pip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1011 ft->port = port;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1012 if (i)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1013 ft->message = g_strdup(messages[0]);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1014 else
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1015 ft->message = NULL;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1016 ft->user = g_strdup(user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1017 g_snprintf(ft->UID, sizeof(ft->UID), "%s", FILE_GET_UID);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1018 ft->gc = gc;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1019
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1020 g_free(tmp);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1021 for (i--; i >= 0; i--)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1022 g_free(messages[i]);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1023
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1024 accept_file_dialog(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1025 } else if (!strcmp(uuid, VOICE_UID)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1026 /* oh goody. voice over ip. fun stuff. */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1027 } else if (!strcmp(uuid, B_ICON_UID)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1028 int unk[4], i;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1029 char *messages[4];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1030 struct buddy_icon *icon;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1031
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1032 for (i = 0; i < 4; i++) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1033 sscanf(strtok(NULL, ":"), "%d", unk + i);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1034 if (unk[i] == 10001)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1035 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1036 frombase64(strtok(NULL, ":"), &messages[i], NULL);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1037 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1038 frombase64(strtok(NULL, ":"), (char **)&icon, NULL);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1039
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1040 gaim_debug(GAIM_DEBUG_MISC, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1041 "received icon of length %d\n", icon->len);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1042 g_free(icon);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1043 for (i--; i >= 0; i--)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1044 g_free(messages[i]);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1045 } else if (!strcmp(uuid, IMAGE_UID)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1046 /* aka Direct IM */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1047 } else {
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1048 gaim_debug(GAIM_DEBUG_ERROR, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1049 "Don't know what to do with RVOUS UUID %s\n", uuid);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1050 /* do we have to do anything here? i think it just times out */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1051 }
6867
ad7f499d3fe9 [gaim-migrate @ 7413]
Mark Doliner <markdoliner@pidgin.im>
parents: 6855
diff changeset
1052 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1053 } else {
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1054 gaim_debug(GAIM_DEBUG_ERROR, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1055 "don't know what to do with %s\n", c);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1056 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1057 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1058
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
1059 static int toc_send_im(GaimConnection *gc, const char *name, const char *message, GaimConvImFlags flags)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1060 {
6061
526032b3439d [gaim-migrate @ 6511]
Mark Doliner <markdoliner@pidgin.im>
parents: 6059
diff changeset
1061 char *buf1, *buf2;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1062
6855
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1063 #if 1
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1064 /* This is the old, non-i18n way */
6061
526032b3439d [gaim-migrate @ 6511]
Mark Doliner <markdoliner@pidgin.im>
parents: 6059
diff changeset
1065 buf1 = escape_text(message);
526032b3439d [gaim-migrate @ 6511]
Mark Doliner <markdoliner@pidgin.im>
parents: 6059
diff changeset
1066 if (strlen(buf1) + 52 > MSG_LEN) {
526032b3439d [gaim-migrate @ 6511]
Mark Doliner <markdoliner@pidgin.im>
parents: 6059
diff changeset
1067 g_free(buf1);
2123
4cfdde0aa3f1 [gaim-migrate @ 2133]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
1068 return -E2BIG;
2136
b90fe6b900db [gaim-migrate @ 2146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2130
diff changeset
1069 }
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1070 buf2 = g_strdup_printf("toc_send_im %s \"%s\"%s", gaim_normalize(gc->account, name), buf1,
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
1071 ((flags & GAIM_CONV_IM_AUTO_RESP) ? " auto" : ""));
6061
526032b3439d [gaim-migrate @ 6511]
Mark Doliner <markdoliner@pidgin.im>
parents: 6059
diff changeset
1072 g_free(buf1);
6855
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1073 #else
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1074 /* This doesn't work yet. See the comments below for details */
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1075 buf1 = gaim_strreplace(message, "\"", "\\\"");
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1076
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1077 /*
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1078 * We still need to determine what encoding should be used and send the
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1079 * message in that encoding. This should be done the same as in
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1080 * oscar_encoding_check() in oscar.c. There is no encoding flag sent
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1081 * along with the message--the TOC to OSCAR proxy server must just
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1082 * use a lil' algorithm to determine what the actual encoding is.
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1083 *
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1084 * After that, you need to convert buf1 to that encoding, and keep track
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1085 * of the length of the resulting string. Then you need to make sure
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1086 * that length is passed to sflap_send().
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1087 */
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1088
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6867
diff changeset
1089 if (strlen(buf1) + 52 > MSG_LEN) {
6855
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1090 g_free(buf1);
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1091 return -E2BIG;
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1092 }
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1093
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1094 buf2 = g_strdup_printf("toc2_send_im_enc %s F U en \"%s\" %s", gaim_normalize(gc->account, name), buf1,
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
1095 ((flags & GAIM_CONV_IM_AUTO_RESP) ? "auto" : ""));
6855
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1096 g_free(buf1);
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1097 #endif
5880b86410de [gaim-migrate @ 7400]
Mark Doliner <markdoliner@pidgin.im>
parents: 6787
diff changeset
1098
6061
526032b3439d [gaim-migrate @ 6511]
Mark Doliner <markdoliner@pidgin.im>
parents: 6059
diff changeset
1099 sflap_send(gc, buf2, -1, TYPE_DATA);
526032b3439d [gaim-migrate @ 6511]
Mark Doliner <markdoliner@pidgin.im>
parents: 6059
diff changeset
1100 g_free(buf2);
526032b3439d [gaim-migrate @ 6511]
Mark Doliner <markdoliner@pidgin.im>
parents: 6059
diff changeset
1101
2303
18171aa8cd37 [gaim-migrate @ 2313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
1102 return 1;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1103 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1104
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1105 static void toc_set_config(GaimConnection *gc)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1106 {
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2273
diff changeset
1107 char *buf = g_malloc(MSG_LEN), snd[BUF_LEN * 2];
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4455
diff changeset
1108 toc_build_config(gc->account, buf, MSG_LEN - strlen("toc_set_config \\{\\}"), FALSE);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1109 g_snprintf(snd, MSG_LEN, "toc_set_config {%s}", buf);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1110 sflap_send(gc, snd, -1, TYPE_DATA);
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2273
diff changeset
1111 g_free(buf);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1112 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1113
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1114 static void toc_get_info(GaimConnection *gc, const char *name)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1115 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1116 char buf[BUF_LEN * 2];
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1117 g_snprintf(buf, MSG_LEN, "toc_get_info %s", gaim_normalize(gc->account, name));
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1118 sflap_send(gc, buf, -1, TYPE_DATA);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1119 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1120
8950
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8751
diff changeset
1121 /* Should be implemented as an Account Action? */
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1122 static void toc_get_dir(GaimConnection *gc, const char *name)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1123 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1124 char buf[BUF_LEN * 2];
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1125 g_snprintf(buf, MSG_LEN, "toc_get_dir %s", gaim_normalize(gc->account, name));
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1126 sflap_send(gc, buf, -1, TYPE_DATA);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1127 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1128
8950
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8751
diff changeset
1129 #if 0
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8751
diff changeset
1130 /* Should be implemented as an Account Action */
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1131 static void toc_set_dir(GaimConnection *g, const char *first, const char *middle, const char *last,
3466
db8d35ad8480 [gaim-migrate @ 3516]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
1132 const char *maiden, const char *city, const char *state, const char *country, int web)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1133 {
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1134 char *buf3, buf2[BUF_LEN * 4], buf[BUF_LEN];
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1135 g_snprintf(buf2, sizeof(buf2), "%s:%s:%s:%s:%s:%s:%s:%s", first,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1136 middle, last, maiden, city, state, country, (web == 1) ? "Y" : "");
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1137 buf3 = escape_text(buf2);
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1138 g_snprintf(buf, sizeof(buf), "toc_set_dir %s", buf3);
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1139 g_free(buf3);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1140 sflap_send(g, buf, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1141 }
8950
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8751
diff changeset
1142 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1143
8950
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8751
diff changeset
1144 #if 0
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8751
diff changeset
1145 /* Should be implemented as an Account Action */
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1146 static void toc_dir_search(GaimConnection *g, const char *first, const char *middle, const char *last,
3466
db8d35ad8480 [gaim-migrate @ 3516]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
1147 const char *maiden, const char *city, const char *state, const char *country, const char *email)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1148 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1149 char buf[BUF_LONG];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1150 g_snprintf(buf, sizeof(buf) / 2, "toc_dir_search %s:%s:%s:%s:%s:%s:%s:%s", first, middle,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1151 last, maiden, city, state, country, email);
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1152 gaim_debug(GAIM_DEBUG_INFO, "toc",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1153 "Searching for: %s,%s,%s,%s,%s,%s,%s\n",
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1154 first, middle, last, maiden,
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1155 city, state, country);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1156 sflap_send(g, buf, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1157 }
8950
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8751
diff changeset
1158 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1159
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1160 static void toc_set_away(GaimConnection *g, const char *state, const char *message)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1161 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1162 char buf[BUF_LEN * 2];
4111
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 3867
diff changeset
1163 if (g->away) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1164 g_free (g->away);
4111
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 3867
diff changeset
1165 g->away = NULL;
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 3867
diff changeset
1166 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1167 if (message) {
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1168 char *tmp;
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1169 g->away = g_strdup(message);
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1170 tmp = escape_text(message);
3188
a71bad9ff940 [gaim-migrate @ 3205]
Robert McQueen <robot101@debian.org>
parents: 3159
diff changeset
1171 g_snprintf(buf, MSG_LEN, "toc_set_away \"%s\"", tmp);
a71bad9ff940 [gaim-migrate @ 3205]
Robert McQueen <robot101@debian.org>
parents: 3159
diff changeset
1172 g_free(tmp);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1173 } else
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1174 g_snprintf(buf, MSG_LEN, "toc_set_away \"\"");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1175 sflap_send(g, buf, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1176 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1177
5954
58e43cf2dc1f [gaim-migrate @ 6398]
Mark Doliner <markdoliner@pidgin.im>
parents: 5920
diff changeset
1178 static void toc_set_info(GaimConnection *g, const char *info)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1179 {
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1180 char buf[BUF_LEN * 2], *buf2;
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1181 buf2 = escape_text(info);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1182 g_snprintf(buf, sizeof(buf), "toc_set_info \"%s\n\"", buf2);
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1183 g_free(buf2);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1184 sflap_send(g, buf, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1185 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1186
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1187 static void toc_change_passwd(GaimConnection *g, const char *orig, const char *new)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1188 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1189 char buf[BUF_LEN * 2];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1190 g_snprintf(buf, BUF_LONG, "toc_change_passwd %s %s", orig, new);
6306
f9d30aa38b64 [gaim-migrate @ 6805]
Mark Doliner <markdoliner@pidgin.im>
parents: 6115
diff changeset
1191 sflap_send(g, buf, -1, TYPE_DATA);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1192 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1193
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1194 static void
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1195 toc_add_buddy(GaimConnection *gc, const char *name, GaimGroup *group)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1196 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1197 char buf[BUF_LEN * 2];
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1198 g_snprintf(buf, sizeof(buf), "toc_add_buddy %s", gaim_normalize(gc->account, name));
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1199 sflap_send(gc, buf, -1, TYPE_DATA);
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1200 toc_set_config(gc);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1201 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1202
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1203 static void toc_add_buddies(GaimConnection *gc, GList *buddies)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1204 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1205 char buf[BUF_LEN * 2];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1206 int n;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1207
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1208 n = g_snprintf(buf, sizeof(buf), "toc_add_buddy");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1209 while (buddies) {
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1210 if (strlen(gaim_normalize(gc->account, buddies->data)) + n + 32 > MSG_LEN) {
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1211 sflap_send(gc, buf, -1, TYPE_DATA);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1212 n = g_snprintf(buf, sizeof(buf), "toc_add_buddy");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1213 }
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1214 n += g_snprintf(buf + n, sizeof(buf) - n, " %s", gaim_normalize(gc->account, buddies->data));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1215 buddies = buddies->next;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1216 }
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1217 sflap_send(gc, buf, -1, TYPE_DATA);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1218 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1219
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1220 static void toc_remove_buddy(GaimConnection *gc, const char *name, const char *group)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1221 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1222 char buf[BUF_LEN * 2];
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1223 g_snprintf(buf, sizeof(buf), "toc_remove_buddy %s", gaim_normalize(gc->account, name));
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1224 sflap_send(gc, buf, -1, TYPE_DATA);
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1225 toc_set_config(gc);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1226 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1227
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1228 static void toc_remove_buddies(GaimConnection *gc, GList *buddies, const char *group)
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1229 {
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1230 char buf[BUF_LEN * 2];
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1231 int n;
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1232
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1233 n = g_snprintf(buf, sizeof(buf), "toc_remove_buddy");
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1234 while (buddies) {
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1235 if (strlen(gaim_normalize(gc->account, buddies->data)) + n + 32 > MSG_LEN) {
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1236 sflap_send(gc, buf, -1, TYPE_DATA);
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1237 n = g_snprintf(buf, sizeof(buf), "toc_remove_buddy");
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1238 }
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1239 n += g_snprintf(buf + n, sizeof(buf) - n, " %s", gaim_normalize(gc->account, buddies->data));
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1240 buddies = buddies->next;
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1241 }
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1242 sflap_send(gc, buf, -1, TYPE_DATA);
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1243 toc_set_config(gc);
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1244 }
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1245
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1246 static void toc_set_idle(GaimConnection *g, int time)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1247 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1248 char buf[BUF_LEN * 2];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1249 g_snprintf(buf, sizeof(buf), "toc_set_idle %d", time);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1250 sflap_send(g, buf, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1251 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1252
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1253 static void toc_warn(GaimConnection *g, const char *name, int anon)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1254 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1255 char send[BUF_LEN * 2];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1256 g_snprintf(send, 255, "toc_evil %s %s", name, ((anon) ? "anon" : "norm"));
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1257 sflap_send(g, send, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1258 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1259
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1260 static GList *toc_chat_info(GaimConnection *gc)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1261 {
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1262 GList *m = NULL;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1263 struct proto_chat_entry *pce;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1264
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1265 pce = g_new0(struct proto_chat_entry, 1);
7841
0000a4c68bf8 [gaim-migrate @ 8494]
Mark Doliner <markdoliner@pidgin.im>
parents: 7606
diff changeset
1266 pce->label = _("_Group:");
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1267 pce->identifier = "room";
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1268 m = g_list_append(m, pce);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1269
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1270 pce = g_new0(struct proto_chat_entry, 1);
7841
0000a4c68bf8 [gaim-migrate @ 8494]
Mark Doliner <markdoliner@pidgin.im>
parents: 7606
diff changeset
1271 pce->label = _("_Exchange:");
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1272 pce->identifier = "exchange";
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1273 pce->is_int = TRUE;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1274 pce->min = 4;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1275 pce->max = 20;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1276 m = g_list_append(m, pce);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1277
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1278 return m;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1279 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1280
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1281 static void toc_join_chat(GaimConnection *g, GHashTable *data)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1282 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1283 char buf[BUF_LONG];
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1284 char *name, *exchange;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1285 char *id;
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1286
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1287 name = g_hash_table_lookup(data, "room");
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1288 exchange = g_hash_table_lookup(data, "exchange");
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1289 id = g_hash_table_lookup(data, "id");
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1290
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1291 if (id) {
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1292 g_snprintf(buf, 255, "toc_chat_accept %d", atoi(id));
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1293 } else {
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5205
diff changeset
1294 g_snprintf(buf, sizeof(buf) / 2, "toc_chat_join %d \"%s\"", atoi(exchange), name);
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1295 }
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
1296
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1297 sflap_send(g, buf, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1298 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1299
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1300 static void toc_chat_invite(GaimConnection *gc, int id, const char *message, const char *name)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1301 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1302 char buf[BUF_LONG];
2719
60c6fc25cef8 [gaim-migrate @ 2732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2706
diff changeset
1303 g_snprintf(buf, sizeof(buf) / 2, "toc_chat_invite %d \"%s\" %s", id,
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1304 message ? message : "", gaim_normalize(gc->account, name));
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1305 sflap_send(gc, buf, -1, TYPE_DATA);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1306 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1307
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1308 static void toc_chat_leave(GaimConnection *g, int id)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1309 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1310 GSList *bcs = g->buddy_chats;
5679
943eb70954b6 [gaim-migrate @ 6097]
Nathan Walp <nwalp@pidgin.im>
parents: 5638
diff changeset
1311 GaimConversation *b = NULL;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1312 char buf[BUF_LEN * 2];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1313
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1314 while (bcs) {
5679
943eb70954b6 [gaim-migrate @ 6097]
Nathan Walp <nwalp@pidgin.im>
parents: 5638
diff changeset
1315 b = (GaimConversation *)bcs->data;
7118
280b3b85a28a [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7117
diff changeset
1316 if (id == gaim_conv_chat_get_id(GAIM_CONV_CHAT(b)))
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1317 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1318 b = NULL;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1319 bcs = bcs->next;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1320 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1321
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1322 if (!b)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1323 return; /* can this happen? */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1324
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4455
diff changeset
1325 if (gaim_conversation_get_account(b) == NULL) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1326 /* TOC already kicked us out of this room */
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1327 serv_got_chat_left(g, id);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1328 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1329 else {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1330 g_snprintf(buf, 255, "toc_chat_leave %d", id);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1331 sflap_send(g, buf, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1332 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1333 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1334
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1335 static void toc_chat_whisper(GaimConnection *gc, int id, const char *who, const char *message)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1336 {
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1337 char *buf1, *buf2;
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1338 buf1 = escape_text(message);
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1339 buf2 = g_strdup_printf("toc_chat_whisper %d %s \"%s\"", id, gaim_normalize(gc->account, who), buf1);
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1340 g_free(buf1);
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1341 sflap_send(gc, buf2, -1, TYPE_DATA);
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1342 g_free(buf2);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1343 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1344
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1345 static int toc_chat_send(GaimConnection *g, int id, const char *message)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1346 {
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1347 char *buf1, *buf2;
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1348 buf1 = escape_text(message);
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1349 if (strlen(buf1) > 2000) {
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1350 g_free(buf1);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
1351 return -E2BIG;
6059
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1352 }
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1353 buf2 = g_strdup_printf("toc_chat_send %d \"%s\"", id, buf1);
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1354 g_free(buf1);
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1355 sflap_send(g, buf2, -1, TYPE_DATA);
9934c862ca14 [gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents: 5971
diff changeset
1356 g_free(buf2);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
1357 return 0;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1358 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1359
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1360 static void toc_keepalive(GaimConnection *gc)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1361 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1362 sflap_send(gc, "", 0, TYPE_KEEPALIVE);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1363 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1364
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
1365 static const char *toc_list_icon(GaimAccount *a, GaimBuddy *b)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1366 {
5971
317dcccc47f8 [gaim-migrate @ 6418]
Mark Doliner <markdoliner@pidgin.im>
parents: 5966
diff changeset
1367 if (!b || (b && b->name && b->name[0] == '+')) {
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
1368 if (a != NULL && isdigit(*gaim_account_get_username(a)))
5971
317dcccc47f8 [gaim-migrate @ 6418]
Mark Doliner <markdoliner@pidgin.im>
parents: 5966
diff changeset
1369 return "icq";
317dcccc47f8 [gaim-migrate @ 6418]
Mark Doliner <markdoliner@pidgin.im>
parents: 5966
diff changeset
1370 else
317dcccc47f8 [gaim-migrate @ 6418]
Mark Doliner <markdoliner@pidgin.im>
parents: 5966
diff changeset
1371 return "aim";
317dcccc47f8 [gaim-migrate @ 6418]
Mark Doliner <markdoliner@pidgin.im>
parents: 5966
diff changeset
1372 }
317dcccc47f8 [gaim-migrate @ 6418]
Mark Doliner <markdoliner@pidgin.im>
parents: 5966
diff changeset
1373
317dcccc47f8 [gaim-migrate @ 6418]
Mark Doliner <markdoliner@pidgin.im>
parents: 5966
diff changeset
1374 if (b && b->name && isdigit(b->name[0]))
317dcccc47f8 [gaim-migrate @ 6418]
Mark Doliner <markdoliner@pidgin.im>
parents: 5966
diff changeset
1375 return "icq";
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
1376 return "aim";
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
1377 }
4916
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1378
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6623
diff changeset
1379 static void toc_list_emblems(GaimBuddy *b, char **se, char **sw, char **nw, char **ne)
4916
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1380 {
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1381 char *emblems[4] = {NULL,NULL,NULL,NULL};
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1382 int i = 0;
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1383
5971
317dcccc47f8 [gaim-migrate @ 6418]
Mark Doliner <markdoliner@pidgin.im>
parents: 5966
diff changeset
1384 if (!GAIM_BUDDY_IS_ONLINE(b)) {
4916
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1385 *se = "offline";
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1386 return;
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1387 } else {
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1388 if (b->uc & UC_UNAVAILABLE)
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1389 emblems[i++] = "away";
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1390 if (b->uc & UC_AOL)
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1391 emblems[i++] = "aol";
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1392 if (b->uc & UC_ADMIN)
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1393 emblems[i++] = "admin";
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1394 if (b->uc & UC_WIRELESS)
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1395 emblems[i++] = "wireless";
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1396 }
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1397 *se = emblems[0];
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1398 *sw = emblems[1];
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1399 *nw = emblems[2];
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1400 *ne = emblems[3];
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4834
diff changeset
1401 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1402
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1403 static GList *toc_buddy_menu(GaimConnection *gc, const char *who)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1404 {
2170
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1405 GList *m = NULL;
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1406 struct proto_buddy_menu *pbm;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1407
2170
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1408 pbm = g_new0(struct proto_buddy_menu, 1);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1409 pbm->label = _("Get Dir Info");
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1410 pbm->callback = toc_get_dir;
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1411 pbm->gc = gc;
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1412 m = g_list_append(m, pbm);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1413
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2167
diff changeset
1414 return m;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1415 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1416
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1417 static void toc_add_permit(GaimConnection *gc, const char *who)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1418 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1419 char buf2[BUF_LEN * 2];
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1420 if (gc->account->perm_deny != 3)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1421 return;
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1422 g_snprintf(buf2, sizeof(buf2), "toc_add_permit %s", gaim_normalize(gc->account, who));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1423 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1424 toc_set_config(gc);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1425 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1426
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1427 static void toc_add_deny(GaimConnection *gc, const char *who)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1428 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1429 char buf2[BUF_LEN * 2];
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1430 if (gc->account->perm_deny != 4)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1431 return;
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1432 g_snprintf(buf2, sizeof(buf2), "toc_add_deny %s", gaim_normalize(gc->account, who));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1433 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1434 toc_set_config(gc);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1435 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1436
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1437 static void toc_set_permit_deny(GaimConnection *gc)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1438 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1439 char buf2[BUF_LEN * 2];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1440 GSList *list;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1441 int at;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1442
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1443 switch (gc->account->perm_deny) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1444 case 1:
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1445 /* permit all, deny none. to get here reliably we need to have been in permit
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1446 * mode, and send an empty toc_add_deny message, which will switch us to deny none */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1447 g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1448 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1449 g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1450 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1451 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1452 case 2:
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1453 /* deny all, permit none. to get here reliably we need to have been in deny
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1454 * mode, and send an empty toc_add_permit message, which will switch us to permit none */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1455 g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1456 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1457 g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1458 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1459 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1460 case 3:
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1461 /* permit some. we want to switch to deny mode first, then send the toc_add_permit
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1462 * message, which will clear and set our permit list. toc sucks. */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1463 g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1464 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1465
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1466 at = g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4455
diff changeset
1467 list = gc->account->permit;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1468 while (list) {
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1469 at += g_snprintf(buf2 + at, sizeof(buf2) - at, "%s ", gaim_normalize(gc->account, list->data));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1470 if (at > MSG_LEN + 32) { /* from out my ass comes greatness */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1471 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1472 at = g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1473 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1474 list = list->next;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1475 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1476 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1477 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1478 case 4:
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1479 /* deny some. we want to switch to permit mode first, then send the toc_add_deny
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1480 * message, which will clear and set our deny list. toc sucks. */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1481 g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1482 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1483
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1484 at = g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4455
diff changeset
1485 list = gc->account->deny;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1486 while (list) {
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7118
diff changeset
1487 at += g_snprintf(buf2 + at, sizeof(buf2) - at, "%s ", gaim_normalize(gc->account, list->data));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1488 if (at > MSG_LEN + 32) { /* from out my ass comes greatness */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1489 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1490 at = g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1491 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1492 list = list->next;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1493 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1494 sflap_send(gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1495 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1496 default:
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1497 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1498 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1499 toc_set_config(gc);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1500 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1501
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1502 static void toc_rem_permit(GaimConnection *gc, const char *who)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1503 {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1504 if (gc->account->perm_deny != 3)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1505 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1506 toc_set_permit_deny(gc);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1507 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1508
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1509 static void toc_rem_deny(GaimConnection *gc, const char *who)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1510 {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1511 if (gc->account->perm_deny != 4)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1512 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1513 toc_set_permit_deny(gc);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1514 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1515
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1516 static GList *toc_away_states(GaimConnection *gc)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1517 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1518 return g_list_append(NULL, GAIM_AWAY_CUSTOM);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1519 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1520
7063
4bfe512a4b8c [gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents: 7062
diff changeset
1521 static void
7067
c57295414efa [gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents: 7063
diff changeset
1522 show_set_info(GaimConnection *gc)
c57295414efa [gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents: 7063
diff changeset
1523 {
c57295414efa [gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents: 7063
diff changeset
1524 gaim_account_request_change_user_info(gaim_connection_get_account(gc));
c57295414efa [gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents: 7063
diff changeset
1525 }
c57295414efa [gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents: 7063
diff changeset
1526
c57295414efa [gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents: 7063
diff changeset
1527 static void
7063
4bfe512a4b8c [gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents: 7062
diff changeset
1528 change_pass(GaimConnection *gc)
4bfe512a4b8c [gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents: 7062
diff changeset
1529 {
4bfe512a4b8c [gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents: 7062
diff changeset
1530 gaim_account_request_change_password(gaim_connection_get_account(gc));
4bfe512a4b8c [gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents: 7062
diff changeset
1531 }
4bfe512a4b8c [gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents: 7062
diff changeset
1532
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1533 static GList *toc_actions(GaimConnection *gc)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1534 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1535 GList *m = NULL;
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1536 struct proto_actions_menu *pam;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1537
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1538 pam = g_new0(struct proto_actions_menu, 1);
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1539 pam->label = _("Set User Info");
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1540 pam->callback = show_set_info;
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1541 pam->gc = gc;
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1542 m = g_list_append(m, pam);
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1543
7080
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
1544 #if 0
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1545 pam = g_new0(struct proto_actions_menu, 1);
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1546 pam->label = _("Set Dir Info");
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1547 pam->callback = show_set_dir;
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1548 pam->gc = gc;
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1549 m = g_list_append(m, pam);
7080
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
1550 #endif
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1551
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1552 pam = g_new0(struct proto_actions_menu, 1);
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1553 pam->label = _("Change Password");
7063
4bfe512a4b8c [gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents: 7062
diff changeset
1554 pam->callback = change_pass;
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1555 pam->gc = gc;
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4322
diff changeset
1556 m = g_list_append(m, pam);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1557
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1558 return m;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1559 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1560
6867
ad7f499d3fe9 [gaim-migrate @ 7413]
Mark Doliner <markdoliner@pidgin.im>
parents: 6855
diff changeset
1561 #if 0
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1562 /*********
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1563 * RVOUS ACTIONS
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1564 ********/
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1565
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1566 struct file_header {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1567 char magic[4]; /* 0 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1568 short hdrlen; /* 4 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1569 short hdrtype; /* 6 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1570 char bcookie[8]; /* 8 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1571 short encrypt; /* 16 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1572 short compress; /* 18 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1573 short totfiles; /* 20 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1574 short filesleft; /* 22 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1575 short totparts; /* 24 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1576 short partsleft; /* 26 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1577 long totsize; /* 28 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1578 long size; /* 32 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1579 long modtime; /* 36 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1580 long checksum; /* 40 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1581 long rfrcsum; /* 44 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1582 long rfsize; /* 48 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1583 long cretime; /* 52 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1584 long rfcsum; /* 56 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1585 long nrecvd; /* 60 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1586 long recvcsum; /* 64 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1587 char idstring[32]; /* 68 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1588 char flags; /* 100 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1589 char lnameoffset; /* 101 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1590 char lsizeoffset; /* 102 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1591 char dummy[69]; /* 103 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1592 char macfileinfo[16]; /* 172 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1593 short nencode; /* 188 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1594 short nlanguage; /* 190 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1595 char name[64]; /* 192 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1596 /* 256 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1597 };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1598
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1599 struct file_transfer {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1600 struct file_header hdr;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1601
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1602 GaimConnection *gc;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1603
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1604 char *user;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1605 char *cookie;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1606 char *ip;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1607 int port;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1608 long size;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1609 struct stat st;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1610
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1611 GtkWidget *window;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1612 int files;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1613 char *filename;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1614 FILE *file;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1615 int recvsize;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1616
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1617 gint inpa;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1618 };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1619
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1620 static void debug_header(struct file_transfer *ft) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1621 struct file_header *f = (struct file_header *)ft;
6484
b8558c29e331 [gaim-migrate @ 6998]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1622 gaim_debug(GAIM_DEBUG_MISC, "toc", "FT HEADER:\n"
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1623 "\t%s %d 0x%04x\n"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1624 "\t%s %d %d\n"
4201
547da94c5a14 [gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents: 4115
diff changeset
1625 "\t%d %d %d %d %d %d\n"
547da94c5a14 [gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents: 4115
diff changeset
1626 "\t%d %d %d %d %d %d %d %d\n"
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1627 "\t%s\n"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1628 "\t0x%02x, 0x%02x, 0x%02x\n"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1629 "\t%s %s\n"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1630 "\t%d %d\n"
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1631 "\t%s\n",
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1632 f->magic, ntohs(f->hdrlen), f->hdrtype,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1633 f->bcookie, ntohs(f->encrypt), ntohs(f->compress),
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1634 ntohs(f->totfiles), ntohs(f->filesleft), ntohs(f->totparts),
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1635 ntohs(f->partsleft), ntohl(f->totsize), ntohl(f->size),
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1636 ntohl(f->modtime), ntohl(f->checksum), ntohl(f->rfrcsum), ntohl(f->rfsize),
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1637 ntohl(f->cretime), ntohl(f->rfcsum), ntohl(f->nrecvd),
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1638 ntohl(f->recvcsum),
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1639 f->idstring,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1640 f->flags, f->lnameoffset, f->lsizeoffset,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1641 f->dummy, f->macfileinfo,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1642 ntohs(f->nencode), ntohs(f->nlanguage),
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1643 f->name);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1644 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1645
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1646 static void toc_send_file_callback(gpointer data, gint source, GaimInputCondition cond)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1647 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1648 char buf[BUF_LONG];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1649 int rt, i;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1650
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1651 struct file_transfer *ft = data;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1652
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1653 if (ft->hdr.hdrtype != 0x202) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1654 char *buf;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1655 frombase64(ft->cookie, &buf, NULL);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1656
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1657 toc_read(source, ft, 8);
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1658 toc_read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1659 debug_header(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1660
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1661 ft->hdr.hdrtype = 0x202;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1662 memcpy(ft->hdr.bcookie, buf, 8);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1663 g_free(buf);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1664 ft->hdr.encrypt = 0; ft->hdr.compress = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1665 debug_header(ft);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1666 toc_write(source, ft, 256);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1667
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1668 if (ft->files == 1) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1669 ft->file = fopen(ft->filename, "w");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1670 if (!ft->file) {
4115
7a92554f5800 [gaim-migrate @ 4332]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4111
diff changeset
1671 buf = g_strdup_printf(_("Could not open %s for writing!"), ft->filename);
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1672 gaim_notify_error(ft->gc, NULL, buf, strerror(errno));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1673 g_free(buf);
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1674 gaim_input_remove(ft->inpa);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1675 toc_soc_close(source);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1676 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1677 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1678 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1679 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1680 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1681 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1682 } else {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1683 buf = g_strdup_printf("%s/%s", ft->filename, ft->hdr.name);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1684 ft->file = fopen(buf, "w");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1685 g_free(buf);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1686 if (!ft->file) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1687 buf = g_strdup_printf("Could not open %s/%s for writing!", ft->filename,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1688 ft->hdr.name);
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1689 gaim_notify_error(ft->gc, NULL, buf, strerror(errno));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1690 g_free(buf);
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1691 gaim_input_remove(ft->inpa);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1692 toc_soc_close(source);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1693 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1694 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1695 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1696 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1697 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1698 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1699 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1700
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1701 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1702 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1703
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1704 rt = toc_read(source, buf, MIN(ntohl(ft->hdr.size) - ft->recvsize, 1024));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1705 if (rt < 0) {
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1706 gaim_notify_error(ft->gc, NULL,
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1707 _("File transfer failed; other side probably "
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1708 "canceled."), NULL);
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1709 gaim_input_remove(ft->inpa);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1710 toc_soc_close(source);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1711 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1712 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1713 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1714 if (ft->file)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1715 fclose(ft->file);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1716 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1717 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1718 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1719 ft->recvsize += rt;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1720 for (i = 0; i < rt; i++)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1721 fprintf(ft->file, "%c", buf[i]);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1722
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1723 if (ft->recvsize == ntohl(ft->hdr.size)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1724 ft->hdr.hdrtype = htons(0x0204);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1725 ft->hdr.filesleft = htons(ntohs(ft->hdr.filesleft) - 1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1726 ft->hdr.partsleft = htons(ntohs(ft->hdr.partsleft) - 1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1727 ft->hdr.recvcsum = ft->hdr.checksum; /* uh... */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1728 ft->hdr.nrecvd = htons(ntohs(ft->hdr.nrecvd) + 1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1729 ft->hdr.flags = 0;
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1730 toc_write(source, ft, 256);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1731 debug_header(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1732 ft->recvsize = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1733 fclose(ft->file);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1734 if (ft->hdr.filesleft == 0) {
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1735 gaim_input_remove(ft->inpa);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1736 toc_soc_close(source);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1737 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1738 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1739 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1740 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1741 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1742 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1743 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1744 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1745
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1746 static void toc_send_file_connect(gpointer data, gint src, GaimInputCondition cond)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1747 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1748 struct file_transfer *ft = data;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1749
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1750 if (src == -1) {
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1751 gaim_notify_error(ft->gc, NULL,
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1752 _("Could not connect for transfer."), NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1753 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1754 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1755 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1756 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1757 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1758 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1759 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1760
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1761 ft->inpa = gaim_input_add(src, GAIM_INPUT_READ, toc_send_file_callback, ft);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1762 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1763
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1764 static void toc_send_file(gpointer a, struct file_transfer *old_ft)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1765 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1766 struct file_transfer *ft;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1767 const char *dirname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(old_ft->window));
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1768 GaimAccount *account;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1769 char buf[BUF_LEN * 2];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1770
5966
91a208b3e979 [gaim-migrate @ 6413]
Mark Doliner <markdoliner@pidgin.im>
parents: 5959
diff changeset
1771 if (gaim_gtk_check_if_dir(dirname, GTK_FILE_SELECTION(old_ft->window)))
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1772 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1773 ft = g_new0(struct file_transfer, 1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1774 if (old_ft->files == 1)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1775 ft->filename = g_strdup(dirname);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1776 else
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
1777 ft->filename = g_path_get_dirname(dirname);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1778 ft->cookie = g_strdup(old_ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1779 ft->user = g_strdup(old_ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1780 ft->ip = g_strdup(old_ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1781 ft->files = old_ft->files;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1782 ft->port = old_ft->port;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1783 ft->gc = old_ft->gc;
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4455
diff changeset
1784 account = ft->gc->account;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1785 gtk_widget_destroy(old_ft->window);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1786
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1787 g_snprintf(buf, sizeof(buf), "toc_rvous_accept %s %s %s", ft->user, ft->cookie, FILE_SEND_UID);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1788 sflap_send(ft->gc, buf, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1789
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5679
diff changeset
1790 if (gaim_proxy_connect(account, ft->ip, ft->port, toc_send_file_connect, ft) != 0) {
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1791 gaim_notify_error(ft->gc, NULL,
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1792 _("Could not connect for transfer."), NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1793 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1794 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1795 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1796 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1797 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1798 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1799 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1800 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1801
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1802 static void toc_get_file_callback(gpointer data, gint source, GaimInputCondition cond)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1803 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1804 char buf[BUF_LONG];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1805
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1806 struct file_transfer *ft = data;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1807
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1808 if (cond & GAIM_INPUT_WRITE) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1809 int remain = MIN(ntohl(ft->hdr.totsize) - ft->recvsize, 1024);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1810 int i;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1811 for (i = 0; i < remain; i++)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1812 fscanf(ft->file, "%c", &buf[i]);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1813 toc_write(source, buf, remain);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1814 ft->recvsize += remain;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1815 if (ft->recvsize == ntohl(ft->hdr.totsize)) {
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1816 gaim_input_remove(ft->inpa);
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1817 ft->inpa = gaim_input_add(source, GAIM_INPUT_READ,
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1818 toc_get_file_callback, ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1819 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1820 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1821 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1822
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1823 if (ft->hdr.hdrtype == htons(0x1108)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1824 struct tm *fortime;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1825 struct stat st;
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
1826 char *basename;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1827
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1828 toc_read(source, ft, 8);
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1829 toc_read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1830 debug_header(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1831
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1832 stat(ft->filename, &st);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1833 fortime = localtime(&st.st_mtime);
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
1834 basename = g_path_get_basename(ft->filename);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1835 g_snprintf(buf, sizeof(buf), "%2d/%2d/%4d %2d:%2d %8ld %s\r\n",
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1836 fortime->tm_mon + 1, fortime->tm_mday, fortime->tm_year + 1900,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1837 fortime->tm_hour + 1, fortime->tm_min + 1, (long)st.st_size,
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
1838 basename);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1839 toc_write(source, buf, ntohl(ft->hdr.size));
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
1840 g_free(basename);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1841 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1842 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1843
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1844 if (ft->hdr.hdrtype == htons(0x1209)) {
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1845 toc_read(source, ft, 8);
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1846 toc_read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1847 debug_header(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1848 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1849 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1850
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1851 if (ft->hdr.hdrtype == htons(0x120b)) {
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1852 toc_read(source, ft, 8);
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1853 toc_read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1854 debug_header(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1855
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1856 if (ft->hdr.hdrtype != htons(0x120c)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1857 g_snprintf(buf, sizeof(buf), "%s decided to cancel the transfer", ft->user);
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1858 gaim_notify_error(ft->gc, NULL, buf, NULL);
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1859 gaim_input_remove(ft->inpa);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1860 toc_soc_close(source);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1861 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1862 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1863 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1864 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1865 if (ft->file)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1866 fclose(ft->file);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1867 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1868 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1869 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1870
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1871 ft->hdr.hdrtype = 0x0101;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1872 ft->hdr.totfiles = htons(1); ft->hdr.filesleft = htons(1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1873 ft->hdr.flags = 0x20;
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1874 toc_write(source, ft, 256);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1875 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1876 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1877
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1878 if (ft->hdr.hdrtype == 0x0101) {
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1879 toc_read(source, ft, 8);
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1880 toc_read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1881 debug_header(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1882
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1883 gaim_input_remove(ft->inpa);
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1884 ft->inpa = gaim_input_add(source, GAIM_INPUT_WRITE,
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1885 toc_get_file_callback, ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1886 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1887 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1888
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1889 if (ft->hdr.hdrtype == 0x0202) {
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1890 toc_read(source, ft, 8);
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1891 toc_read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1892 debug_header(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1893
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1894 gaim_input_remove(ft->inpa);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1895 toc_soc_close(source);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1896 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1897 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1898 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1899 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1900 if (ft->file)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1901 fclose(ft->file);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1902 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1903 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1904 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1905 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1906
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1907 static void toc_get_file_connect(gpointer data, gint src, GaimInputCondition cond)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1908 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1909 struct file_transfer *ft = data;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1910 struct file_header *hdr;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1911 char *buf;
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
1912 char *basename;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1913
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1914 if (src == -1) {
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1915 gaim_notify_error(ft->gc, NULL,
7981
332cd6342bab [gaim-migrate @ 8658]
Luke Schierer <lschiere@pidgin.im>
parents: 7956
diff changeset
1916 _("Could not connect for transfer."), NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1917 fclose(ft->file);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1918 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1919 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1920 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1921 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1922 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1923 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1924 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1925
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1926 hdr = (struct file_header *)ft;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1927 hdr->magic[0] = 'O'; hdr->magic[1] = 'F'; hdr->magic[2] = 'T'; hdr->magic[3] = '2';
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1928 hdr->hdrlen = htons(256);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1929 hdr->hdrtype = htons(0x1108);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1930 frombase64(ft->cookie, &buf, NULL);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1931 g_snprintf(hdr->bcookie, 8, "%s", buf);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1932 g_free(buf);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1933 hdr->totfiles = htons(1); hdr->filesleft = htons(1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1934 hdr->totparts = htons(1); hdr->partsleft = htons(1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1935 hdr->totsize = htonl((long)ft->st.st_size); /* combined size of all files */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1936 /* size = strlen("mm/dd/yyyy hh:mm sizesize 'name'\r\n") */
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
1937 basename = g_path_get_basename(ft->filename);
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
1938 hdr->size = htonl(28 + strlen(basename)); /* size of listing.txt */
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4785
diff changeset
1939 g_free(basename);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1940 hdr->modtime = htonl(ft->st.st_mtime);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1941 hdr->checksum = htonl(0x89f70000); /* uh... */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1942 g_snprintf(hdr->idstring, 32, "OFT_Windows ICBMFT V1.1 32");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1943 hdr->flags = 0x02;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1944 hdr->lnameoffset = 0x1A;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1945 hdr->lsizeoffset = 0x10;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1946 g_snprintf(hdr->name, 64, "listing.txt");
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
1947 if (toc_write(src, hdr, 256) < 0) {
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1948 gaim_notify_error(ft->gc, NULL,
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1949 _("Could not write file header. The file will "
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1950 "not be transferred."), NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1951 fclose(ft->file);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1952 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1953 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1954 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1955 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1956 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1957 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1958 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1959
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2086
diff changeset
1960 ft->inpa = gaim_input_add(src, GAIM_INPUT_READ, toc_get_file_callback, ft);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1961 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1962
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1963 static void toc_get_file(gpointer a, struct file_transfer *old_ft)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1964 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1965 struct file_transfer *ft;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1966 const char *dirname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(old_ft->window));
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
1967 GaimAccount *account;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1968 char *buf, buf2[BUF_LEN * 2];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1969
5966
91a208b3e979 [gaim-migrate @ 6413]
Mark Doliner <markdoliner@pidgin.im>
parents: 5959
diff changeset
1970 if (gaim_gtk_check_if_dir(dirname, GTK_FILE_SELECTION(old_ft->window)))
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1971 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1972 ft = g_new0(struct file_transfer, 1);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1973 ft->filename = g_strdup(dirname);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1974 ft->file = fopen(ft->filename, "r");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1975 if (!ft->file) {
3427
75387df65a9b [gaim-migrate @ 3453]
Sean Egan <seanegan@pidgin.im>
parents: 3188
diff changeset
1976 buf = g_strdup_printf("Unable to open %s for transfer.", ft->filename);
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1977 gaim_notify_error(ft->gc, NULL, buf, NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1978 g_free(buf);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1979 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1980 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1981 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1982 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1983 if (stat(dirname, &ft->st)) {
3427
75387df65a9b [gaim-migrate @ 3453]
Sean Egan <seanegan@pidgin.im>
parents: 3188
diff changeset
1984 buf = g_strdup_printf("Unable to examine %s.", dirname);
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
1985 gaim_notify_error(ft->gc, NULL, buf, NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1986 g_free(buf);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1987 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1988 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1989 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1990 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1991 ft->cookie = g_strdup(old_ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1992 ft->user = g_strdup(old_ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1993 ft->ip = g_strdup(old_ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1994 ft->port = old_ft->port;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1995 ft->gc = old_ft->gc;
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4455
diff changeset
1996 account = ft->gc->account;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1997 gtk_widget_destroy(old_ft->window);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1998
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1999 g_snprintf(buf2, sizeof(buf2), "toc_rvous_accept %s %s %s", ft->user, ft->cookie, FILE_GET_UID);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2000 sflap_send(ft->gc, buf2, -1, TYPE_DATA);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2001
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5679
diff changeset
2002 if (gaim_proxy_connect(account, ft->ip, ft->port, toc_get_file_connect, ft) < 0) {
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
2003 gaim_notify_error(ft->gc, NULL,
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5234
diff changeset
2004 _("Could not connect for transfer."), NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2005 fclose(ft->file);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2006 g_free(ft->filename);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2007 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2008 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2009 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2010 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2011 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2012 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2013 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2014
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2015 static void cancel_callback(gpointer a, struct file_transfer *ft) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2016 gtk_widget_destroy(ft->window);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2017 if (a == ft->window) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2018 g_free(ft->cookie);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2019 g_free(ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2020 g_free(ft->ip);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2021 g_free(ft);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2022 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2023 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2024
3867
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2025 static void toc_reject_ft(struct ft_request *ft) {
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2026 g_free(ft->user);
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2027 g_free(ft->filename);
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2028 g_free(ft->ip);
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2029 g_free(ft->cookie);
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2030 if (ft->message)
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2031 g_free(ft->message);
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2032 g_free(ft);
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2033 }
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2034
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2035
3730
55e36c4e42f9 [gaim-migrate @ 3868]
Sean Egan <seanegan@pidgin.im>
parents: 3708
diff changeset
2036 static void toc_accept_ft(struct ft_request *fr) {
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
2037 if(g_list_find(gaim_connections_get_all(), fr->gc)) {
4249
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2038 GtkWidget *window;
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2039 char buf[BUF_LEN];
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2040
4249
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2041 struct file_transfer *ft = g_new0(struct file_transfer, 1);
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2042 ft->gc = fr->gc;
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2043 ft->user = g_strdup(fr->user);
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2044 ft->cookie = g_strdup(fr->cookie);
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2045 ft->ip = g_strdup(fr->ip);
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2046 ft->port = fr->port;
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2047 ft->files = fr->files;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2048
4249
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2049 ft->window = window = gtk_file_selection_new(_("Gaim - Save As..."));
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2050 g_snprintf(buf, sizeof(buf), "%s/%s", gaim_home_dir(), fr->filename ? fr->filename : "");
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2051 gtk_file_selection_set_filename(GTK_FILE_SELECTION(window), buf);
4635
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
2052 g_signal_connect(G_OBJECT(window), "destroy",
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
2053 G_CALLBACK(cancel_callback), ft);
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
2054 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(ft->window)->cancel_button),
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
2055 "clicked", G_CALLBACK(cancel_callback), ft);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2056
4249
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2057 if (!strcmp(fr->UID, FILE_SEND_UID))
4635
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
2058 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(window)->ok_button),
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
2059 "clicked", G_CALLBACK(toc_send_file), ft);
4249
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2060 else
4635
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
2061 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(window)->ok_button),
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4634
diff changeset
2062 "clicked", G_CALLBACK(toc_get_file), ft);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2063
4249
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2064 gtk_widget_show(window);
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2065 }
62583b5d3663 [gaim-migrate @ 4499]
Robert McQueen <robot101@debian.org>
parents: 4245
diff changeset
2066
3867
0e747b4295cb [gaim-migrate @ 4019]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
2067 toc_reject_ft(fr);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2068 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2069
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2070 static void accept_file_dialog(struct ft_request *ft) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2071 char buf[BUF_LONG];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2072 if (!strcmp(ft->UID, FILE_SEND_UID)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2073 /* holy crap. who the fuck would transfer gigabytes through AIM?! */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2074 static char *sizes[4] = { "bytes", "KB", "MB", "GB" };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2075 float size = ft->size;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2076 int index = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2077 while ((index < 4) && (size > 1024)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2078 size /= 1024;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2079 index++;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2080 }
6500
ad972e458ee2 [gaim-migrate @ 7015]
Mark Doliner <markdoliner@pidgin.im>
parents: 6484
diff changeset
2081 g_snprintf(buf, sizeof(buf),
4276
d1652a291840 [gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents: 4249
diff changeset
2082 ngettext(
d1652a291840 [gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents: 4249
diff changeset
2083 "%s requests %s to accept %d file: %s (%.2f %s)%s%s",
d1652a291840 [gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents: 4249
diff changeset
2084 "%s requests %s to accept %d files: %s (%.2f %s)%s%s",
d1652a291840 [gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents: 4249
diff changeset
2085 ft->files),
5605
ee043c66dee9 [gaim-migrate @ 6009]
Nathan Walp <nwalp@pidgin.im>
parents: 5498
diff changeset
2086 ft->user, gaim_account_get_username(ft->gc->account), ft->files,
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2087 ft->filename, size, sizes[index], (ft->message) ? "\n" : "",
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2088 (ft->message) ? ft->message : "");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2089 } else {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2090 g_snprintf(buf, sizeof(buf), _("%s requests you to send them a file"), ft->user);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2091 }
5498
01eec144d71b [gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents: 5436
diff changeset
2092
01eec144d71b [gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents: 5436
diff changeset
2093 gaim_request_accept_cancel(ft->gc, NULL, buf, NULL, 0, ft,
01eec144d71b [gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents: 5436
diff changeset
2094 G_CALLBACK(toc_accept_ft),
01eec144d71b [gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents: 5436
diff changeset
2095 G_CALLBACK(toc_reject_ft));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2096 }
6867
ad7f499d3fe9 [gaim-migrate @ 7413]
Mark Doliner <markdoliner@pidgin.im>
parents: 6855
diff changeset
2097 #endif
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2098
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2099 static GaimPluginProtocolInfo prpl_info =
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2100 {
8751
d3401ec72258 [gaim-migrate @ 9506]
Mark Doliner <markdoliner@pidgin.im>
parents: 8713
diff changeset
2101 GAIM_PRPL_API_VERSION,
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2102 OPT_PROTO_CORRECT_TIME,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2103 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2104 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2105 toc_list_icon,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2106 toc_list_emblems,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2107 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2108 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2109 toc_away_states,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2110 toc_actions,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2111 toc_buddy_menu,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2112 toc_chat_info,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2113 toc_login,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2114 toc_close,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2115 toc_send_im,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2116 toc_set_info,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2117 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2118 toc_get_info,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2119 toc_set_away,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2120 toc_set_idle,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2121 toc_change_passwd,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2122 toc_add_buddy,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2123 toc_add_buddies,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2124 toc_remove_buddy,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2125 toc_remove_buddies,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2126 toc_add_permit,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2127 toc_add_deny,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2128 toc_rem_permit,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2129 toc_rem_deny,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2130 toc_set_permit_deny,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2131 toc_warn,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2132 toc_join_chat,
8562
7e73676d1772 [gaim-migrate @ 9306]
Christopher O'Brien <siege@pidgin.im>
parents: 8170
diff changeset
2133 NULL, /* reject chat invite */
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2134 toc_chat_invite,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2135 toc_chat_leave,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2136 toc_chat_whisper,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2137 toc_chat_send,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2138 toc_keepalive,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2139 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2140 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2141 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2142 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2143 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2144 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2145 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2146 NULL,
8586
c8c7a19da549 [gaim-migrate @ 9336]
Pekka Riikonen <priikone@silcnet.org>
parents: 8568
diff changeset
2147 NULL,
8589
21b3d99bb8e7 [gaim-migrate @ 9340]
Mark Doliner <markdoliner@pidgin.im>
parents: 8586
diff changeset
2148 NULL,
21b3d99bb8e7 [gaim-migrate @ 9340]
Mark Doliner <markdoliner@pidgin.im>
parents: 8586
diff changeset
2149 NULL,
21b3d99bb8e7 [gaim-migrate @ 9340]
Mark Doliner <markdoliner@pidgin.im>
parents: 8586
diff changeset
2150 NULL,
21b3d99bb8e7 [gaim-migrate @ 9340]
Mark Doliner <markdoliner@pidgin.im>
parents: 8586
diff changeset
2151 NULL,
21b3d99bb8e7 [gaim-migrate @ 9340]
Mark Doliner <markdoliner@pidgin.im>
parents: 8586
diff changeset
2152 NULL,
21b3d99bb8e7 [gaim-migrate @ 9340]
Mark Doliner <markdoliner@pidgin.im>
parents: 8586
diff changeset
2153 NULL,
21b3d99bb8e7 [gaim-migrate @ 9340]
Mark Doliner <markdoliner@pidgin.im>
parents: 8586
diff changeset
2154 NULL,
21b3d99bb8e7 [gaim-migrate @ 9340]
Mark Doliner <markdoliner@pidgin.im>
parents: 8586
diff changeset
2155 NULL,
21b3d99bb8e7 [gaim-migrate @ 9340]
Mark Doliner <markdoliner@pidgin.im>
parents: 8586
diff changeset
2156 NULL
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2157 };
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2158
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2159 static GaimPluginInfo info =
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2160 {
8751
d3401ec72258 [gaim-migrate @ 9506]
Mark Doliner <markdoliner@pidgin.im>
parents: 8713
diff changeset
2161 GAIM_PLUGIN_API_VERSION, /**< api_version */
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2162 GAIM_PLUGIN_PROTOCOL, /**< type */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2163 NULL, /**< ui_requirement */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2164 0, /**< flags */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2165 NULL, /**< dependencies */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2166 GAIM_PRIORITY_DEFAULT, /**< priority */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2167
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2168 "prpl-toc", /**< id */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2169 "TOC", /**< name */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2170 VERSION, /**< version */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2171 /** summary */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2172 N_("TOC Protocol Plugin"),
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2173 /** description */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2174 N_("TOC Protocol Plugin"),
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2175 NULL, /**< author */
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents: 6321
diff changeset
2176 GAIM_WEBSITE, /**< homepage */
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2177
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2178 NULL, /**< load */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2179 NULL, /**< unload */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2180 NULL, /**< destroy */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2181
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2182 NULL, /**< ui_info */
8993
41f67bceab41 [gaim-migrate @ 9768]
Luke Schierer <lschiere@pidgin.im>
parents: 8950
diff changeset
2183 &prpl_info, /**< extra_info */
41f67bceab41 [gaim-migrate @ 9768]
Luke Schierer <lschiere@pidgin.im>
parents: 8950
diff changeset
2184 NULL,
41f67bceab41 [gaim-migrate @ 9768]
Luke Schierer <lschiere@pidgin.im>
parents: 8950
diff changeset
2185 NULL
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2186 };
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2187
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2188 static void
5920
963bfdefee02 [gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
2189 init_plugin(GaimPlugin *plugin)
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2190 {
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5605
diff changeset
2191 GaimAccountOption *option;
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2192
5685
2523e4143d74 [gaim-migrate @ 6106]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
2193 option = gaim_account_option_string_new(_("TOC host"), "server", TOC_HOST);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5605
diff changeset
2194 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5605
diff changeset
2195 option);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2196
5685
2523e4143d74 [gaim-migrate @ 6106]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
2197 option = gaim_account_option_int_new(_("TOC port"), "port", TOC_PORT);
5638
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5605
diff changeset
2198 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
53e752c88ea1 [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5605
diff changeset
2199 option);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2200
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2201 my_protocol = plugin;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2202 }
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
2203
5920
963bfdefee02 [gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
2204 GAIM_INIT_PLUGIN(toc, init_plugin, info);

mercurial