annotate src/toc.c @ 1911:db3104dda736

[gaim-migrate @ 1921] Mike Heffner's redesigned UI. I changed around a lot of things from his patch, not because they weren't good or needed or anything like that; most of the changes I made just made the patch smaller. I moved functions back to where they originally where and renamed them back to what they originally were. Granted the names aren't as... good as the changes Mike made, but eh, it made my life a lot easier when I could see the meat of the changes without all the cosmetic details. The only thing I really changed about his patch was I made the list BROWSE instead of SINGLE so that there wouldn't be need for a deselect callback. Oh yeah, and update_show_plugins is called from different places (so that plugins can call load_plugin and have the window update properly). committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 29 May 2001 09:46:05 +0000
parents a02584b98823
children 5bed3bc833b5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 * gaim
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * (at your option) any later version.
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * GNU General Public License for more details.
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
22
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
23
349
b402a23f35df [gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 333
diff changeset
24 #ifdef HAVE_CONFIG_H
b402a23f35df [gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 333
diff changeset
25 #include "../config.h"
b402a23f35df [gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 333
diff changeset
26 #endif
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
27 #include <netdb.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
28 #include <gtk/gtk.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
29 #include <unistd.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
30 #include <errno.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
31 #include <netinet/in.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
32 #include <arpa/inet.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
33 #include <string.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
34 #include <stdlib.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
35 #include <stdio.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
36 #include <time.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
37 #include <sys/socket.h>
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
38 #include <sys/types.h>
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
39 #include <sys/stat.h>
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
40 #include "prpl.h"
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 940
diff changeset
41 #include "multi.h"
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
42 #include "gaim.h"
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
43 #include "proxy.h"
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
44
1030
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
45 #include "pixmaps/admin_icon.xpm"
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
46 #include "pixmaps/aol_icon.xpm"
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
47 #include "pixmaps/away_icon.xpm"
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
48 #include "pixmaps/dt_icon.xpm"
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
49 #include "pixmaps/free_icon.xpm"
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
50
1623
8684c0315818 [gaim-migrate @ 1633]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1615
diff changeset
51 #define REVISION "penguin"
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
52
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
53 #define TYPE_SIGNON 1
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
54 #define TYPE_DATA 2
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
55 #define TYPE_ERROR 3
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
56 #define TYPE_SIGNOFF 4
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
57 #define TYPE_KEEPALIVE 5
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
58
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
59 #define FLAPON "FLAPON\r\n\r\n"
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
60 #define ROAST "Tic/Toc"
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
61
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
62 #define TOC_HOST "toc.oscar.aol.com"
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
63 #define TOC_PORT 9898
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
64 #define AUTH_HOST "login.oscar.aol.com"
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
65 #define AUTH_PORT 5190
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
66 #define LANGUAGE "english"
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
67
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
68 #define STATE_OFFLINE 0
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
69 #define STATE_FLAPON 1
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
70 #define STATE_SIGNON_REQUEST 2
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
71 #define STATE_ONLINE 3
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
72 #define STATE_PAUSE 4
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
73
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
74 #define VOICE_UID "09461341-4C7F-11D1-8222-444553540000"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
75 #define FILE_SEND_UID "09461343-4C7F-11D1-8222-444553540000"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
76 #define IMAGE_UID "09461345-4C7F-11D1-8222-444553540000"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
77 #define B_ICON_UID "09461346-4C7F-11D1-8222-444553540000"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
78 #define STOCKS_UID "09461347-4C7F-11D1-8222-444553540000"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
79 #define FILE_GET_UID "09461348-4C7F-11D1-8222-444553540000"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
80 #define GAMES_UID "0946134a-4C7F-11D1-8222-444553540000"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
81
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
82 struct ft_request {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
83 struct gaim_connection *gc;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
84 char *user;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
85 char UID[2048];
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
86 char *cookie;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
87 char *ip;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
88 int port;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
89 char *message;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
90 char *filename;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
91 int files;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
92 int size;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
93 };
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
94
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
95 struct toc_data {
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
96 int toc_fd;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
97 int seqno;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
98 int state;
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
99 };
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
100
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
101 struct sflap_hdr {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
102 unsigned char ast;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
103 unsigned char type;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
104 unsigned short seqno;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
105 unsigned short len;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
106 };
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
107
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
108 struct signon {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
109 unsigned int ver;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
110 unsigned short tag;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
111 unsigned short namelen;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
112 char username[80];
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
113 };
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
114
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
115 /* constants to identify proto_opts */
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
116 #define USEROPT_AUTH 0
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
117 #define USEROPT_AUTHPORT 1
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
118
1807
ba8f463744c0 [gaim-migrate @ 1817]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1806
diff changeset
119 static GtkWidget *join_chat_spin = NULL;
ba8f463744c0 [gaim-migrate @ 1817]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1806
diff changeset
120 static GtkWidget *join_chat_entry = NULL;
1806
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
121
1840
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
122 static void toc_login_callback(gpointer, gint, GdkInputCondition);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
123 static void toc_callback(gpointer, gint, GdkInputCondition);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
124 static unsigned char *roast_password(char *);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
125 static void accept_file_dialog(struct ft_request *);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
126
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 940
diff changeset
127 /* ok. this function used to take username/password, and return 0 on success.
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 940
diff changeset
128 * now, it takes username/password, and returns NULL on error or a new gaim_connection
976
2586b2a3725e [gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 975
diff changeset
129 * on success. */
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
130 static void toc_login(struct aim_user *user)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
131 {
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 940
diff changeset
132 struct gaim_connection *gc;
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
133 struct toc_data *tdt;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
134 char buf[80];
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
135
1089
f0f5c10cce63 [gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1088
diff changeset
136 gc = new_gaim_conn(user);
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
137 gc->proto_data = tdt = g_new0(struct toc_data, 1);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
138
1663
0f7d2284296f [gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1660
diff changeset
139 g_snprintf(buf, sizeof buf, "Looking up %s",
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
140 user->proto_opt[USEROPT_AUTH][0] ? user->proto_opt[USEROPT_AUTH] : TOC_HOST);
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 981
diff changeset
141 set_login_progress(gc, 1, buf);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
142
1840
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
143 debug_printf("* Client connects to TOC\n");
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
144 tdt->toc_fd =
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
145 proxy_connect(user->proto_opt[USEROPT_AUTH][0] ? user->proto_opt[USEROPT_AUTH] : TOC_HOST,
1840
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
146 user->proto_opt[USEROPT_AUTHPORT][0] ?
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
147 atoi(user->proto_opt[USEROPT_AUTHPORT]) : TOC_PORT,
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
148 toc_login_callback, gc);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
149
1866
466fc4ada7cb [gaim-migrate @ 1876]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1864
diff changeset
150 if (!user->gc || (tdt->toc_fd < 0)) {
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
151 g_snprintf(buf, sizeof(buf), "Connect to %s failed", user->proto_opt[USEROPT_AUTH]);
988
9523b772e546 [gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 981
diff changeset
152 hide_login_progress(gc, buf);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
153 signoff(gc);
980
82c5865f7cfe [gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 978
diff changeset
154 return;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
155 }
1840
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
156 }
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
157
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
158 static void toc_login_callback(gpointer data, gint source, GdkInputCondition cond)
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
159 {
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
160 struct gaim_connection *gc = data;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
161 struct toc_data *tdt = gc->proto_data;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
162 char buf[80];
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
163
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
164 if (source == -1) {
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
165 /* we didn't successfully connect. tdt->toc_fd is valid here */
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
166 hide_login_progress(gc, "Unable to connect.");
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
167 signoff(gc);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
168 return;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
169 }
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
170
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
171 if (tdt->toc_fd == 0)
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
172 tdt->toc_fd = source;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
173
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
174 debug_printf("* Client sends \"FLAPON\\r\\n\\r\\n\"\n");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
175 if (write(tdt->toc_fd, FLAPON, strlen(FLAPON)) < 0) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
176 hide_login_progress(gc, "Disconnected.");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
177 signoff(gc);
1089
f0f5c10cce63 [gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1088
diff changeset
178 return;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
179 }
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
180 tdt->state = STATE_FLAPON;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
181
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
182 /* i know a lot of people like to look at gaim to see how TOC works. so i'll comment
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
183 * on what this does. it's really simple. when there's data ready to be read from the
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
184 * toc_fd file descriptor, toc_callback is called, with gc passed as its data arg. */
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
185 gc->inpa = gdk_input_add(tdt->toc_fd, GDK_INPUT_READ | GDK_INPUT_EXCEPTION, toc_callback, gc);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
186
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
187 g_snprintf(buf, sizeof(buf), "Signon: %s", gc->username);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
188 set_login_progress(gc, 2, buf);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
189 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
190
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
191 static void toc_close(struct gaim_connection *gc)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
192 {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
193 if (gc->inpa > 0)
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 940
diff changeset
194 gdk_input_remove(gc->inpa);
1667
b5635d882116 [gaim-migrate @ 1677]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1663
diff changeset
195 gc->inpa = 0;
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
196 close(((struct toc_data *)gc->proto_data)->toc_fd);
1794
60b3fd819cce [gaim-migrate @ 1804]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1764
diff changeset
197 g_free(gc->proto_data);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
198 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
199
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
200 static int sflap_send(struct gaim_connection *gc, char *buf, int olen, int type)
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
201 {
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
202 int len;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
203 int slen = 0;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
204 struct sflap_hdr hdr;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
205 char obuf[MSG_LEN];
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
206 struct toc_data *tdt = (struct toc_data *)gc->proto_data;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
207
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
208 if (tdt->state == STATE_PAUSE)
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
209 /* TOC has given us the PAUSE message; sending could cause a disconnect
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
210 * so we just return here like everything went through fine */
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
211 return 0;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
212
970
9eb07b383df4 [gaim-migrate @ 980]
Rob Flynn <gaim@robflynn.com>
parents: 966
diff changeset
213 /* One _last_ 2048 check here! This shouldn't ever
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
214 * get hit though, hopefully. If it gets hit on an IM
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
215 * It'll lose the last " and the message won't go through,
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
216 * but this'll stop a segfault. */
970
9eb07b383df4 [gaim-migrate @ 980]
Rob Flynn <gaim@robflynn.com>
parents: 966
diff changeset
217 if (strlen(buf) > (MSG_LEN - sizeof(hdr))) {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
218 debug_printf("message too long, truncating\n");
970
9eb07b383df4 [gaim-migrate @ 980]
Rob Flynn <gaim@robflynn.com>
parents: 966
diff changeset
219 buf[MSG_LEN - sizeof(hdr) - 3] = '"';
9eb07b383df4 [gaim-migrate @ 980]
Rob Flynn <gaim@robflynn.com>
parents: 966
diff changeset
220 buf[MSG_LEN - sizeof(hdr) - 2] = '\0';
9eb07b383df4 [gaim-migrate @ 980]
Rob Flynn <gaim@robflynn.com>
parents: 966
diff changeset
221 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
222
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
223 if (olen < 0)
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
224 len = escape_message(buf);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
225 else
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
226 len = olen;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
227 hdr.ast = '*';
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
228 hdr.type = type;
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
229 hdr.seqno = htons(tdt->seqno++ & 0xffff);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
230 hdr.len = htons(len + (type == TYPE_SIGNON ? 0 : 1));
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
231
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
232 memcpy(obuf, &hdr, sizeof(hdr));
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
233 slen += sizeof(hdr);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
234 memcpy(&obuf[slen], buf, len);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
235 slen += len;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
236 if (type != TYPE_SIGNON) {
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
237 obuf[slen] = '\0';
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
238 slen += 1;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
239 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
240
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
241 return write(tdt->toc_fd, obuf, slen);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
242 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
243
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
244 static int wait_reply(struct gaim_connection *gc, char *buffer, size_t buflen)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
245 {
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
246 struct toc_data *tdt = (struct toc_data *)gc->proto_data;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
247 struct sflap_hdr *hdr;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
248 int ret;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
249
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
250 if (read(tdt->toc_fd, buffer, sizeof(struct sflap_hdr)) < 0) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
251 debug_printf("error, couldn't read flap header\n");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
252 return -1;
79
bfdc427b936d [gaim-migrate @ 89]
Rob Flynn <gaim@robflynn.com>
parents: 50
diff changeset
253 }
bfdc427b936d [gaim-migrate @ 89]
Rob Flynn <gaim@robflynn.com>
parents: 50
diff changeset
254
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
255 hdr = (struct sflap_hdr *)buffer;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
256
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
257 if (buflen < ntohs(hdr->len)) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
258 /* fake like there's a read error */
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
259 debug_printf("buffer too small (have %d, need %d)\n", buflen, ntohs(hdr->len));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
260 return -1;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
261 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
262
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
263 if (ntohs(hdr->len) > 0) {
1234
cedf7047081e [gaim-migrate @ 1244]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1208
diff changeset
264 int count = 0;
cedf7047081e [gaim-migrate @ 1244]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1208
diff changeset
265 ret = 0;
cedf7047081e [gaim-migrate @ 1244]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1208
diff changeset
266 do {
cedf7047081e [gaim-migrate @ 1244]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1208
diff changeset
267 count += ret;
cedf7047081e [gaim-migrate @ 1244]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1208
diff changeset
268 ret = read(tdt->toc_fd,
1533
b6fe5cab70d6 [gaim-migrate @ 1543]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1521
diff changeset
269 buffer + sizeof(struct sflap_hdr) + count, ntohs(hdr->len) - count);
1234
cedf7047081e [gaim-migrate @ 1244]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1208
diff changeset
270 } while (count + ret < ntohs(hdr->len) && ret > 0);
cedf7047081e [gaim-migrate @ 1244]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1208
diff changeset
271 buffer[sizeof(struct sflap_hdr) + count + ret] = '\0';
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
272 return ret;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
273 } else
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
274 return 0;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
275 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
276
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
277 static unsigned char *roast_password(char *pass)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
278 {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
279 /* Trivial "encryption" */
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
280 static char rp[256];
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
281 static char *roast = ROAST;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
282 int pos = 2;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
283 int x;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
284 strcpy(rp, "0x");
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
285 for (x = 0; (x < 150) && pass[x]; x++)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
286 pos += sprintf(&rp[pos], "%02x", pass[x] ^ roast[x % strlen(roast)]);
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
287 rp[pos] = '\0';
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
288 return rp;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
289 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
290
1840
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
291 static void toc_got_info(gpointer data, char *url_text)
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
292 {
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
293 if (!url_text)
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
294 return;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
295
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
296 g_show_info_text(url_text);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
297 }
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
298
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
299 static void toc_callback(gpointer data, gint source, GdkInputCondition condition)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
300 {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
301 struct gaim_connection *gc = (struct gaim_connection *)data;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
302 struct toc_data *tdt = (struct toc_data *)gc->proto_data;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
303 struct sflap_hdr *hdr;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
304 struct signon so;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
305 char buf[8 * 1024], *c;
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
306 char snd[BUF_LEN * 2];
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
307
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
308 if (condition & GDK_INPUT_EXCEPTION) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
309 debug_printf("gdk_input exception! check internet connection\n");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
310 hide_login_progress(gc, _("Connection Closed"));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
311 signoff(gc);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
312 return;
79
bfdc427b936d [gaim-migrate @ 89]
Rob Flynn <gaim@robflynn.com>
parents: 50
diff changeset
313 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
314
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
315 /* there's data waiting to be read, so read it. */
1412
47413c49bbee [gaim-migrate @ 1422]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1404
diff changeset
316 if (wait_reply(gc, buf, 8 * 1024) <= 0) {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
317 hide_login_progress(gc, _("Connection Closed"));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
318 signoff(gc);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
319 return;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
320 }
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
321
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
322 if (tdt->state == STATE_FLAPON) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
323 hdr = (struct sflap_hdr *)buf;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
324 if (hdr->type != TYPE_SIGNON)
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
325 debug_printf("problem, hdr->type != TYPE_SIGNON\n");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
326 else
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
327 debug_printf("* TOC sends Client FLAP SIGNON\n");
998
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
328 tdt->seqno = ntohs(hdr->seqno);
70c685de2be5 [gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
329 tdt->state = STATE_SIGNON_REQUEST;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
330
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
331 debug_printf("* Client sends TOC FLAP SIGNON\n");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
332 g_snprintf(so.username, sizeof(so.username), "%s", gc->username);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
333 so.ver = htonl(1);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
334 so.tag = htons(1);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
335 so.namelen = htons(strlen(so.username));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
336 if (sflap_send(gc, (char *)&so, ntohs(so.namelen) + 8, TYPE_SIGNON) < 0) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
337 hide_login_progress(gc, _("Disconnected."));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
338 signoff(gc);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
339 return;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
340 }
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
341
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
342 debug_printf("* Client sends TOC \"toc_signon\" message\n");
1491
5a5284be5d66 [gaim-migrate @ 1501]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1469
diff changeset
343 g_snprintf(snd, sizeof snd, "toc_signon %s %d %s %s %s \"%s\"",
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
344 AUTH_HOST, AUTH_PORT, normalize(gc->username),
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
345 roast_password(gc->password), LANGUAGE, REVISION);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
346 if (sflap_send(gc, snd, -1, TYPE_DATA) < 0) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
347 hide_login_progress(gc, _("Disconnected."));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
348 signoff(gc);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
349 return;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
350 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
351
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
352 set_login_progress(gc, 3, _("Waiting for reply..."));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
353 return;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
354 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
355
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
356 if (tdt->state == STATE_SIGNON_REQUEST) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
357 debug_printf("* TOC sends client SIGN_ON reply\n");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
358 if (strncasecmp(buf + sizeof(struct sflap_hdr), "SIGN_ON", strlen("SIGN_ON"))) {
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
359 debug_printf("Didn't get SIGN_ON! buf was: %s\n",
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
360 buf + sizeof(struct sflap_hdr));
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
361 hide_login_progress(gc, _("Authentication Failed"));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
362 signoff(gc);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
363 return;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
364 }
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
365 /* we're supposed to check that it's really TOC v1 here but we know it is ;) */
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
366 debug_printf("TOC version: %s\n", buf + sizeof(struct sflap_hdr) + 4);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
367
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
368 /* we used to check for the CONFIG here, but we'll wait until we've sent our
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
369 * version of the config and then the toc_init_done message. we'll come back to
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
370 * the callback in a better state if we get CONFIG anyway */
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
371
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
372 tdt->state = STATE_ONLINE;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
373
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
374 account_online(gc);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
375 serv_finish_login(gc);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
376
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
377 do_import(0, gc);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
378
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
379 /* Client sends TOC toc_init_done message */
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
380 debug_printf("* Client sends TOC toc_init_done message\n");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
381 g_snprintf(snd, sizeof snd, "toc_init_done");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
382 sflap_send(gc, snd, -1, TYPE_DATA);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
383
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
384 g_snprintf(snd, sizeof snd, "toc_set_caps %s %s", FILE_SEND_UID, FILE_GET_UID);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
385 sflap_send(gc, snd, -1, TYPE_DATA);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
386
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
387 return;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
388 }
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
389
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
390 debug_printf("From TOC server: %s\n", buf + sizeof(struct sflap_hdr));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
391
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
392 c = strtok(buf + sizeof(struct sflap_hdr), ":"); /* Ditch the first part */
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
393
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
394 if (!strcasecmp(c, "SIGN_ON")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
395 /* we should only get here after a PAUSE */
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
396 if (tdt->state != STATE_PAUSE)
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
397 debug_printf("got SIGN_ON but not PAUSE!\n");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
398 else {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
399 tdt->state = STATE_ONLINE;
1146
22f3c32a28f6 [gaim-migrate @ 1156]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1145
diff changeset
400 g_snprintf(snd, sizeof snd, "toc_signon %s %d %s %s %s \"%s\"",
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
401 AUTH_HOST, AUTH_PORT, normalize(gc->username),
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
402 roast_password(gc->password), LANGUAGE, REVISION);
1146
22f3c32a28f6 [gaim-migrate @ 1156]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1145
diff changeset
403 if (sflap_send(gc, snd, -1, TYPE_DATA) < 0) {
22f3c32a28f6 [gaim-migrate @ 1156]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1145
diff changeset
404 hide_login_progress(gc, _("Disconnected."));
22f3c32a28f6 [gaim-migrate @ 1156]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1145
diff changeset
405 signoff(gc);
22f3c32a28f6 [gaim-migrate @ 1156]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1145
diff changeset
406 return;
22f3c32a28f6 [gaim-migrate @ 1156]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1145
diff changeset
407 }
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
408 do_import(0, gc);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
409 g_snprintf(snd, sizeof snd, "toc_init_done");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
410 sflap_send(gc, snd, -1, TYPE_DATA);
1146
22f3c32a28f6 [gaim-migrate @ 1156]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1145
diff changeset
411 do_error_dialog(_("TOC has come back from its pause. You may now send"
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
412 " messages again."), _("TOC Resume"));
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
413 }
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
414 } else if (!strcasecmp(c, "CONFIG")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
415 c = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
416 parse_toc_buddy_list(gc, c, 0);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
417 } else if (!strcasecmp(c, "NICK")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
418 c = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
419 g_snprintf(gc->username, sizeof(gc->username), "%s", c);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
420 } else if (!strcasecmp(c, "IM_IN")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
421 char *away, *message;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
422 int a = 0;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
423
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
424 c = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
425 away = strtok(NULL, ":");
1112
3f56704a09bd [gaim-migrate @ 1122]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1106
diff changeset
426
3f56704a09bd [gaim-migrate @ 1122]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1106
diff changeset
427 message = away;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
428 while (*message && (*message != ':'))
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
429 message++;
1112
3f56704a09bd [gaim-migrate @ 1122]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1106
diff changeset
430 message++;
3f56704a09bd [gaim-migrate @ 1122]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1106
diff changeset
431
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
432 a = (away && (*away == 'T')) ? 1 : 0;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
433
1764
1e0613d9526b [gaim-migrate @ 1774]
Rob Flynn <gaim@robflynn.com>
parents: 1669
diff changeset
434 serv_got_im(gc, c, message, a, time((time_t)NULL));
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
435 } else if (!strcasecmp(c, "UPDATE_BUDDY")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
436 char *l, *uc;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
437 int logged, evil, idle, type = 0;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
438 time_t signon, time_idle;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
439
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
440 c = strtok(NULL, ":"); /* name */
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
441 l = strtok(NULL, ":"); /* online */
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
442 sscanf(strtok(NULL, ":"), "%d", &evil);
1114
c61f9c384413 [gaim-migrate @ 1124]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1113
diff changeset
443 sscanf(strtok(NULL, ":"), "%ld", &signon);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
444 sscanf(strtok(NULL, ":"), "%d", &idle);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
445 uc = strtok(NULL, ":");
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
446
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
447 logged = (l && (*l == 'T')) ? 1 : 0;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
448
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
449 if (uc[0] == 'A')
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
450 type |= UC_AOL;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
451 switch (uc[1]) {
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
452 case 'A':
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
453 type |= UC_ADMIN;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
454 break;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
455 case 'U':
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
456 type |= UC_UNCONFIRMED;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
457 break;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
458 case 'O':
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
459 type |= UC_NORMAL;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
460 break;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
461 default:
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
462 break;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
463 }
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
464 if (uc[2] == 'U')
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
465 type |= UC_UNAVAILABLE;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
466
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
467 if (idle) {
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
468 time(&time_idle);
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
469 time_idle -= idle * 60;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
470 } else
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
471 time_idle = 0;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
472
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
473 serv_got_update(gc, c, logged, evil, signon, time_idle, type, 0);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
474 } else if (!strcasecmp(c, "ERROR")) {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
475 c = strtok(NULL, ":");
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
476 show_error_dialog(c);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
477 } else if (!strcasecmp(c, "EVILED")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
478 int lev;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
479 char *name;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
480
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
481 sscanf(strtok(NULL, ":"), "%d", &lev);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
482 name = strtok(NULL, ":");
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
483
1100
f168625b63fe [gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1089
diff changeset
484 serv_got_eviled(gc, name, lev);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
485 } else if (!strcasecmp(c, "CHAT_JOIN")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
486 char *name;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
487 int id;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
488
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
489 sscanf(strtok(NULL, ":"), "%d", &id);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
490 name = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
491
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
492 serv_got_joined_chat(gc, id, name);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
493 } else if (!strcasecmp(c, "CHAT_IN")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
494 int id, w;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
495 char *m, *who, *whisper;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
496
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
497 sscanf(strtok(NULL, ":"), "%d", &id);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
498 who = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
499 whisper = strtok(NULL, ":");
1112
3f56704a09bd [gaim-migrate @ 1122]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1106
diff changeset
500 m = whisper;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
501 while (*m && (*m != ':'))
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
502 m++;
1112
3f56704a09bd [gaim-migrate @ 1122]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1106
diff changeset
503 m++;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
504
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
505 w = (whisper && (*whisper == 'T')) ? 1 : 0;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
506
1764
1e0613d9526b [gaim-migrate @ 1774]
Rob Flynn <gaim@robflynn.com>
parents: 1669
diff changeset
507 serv_got_chat_in(gc, id, who, w, m, time((time_t)NULL));
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
508 } else if (!strcasecmp(c, "CHAT_UPDATE_BUDDY")) {
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
509 int id;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
510 char *in, *buddy;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
511 GSList *bcs = gc->buddy_chats;
472
6a92cd7322cc [gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 447
diff changeset
512 struct conversation *b = NULL;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
513
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
514 sscanf(strtok(NULL, ":"), "%d", &id);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
515 in = strtok(NULL, ":");
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
516
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
517 while (bcs) {
472
6a92cd7322cc [gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 447
diff changeset
518 b = (struct conversation *)bcs->data;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
519 if (id == b->id)
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
520 break;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
521 bcs = bcs->next;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
522 b = NULL;
44
e3e7351cf70d [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 10
diff changeset
523 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
524
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
525 if (!b)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
526 return;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
527
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
528 if (in && (*in == 'T'))
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
529 while ((buddy = strtok(NULL, ":")) != NULL)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
530 add_chat_buddy(b, buddy);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
531 else
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
532 while ((buddy = strtok(NULL, ":")) != NULL)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
533 remove_chat_buddy(b, buddy);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
534 } else if (!strcasecmp(c, "CHAT_INVITE")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
535 char *name, *who, *message;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
536 int id;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
537
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
538 name = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
539 sscanf(strtok(NULL, ":"), "%d", &id);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
540 who = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
541 message = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
542
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
543 serv_got_chat_invite(gc, name, id, who, message);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
544 } else if (!strcasecmp(c, "CHAT_LEFT")) {
1182
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
545 GSList *bcs = gc->buddy_chats;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
546 struct conversation *b = NULL;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
547 int id;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
548
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
549 sscanf(strtok(NULL, ":"), "%d", &id);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
550
1182
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
551 while (bcs) {
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
552 b = (struct conversation *)bcs->data;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
553 if (id == b->id)
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
554 break;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
555 b = NULL;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
556 bcs = bcs->next;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
557 }
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
558
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
559 if (!b)
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
560 return;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
561
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
562 if (b->window) {
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
563 char error_buf[BUF_LONG];
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
564 b->gc = NULL;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
565 g_snprintf(error_buf, sizeof error_buf, _("You have been disconnected"
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
566 " from chat room %s."), b->name);
1669
a843efee692a [gaim-migrate @ 1679]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1667
diff changeset
567 do_error_dialog(error_buf, _("Chat Error"));
1182
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
568 } else
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
569 serv_got_chat_left(gc, id);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
570 } else if (!strcasecmp(c, "GOTO_URL")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
571 char *name, *url, tmp[256];
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
572
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
573 name = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
574 url = strtok(NULL, ":");
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
575
1840
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
576 g_snprintf(tmp, sizeof(tmp), "http://%s:%d/%s",
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
577 gc->user->proto_opt[USEROPT_AUTH][0] ?
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
578 gc->user->proto_opt[USEROPT_AUTH] : TOC_HOST,
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
579 gc->user->proto_opt[USEROPT_AUTHPORT][0] ?
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
580 atoi(gc->user->proto_opt[USEROPT_AUTHPORT]) : TOC_PORT,
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
581 url);
1881
a02584b98823 [gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1866
diff changeset
582 grab_url(tmp, toc_got_info, NULL);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
583 } else if (!strcasecmp(c, "DIR_STATUS")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
584 } else if (!strcasecmp(c, "ADMIN_NICK_STATUS")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
585 } else if (!strcasecmp(c, "ADMIN_PASSWD_STATUS")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
586 do_error_dialog(_("Password Change Successeful"), _("Gaim - Password Change"));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
587 } else if (!strcasecmp(c, "PAUSE")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
588 tdt->state = STATE_PAUSE;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
589 do_error_dialog(_("TOC has sent a PAUSE command. When this happens, TOC ignores"
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
590 " any messages sent to it, and may kick you off if you send a"
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
591 " message. Gaim will prevent anything from going through. This"
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
592 " is only temporary, please be patient."), _("TOC Pause"));
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
593 } else if (!strcasecmp(c, "RVOUS_PROPOSE")) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
594 char *user, *uuid, *cookie;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
595 int seq;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
596 char *rip, *pip, *vip;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
597 int port;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
598
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
599 user = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
600 uuid = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
601 cookie = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
602 sscanf(strtok(NULL, ":"), "%d", &seq);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
603 rip = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
604 pip = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
605 vip = strtok(NULL, ":");
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
606 sscanf(strtok(NULL, ":"), "%d", &port);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
607
197
24f0fef56a73 [gaim-migrate @ 207]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 196
diff changeset
608 if (!strcmp(uuid, FILE_SEND_UID)) {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
609 /* they want us to get a file */
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
610 int unk[4], i;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
611 char *messages[4], *tmp, *name;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
612 int subtype, files, totalsize = 0;
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
613 struct ft_request *ft;
196
3042e11c1902 [gaim-migrate @ 206]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 194
diff changeset
614
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
615 for (i = 0; i < 4; i++) {
1113
4efa1ca61a2a [gaim-migrate @ 1123]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1112
diff changeset
616 sscanf(strtok(NULL, ":"), "%d", &unk[i]);
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
617 if (unk[i] == 10001)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
618 break;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
619 messages[i] = frombase64(strtok(NULL, ":"));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
620 }
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
621 tmp = frombase64(strtok(NULL, ":"));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
622
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
623 subtype = tmp[1];
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
624 files = tmp[3];
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
625
196
3042e11c1902 [gaim-migrate @ 206]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 194
diff changeset
626 totalsize |= (tmp[4] << 24) & 0xff000000;
3042e11c1902 [gaim-migrate @ 206]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 194
diff changeset
627 totalsize |= (tmp[5] << 16) & 0x00ff0000;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
628 totalsize |= (tmp[6] << 8) & 0x0000ff00;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
629 totalsize |= (tmp[7] << 0) & 0x000000ff;
196
3042e11c1902 [gaim-migrate @ 206]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 194
diff changeset
630
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
631 if (!totalsize) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
632 g_free(tmp);
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
633 for (i--; i >= 0; i--)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
634 g_free(messages[i]);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
635 return;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
636 }
196
3042e11c1902 [gaim-migrate @ 206]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 194
diff changeset
637
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
638 name = tmp + 8;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
639
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
640 ft = g_new0(struct ft_request, 1);
198
73e9a0bfff62 [gaim-migrate @ 208]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 197
diff changeset
641 ft->cookie = g_strdup(cookie);
73e9a0bfff62 [gaim-migrate @ 208]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 197
diff changeset
642 ft->ip = g_strdup(pip);
73e9a0bfff62 [gaim-migrate @ 208]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 197
diff changeset
643 ft->port = port;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
644 if (i)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
645 ft->message = g_strdup(messages[0]);
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
646 else
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
647 ft->message = NULL;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
648 ft->filename = g_strdup(name);
198
73e9a0bfff62 [gaim-migrate @ 208]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 197
diff changeset
649 ft->user = g_strdup(user);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
650 ft->size = totalsize;
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
651 ft->files = files;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
652 g_snprintf(ft->UID, sizeof(ft->UID), "%s", FILE_SEND_UID);
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
653 ft->gc = gc;
198
73e9a0bfff62 [gaim-migrate @ 208]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 197
diff changeset
654
73e9a0bfff62 [gaim-migrate @ 208]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 197
diff changeset
655 g_free(tmp);
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
656 for (i--; i >= 0; i--)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
657 g_free(messages[i]);
198
73e9a0bfff62 [gaim-migrate @ 208]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 197
diff changeset
658
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
659 debug_printf("English translation of RVOUS_PROPOSE: %s requests Send File (i.e."
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
660 " send a file to you); %s:%d (verified_ip:port), %d files at"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
661 " total size of %ld bytes.\n", user, vip, port, files, totalsize);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
662 accept_file_dialog(ft);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
663 } else if (!strcmp(uuid, FILE_GET_UID)) {
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
664 /* they want us to send a file */
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
665 int unk[4], i;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
666 char *messages[4], *tmp;
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
667 struct ft_request *ft;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
668
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
669 for (i = 0; i < 4; i++) {
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
670 sscanf(strtok(NULL, ":"), "%d", unk + i);
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
671 if (unk[i] == 10001)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
672 break;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
673 messages[i] = frombase64(strtok(NULL, ":"));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
674 }
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
675 tmp = frombase64(strtok(NULL, ":"));
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
676
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
677 ft = g_new0(struct ft_request, 1);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
678 ft->cookie = g_strdup(cookie);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
679 ft->ip = g_strdup(pip);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
680 ft->port = port;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
681 if (i)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
682 ft->message = g_strdup(messages[0]);
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
683 else
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
684 ft->message = NULL;
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
685 ft->user = g_strdup(user);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
686 g_snprintf(ft->UID, sizeof(ft->UID), "%s", FILE_GET_UID);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
687 ft->gc = gc;
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
688
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
689 g_free(tmp);
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
690 for (i--; i >= 0; i--)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
691 g_free(messages[i]);
198
73e9a0bfff62 [gaim-migrate @ 208]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 197
diff changeset
692
73e9a0bfff62 [gaim-migrate @ 208]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 197
diff changeset
693 accept_file_dialog(ft);
369
cf895313fc50 [gaim-migrate @ 379]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 351
diff changeset
694 } else if (!strcmp(uuid, VOICE_UID)) {
cf895313fc50 [gaim-migrate @ 379]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 351
diff changeset
695 /* oh goody. voice over ip. fun stuff. */
196
3042e11c1902 [gaim-migrate @ 206]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 194
diff changeset
696 } else if (!strcmp(uuid, B_ICON_UID)) {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
697 /* buddy icon... */
196
3042e11c1902 [gaim-migrate @ 206]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 194
diff changeset
698 } else if (!strcmp(uuid, IMAGE_UID)) {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
699 /* aka Direct IM */
196
3042e11c1902 [gaim-migrate @ 206]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 194
diff changeset
700 } else {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
701 debug_printf("Don't know what to do with RVOUS UUID %s\n", uuid);
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
702 /* do we have to do anything here? i think it just times out */
196
3042e11c1902 [gaim-migrate @ 206]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 194
diff changeset
703 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
704 } else {
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
705 debug_printf("don't know what to do with %s\n", c);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
706 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
707 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
708
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
709 static char *toc_name()
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
710 {
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
711 return "TOC";
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
712 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
713
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
714 static void toc_send_im(struct gaim_connection *gc, char *name, char *message, int away)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
715 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
716 char buf[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
717
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
718 escape_text(message);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
719 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name),
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
720 message, ((away) ? " auto" : ""));
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
721 sflap_send(gc, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
722 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
723
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
724 static void toc_set_config(struct gaim_connection *gc)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
725 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
726 char buf[MSG_LEN], snd[BUF_LEN * 2];
1118
e1078ee286ba [gaim-migrate @ 1128]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1114
diff changeset
727 toc_build_config(gc, buf, MSG_LEN, FALSE);
1412
47413c49bbee [gaim-migrate @ 1422]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1404
diff changeset
728 g_snprintf(snd, MSG_LEN, "toc_set_config {%s}", buf);
1118
e1078ee286ba [gaim-migrate @ 1128]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1114
diff changeset
729 sflap_send(gc, snd, -1, TYPE_DATA);
e1078ee286ba [gaim-migrate @ 1128]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1114
diff changeset
730 }
e1078ee286ba [gaim-migrate @ 1128]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1114
diff changeset
731
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
732 static void toc_get_info(struct gaim_connection *g, char *name)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
733 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
734 char buf[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
735 g_snprintf(buf, MSG_LEN, "toc_get_info %s", normalize(name));
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
736 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
737 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
738
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
739 static void toc_get_dir(struct gaim_connection *g, char *name)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
740 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
741 char buf[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
742 g_snprintf(buf, MSG_LEN, "toc_get_dir %s", normalize(name));
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
743 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
744 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
745
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
746 static void toc_set_dir(struct gaim_connection *g, char *first, char *middle, char *last,
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
747 char *maiden, char *city, char *state, char *country, int web)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
748 {
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
749 char buf2[BUF_LEN * 4], buf[BUF_LEN];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
750 g_snprintf(buf2, sizeof(buf2), "%s:%s:%s:%s:%s:%s:%s:%s", first,
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
751 middle, last, maiden, city, state, country, (web == 1) ? "Y" : "");
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
752 escape_text(buf2);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
753 g_snprintf(buf, sizeof(buf), "toc_set_dir %s", buf2);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
754 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
755 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
756
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
757 static void toc_dir_search(struct gaim_connection *g, char *first, char *middle, char *last,
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
758 char *maiden, char *city, char *state, char *country, char *email)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
759 {
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
760 char buf[BUF_LONG];
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
761 g_snprintf(buf, sizeof(buf) / 2, "toc_dir_search %s:%s:%s:%s:%s:%s:%s:%s", first, middle,
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
762 last, maiden, city, state, country, email);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1234
diff changeset
763 debug_printf("Searching for: %s,%s,%s,%s,%s,%s,%s\n", first, middle, last, maiden,
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
764 city, state, country);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
765 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
766 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
767
1401
bf041349b11e [gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1383
diff changeset
768 static void toc_set_away(struct gaim_connection *g, char *state, char *message)
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
769 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
770 char buf[BUF_LEN * 2];
1521
ba83e9e2fd9b [gaim-migrate @ 1531]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1499
diff changeset
771 if (g->away)
ba83e9e2fd9b [gaim-migrate @ 1531]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1499
diff changeset
772 g_free (g->away);
ba83e9e2fd9b [gaim-migrate @ 1531]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1499
diff changeset
773 g->away = NULL;
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
774 if (message) {
1521
ba83e9e2fd9b [gaim-migrate @ 1531]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1499
diff changeset
775 g->away = g_strdup (message);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
776 escape_text(message);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
777 g_snprintf(buf, MSG_LEN, "toc_set_away \"%s\"", message);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
778 } else
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
779 g_snprintf(buf, MSG_LEN, "toc_set_away \"\"");
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
780 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
781 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
782
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
783 static void toc_set_info(struct gaim_connection *g, char *info)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
784 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
785 char buf[BUF_LEN * 2], buf2[BUF_LEN * 2];
1368
12365cb601cb [gaim-migrate @ 1378]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1333
diff changeset
786 g_snprintf(buf2, sizeof buf2, "%s", info);
12365cb601cb [gaim-migrate @ 1378]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1333
diff changeset
787 escape_text(buf2);
12365cb601cb [gaim-migrate @ 1378]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1333
diff changeset
788 g_snprintf(buf, sizeof(buf), "toc_set_info \"%s\n\"", buf2);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
789 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
790 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
791
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
792 static void toc_change_passwd(struct gaim_connection *g, char *orig, char *new)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
793 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
794 char buf[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
795 g_snprintf(buf, BUF_LONG, "toc_change_passwd %s %s", orig, new);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
796 sflap_send(g, buf, strlen(buf), TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
797 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
798
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
799 static void toc_add_buddy(struct gaim_connection *g, char *name)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
800 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
801 char buf[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
802 g_snprintf(buf, sizeof(buf), "toc_add_buddy %s", normalize(name));
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
803 sflap_send(g, buf, -1, TYPE_DATA);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
804 toc_set_config(g);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
805 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
806
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
807 static void toc_add_buddies(struct gaim_connection *g, GList * buddies)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
808 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
809 char buf[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
810 int n;
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
811
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
812 n = g_snprintf(buf, sizeof(buf), "toc_add_buddy");
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
813 while (buddies) {
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
814 if (strlen(normalize(buddies->data)) > MSG_LEN - n - 16) {
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
815 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
816 n = g_snprintf(buf, sizeof(buf), "toc_add_buddy");
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
817 }
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
818 n += g_snprintf(buf + n, sizeof(buf) - n, " %s", normalize(buddies->data));
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
819 buddies = buddies->next;
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
820 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
821 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
822 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
823
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
824 static void toc_remove_buddy(struct gaim_connection *g, char *name)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
825 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
826 char buf[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
827 g_snprintf(buf, sizeof(buf), "toc_remove_buddy %s", normalize(name));
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
828 sflap_send(g, buf, -1, TYPE_DATA);
1106
5bc8fdacd2cb [gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1100
diff changeset
829 toc_set_config(g);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
830 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
831
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
832 static void toc_set_idle(struct gaim_connection *g, int time)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
833 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
834 char buf[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
835 g_snprintf(buf, sizeof(buf), "toc_set_idle %d", time);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
836 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
837 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
838
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
839 static void toc_warn(struct gaim_connection *g, char *name, int anon)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
840 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
841 char send[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
842 g_snprintf(send, 255, "toc_evil %s %s", name, ((anon) ? "anon" : "norm"));
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
843 sflap_send(g, send, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
844 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
845
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
846 static void toc_accept_chat(struct gaim_connection *g, int i)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
847 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
848 char buf[BUF_LEN * 2];
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
849 g_snprintf(buf, 255, "toc_chat_accept %d", i);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
850 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
851 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
852
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
853 static void toc_join_chat(struct gaim_connection *g, int exchange, char *name)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
854 {
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
855 char buf[BUF_LONG];
1806
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
856 if (!name) {
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
857 if (!join_chat_entry || !join_chat_spin)
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
858 return;
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
859 name = gtk_entry_get_text(GTK_ENTRY(join_chat_entry));
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
860 exchange = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(join_chat_spin));
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
861 if (!name || !strlen(name))
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
862 return;
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
863 }
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
864 g_snprintf(buf, sizeof(buf) / 2, "toc_chat_join %d \"%s\"", exchange, name);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
865 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
866 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
867
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
868 static void toc_chat_invite(struct gaim_connection *g, int id, char *message, char *name)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
869 {
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
870 char buf[BUF_LONG];
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
871 g_snprintf(buf, sizeof(buf) / 2, "toc_chat_invite %d \"%s\" %s", id, message, normalize(name));
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
872 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
873 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
874
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
875 static void toc_chat_leave(struct gaim_connection *g, int id)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
876 {
1182
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
877 GSList *bcs = g->buddy_chats;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
878 struct conversation *b = NULL;
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
879 char buf[BUF_LEN * 2];
1182
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
880
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
881 while (bcs) {
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
882 b = (struct conversation *)bcs->data;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
883 if (id == b->id)
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
884 break;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
885 b = NULL;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
886 bcs = bcs->next;
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
887 }
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
888
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
889 if (!b)
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
890 return; /* can this happen? */
1182
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
891
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
892 if (!b->gc) /* TOC already kicked us out of this room */
1182
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
893 serv_got_chat_left(g, id);
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
894 else {
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
895 g_snprintf(buf, 255, "toc_chat_leave %d", id);
1182
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
896 sflap_send(g, buf, -1, TYPE_DATA);
bab9f3dc07f8 [gaim-migrate @ 1192]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1153
diff changeset
897 }
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
898 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
899
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
900 static void toc_chat_whisper(struct gaim_connection *g, int id, char *who, char *message)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
901 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
902 char buf2[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
903 g_snprintf(buf2, sizeof(buf2), "toc_chat_whisper %d %s \"%s\"", id, who, message);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
904 sflap_send(g, buf2, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
905 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
906
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
907 static void toc_chat_send(struct gaim_connection *g, int id, char *message)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
908 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
909 char buf[BUF_LEN * 2];
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
910 escape_text(message);
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
911 g_snprintf(buf, sizeof(buf), "toc_chat_send %d \"%s\"", id, message);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
912 sflap_send(g, buf, -1, TYPE_DATA);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
913 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
914
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
915 static void toc_keepalive(struct gaim_connection *gc)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
916 {
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
917 sflap_send(gc, "", 0, TYPE_KEEPALIVE);
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
918 }
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
919
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
920 static char **toc_list_icon(int uc)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
921 {
1030
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
922 if (uc & UC_UNAVAILABLE)
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
923 return (char **)away_icon_xpm;
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
924 if (uc & UC_AOL)
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
925 return (char **)aol_icon_xpm;
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
926 if (uc & UC_NORMAL)
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
927 return (char **)free_icon_xpm;
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
928 if (uc & UC_ADMIN)
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
929 return (char **)admin_icon_xpm;
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
930 if (uc & UC_UNCONFIRMED)
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
931 return (char **)dt_icon_xpm;
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
932 return NULL;
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
933 }
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
934
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
935 static void toc_info(GtkObject * obj, char *who)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
936 {
1032
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
937 struct gaim_connection *gc = (struct gaim_connection *)gtk_object_get_user_data(obj);
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
938 serv_get_info(gc, who);
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
939 }
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
940
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
941 static void toc_dir_info(GtkObject * obj, char *who)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
942 {
1032
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
943 struct gaim_connection *gc = (struct gaim_connection *)gtk_object_get_user_data(obj);
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
944 serv_get_dir(gc, who);
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
945 }
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
946
1806
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
947 static void des_jc()
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
948 {
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
949 join_chat_entry = NULL;
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
950 join_chat_spin = NULL;
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
951 }
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
952
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
953 static void toc_draw_join_chat(struct gaim_connection *gc, GtkWidget *fbox) {
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
954 GtkWidget *label;
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
955 GtkWidget *rowbox;
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
956 GtkObject *adjust;
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
957
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
958 rowbox = gtk_hbox_new(FALSE, 5);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
959 gtk_box_pack_start(GTK_BOX(fbox), rowbox, TRUE, TRUE, 0);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
960 gtk_widget_show(rowbox);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
961
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
962 label = gtk_label_new(_("Join what group:"));
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
963 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
1810
ad7759c19545 [gaim-migrate @ 1820]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1807
diff changeset
964 gtk_signal_connect(GTK_OBJECT(label), "destroy", GTK_SIGNAL_FUNC(des_jc), NULL);
1806
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
965 gtk_widget_show(label);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
966
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
967 join_chat_entry = gtk_entry_new();
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
968 gtk_box_pack_start(GTK_BOX(rowbox), join_chat_entry, TRUE, TRUE, 0);
1827
bb115612a2ed [gaim-migrate @ 1837]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1819
diff changeset
969 gtk_widget_grab_focus(join_chat_entry);
1819
47e064712091 [gaim-migrate @ 1829]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1810
diff changeset
970 gtk_signal_connect(GTK_OBJECT(join_chat_entry), "activate", GTK_SIGNAL_FUNC(do_join_chat), NULL);
1806
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
971 gtk_widget_show(join_chat_entry);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
972
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
973 rowbox = gtk_hbox_new(FALSE, 5);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
974 gtk_box_pack_start(GTK_BOX(fbox), rowbox, TRUE, TRUE, 0);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
975 gtk_widget_show(rowbox);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
976
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
977 label = gtk_label_new(_("Community:"));
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
978 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
979 gtk_widget_show(label);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
980
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
981 adjust = gtk_adjustment_new(4, 4, 20, 1, 10, 10);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
982 join_chat_spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
983 gtk_widget_set_usize(join_chat_spin, 50, -1);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
984 gtk_box_pack_start(GTK_BOX(rowbox), join_chat_spin, FALSE, FALSE, 0);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
985 gtk_widget_show(join_chat_spin);
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
986 }
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
987
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
988 static void toc_buddy_menu(GtkWidget *menu, struct gaim_connection *gc, char *who)
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
989 {
1032
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
990 GtkWidget *button;
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
991
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
992 button = gtk_menu_item_new_with_label(_("Get Info"));
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
993 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(toc_info), who);
1032
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
994 gtk_object_set_user_data(GTK_OBJECT(button), gc);
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
995 gtk_menu_append(GTK_MENU(menu), button);
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
996 gtk_widget_show(button);
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
997
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
998 button = gtk_menu_item_new_with_label(_("Get Dir Info"));
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
999 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(toc_dir_info), who);
1032
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
1000 gtk_object_set_user_data(GTK_OBJECT(button), gc);
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
1001 gtk_menu_append(GTK_MENU(menu), button);
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
1002 gtk_widget_show(button);
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
1003 }
643a4d81c18a [gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1030
diff changeset
1004
1842
1d137dde946f [gaim-migrate @ 1852]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1840
diff changeset
1005 static void toc_print_option(GtkEntry *entry, struct aim_user *user)
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1006 {
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1007 int entrynum;
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1008
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1009 entrynum = (int)gtk_object_get_user_data(GTK_OBJECT(entry));
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1010
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1011 if (entrynum == USEROPT_AUTH) {
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1012 g_snprintf(user->proto_opt[USEROPT_AUTH],
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1013 sizeof(user->proto_opt[USEROPT_AUTH]), "%s", gtk_entry_get_text(entry));
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1014 } else if (entrynum == USEROPT_AUTHPORT) {
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1015 g_snprintf(user->proto_opt[USEROPT_AUTHPORT],
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1016 sizeof(user->proto_opt[USEROPT_AUTHPORT]), "%s", gtk_entry_get_text(entry));
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1017 }
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1018 }
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1019
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1020 static void toc_user_opts(GtkWidget *book, struct aim_user *user)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1021 {
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1022 /* so here, we create the new notebook page */
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1023 GtkWidget *vbox;
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1024 GtkWidget *hbox;
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1025 GtkWidget *label;
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1026 GtkWidget *entry;
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1027
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1234
diff changeset
1028 vbox = gtk_vbox_new(FALSE, 5);
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1234
diff changeset
1029 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1030 gtk_notebook_append_page(GTK_NOTEBOOK(book), vbox, gtk_label_new("TOC Options"));
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1031 gtk_widget_show(vbox);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1032
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1234
diff changeset
1033 hbox = gtk_hbox_new(FALSE, 5);
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1234
diff changeset
1034 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1035 gtk_widget_show(hbox);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1036
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1037 label = gtk_label_new("TOC Host:");
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1234
diff changeset
1038 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1039 gtk_widget_show(label);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1040
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1041 entry = gtk_entry_new();
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1234
diff changeset
1042 gtk_box_pack_end(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1043 gtk_object_set_user_data(GTK_OBJECT(entry), (void *)USEROPT_AUTH);
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1044 gtk_signal_connect(GTK_OBJECT(entry), "changed", GTK_SIGNAL_FUNC(toc_print_option), user);
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1045 if (user->proto_opt[USEROPT_AUTH][0]) {
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1046 debug_printf("setting text %s\n", user->proto_opt[USEROPT_AUTH]);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1047 gtk_entry_set_text(GTK_ENTRY(entry), user->proto_opt[USEROPT_AUTH]);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1048 } else
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1049 gtk_entry_set_text(GTK_ENTRY(entry), "toc.oscar.aol.com");
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1050 gtk_widget_show(entry);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1051
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1052 hbox = gtk_hbox_new(FALSE, 0);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1234
diff changeset
1053 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1054 gtk_widget_show(hbox);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1055
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1056 label = gtk_label_new("TOC Port:");
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1234
diff changeset
1057 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1058 gtk_widget_show(label);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1059
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1060 entry = gtk_entry_new();
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1234
diff changeset
1061 gtk_box_pack_end(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
1842
1d137dde946f [gaim-migrate @ 1852]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1840
diff changeset
1062 gtk_object_set_user_data(GTK_OBJECT(entry), (void *)USEROPT_AUTHPORT);
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1063 gtk_signal_connect(GTK_OBJECT(entry), "changed", GTK_SIGNAL_FUNC(toc_print_option), user);
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1064 if (user->proto_opt[USEROPT_AUTHPORT][0]) {
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1065 debug_printf("setting text %s\n", user->proto_opt[USEROPT_AUTHPORT]);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1066 gtk_entry_set_text(GTK_ENTRY(entry), user->proto_opt[USEROPT_AUTHPORT]);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1067 } else
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1068 gtk_entry_set_text(GTK_ENTRY(entry), "9898");
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1069
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1070 gtk_widget_show(entry);
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1071 }
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1072
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1073 static void toc_add_permit(struct gaim_connection *gc, char *who)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1074 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
1075 char buf2[BUF_LEN * 2];
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1076 if (gc->permdeny != 3)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1077 return;
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1078 g_snprintf(buf2, sizeof(buf2), "toc_add_permit %s", normalize(who));
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1079 sflap_send(gc, buf2, -1, TYPE_DATA);
1660
e001fb1b9418 [gaim-migrate @ 1670]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1623
diff changeset
1080 toc_set_config(gc);
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1081 }
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1082
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1083 static void toc_add_deny(struct gaim_connection *gc, char *who)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1084 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
1085 char buf2[BUF_LEN * 2];
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1086 if (gc->permdeny != 4)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1087 return;
1208
66a70fbb2b09 [gaim-migrate @ 1218]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1182
diff changeset
1088 g_snprintf(buf2, sizeof(buf2), "toc_add_deny %s", normalize(who));
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1089 sflap_send(gc, buf2, -1, TYPE_DATA);
1660
e001fb1b9418 [gaim-migrate @ 1670]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1623
diff changeset
1090 toc_set_config(gc);
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1091 }
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1092
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1093 static void toc_set_permit_deny(struct gaim_connection *gc)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1094 {
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
1095 char buf2[BUF_LEN * 2];
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1096 GSList *list;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1097 int at;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1098
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1099 switch (gc->permdeny) {
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1100 case 1:
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1101 /* permit all, deny none. to get here reliably we need to have been in permit
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1102 * mode, and send an empty toc_add_deny message, which will switch us to deny none */
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1103 g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1104 sflap_send(gc, buf2, -1, TYPE_DATA);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1105 g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1106 sflap_send(gc, buf2, -1, TYPE_DATA);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1107 break;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1108 case 2:
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1109 /* deny all, permit none. to get here reliably we need to have been in deny
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1110 * mode, and send an empty toc_add_permit message, which will switch us to permit none */
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1111 g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1112 sflap_send(gc, buf2, -1, TYPE_DATA);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1113 g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1114 sflap_send(gc, buf2, -1, TYPE_DATA);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1115 break;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1116 case 3:
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1117 /* permit some. we want to switch to deny mode first, then send the toc_add_permit
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1118 * message, which will clear and set our permit list. toc sucks. */
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1119 g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1120 sflap_send(gc, buf2, -1, TYPE_DATA);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1121
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1122 at = g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1123 list = gc->permit;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1124 while (list) {
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1125 at += g_snprintf(buf2 + at, sizeof(buf2) - at, "%s ", normalize(list->data));
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1126 if (at > MSG_LEN + 32) { /* from out my ass comes greatness */
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1127 sflap_send(gc, buf2, -1, TYPE_DATA);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1128 at = g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1129 }
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1130 list = list->next;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1131 }
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1132 sflap_send(gc, buf2, -1, TYPE_DATA);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1133 break;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1134 case 4:
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1135 /* deny some. we want to switch to permit mode first, then send the toc_add_deny
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1136 * message, which will clear and set our deny list. toc sucks. */
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1137 g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1138 sflap_send(gc, buf2, -1, TYPE_DATA);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1139
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1140 at = g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1141 list = gc->deny;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1142 while (list) {
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1143 at += g_snprintf(buf2 + at, sizeof(buf2) - at, "%s ", normalize(list->data));
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1144 if (at > MSG_LEN + 32) { /* from out my ass comes greatness */
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1145 sflap_send(gc, buf2, -1, TYPE_DATA);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1146 at = g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1147 }
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1148 list = list->next;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1149 }
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1150 sflap_send(gc, buf2, -1, TYPE_DATA);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1151 break;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1152 default:
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1153 break;
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1154 }
1660
e001fb1b9418 [gaim-migrate @ 1670]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1623
diff changeset
1155 toc_set_config(gc);
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1156 }
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1157
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1158 static void toc_rem_permit(struct gaim_connection *gc, char *who)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1159 {
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1160 if (gc->permdeny != 3)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1161 return;
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1162 toc_set_permit_deny(gc);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1163 }
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1164
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1165 static void toc_rem_deny(struct gaim_connection *gc, char *who)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1166 {
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1167 if (gc->permdeny != 4)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1168 return;
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1169 toc_set_permit_deny(gc);
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1170 }
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1171
1333
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1172 static void toc_draw_new_user(GtkWidget *box)
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1173 {
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1174 GtkWidget *label;
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1175
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1176 label = gtk_label_new(_("Unfortunately, currently TOC only allows new user registration by "
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1177 "going to http://aim.aol.com/aimnew/Aim/register.adp?promo=106723&pageset=Aim&client=no"
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1178 ". Clicking the Register button will open the URL for you."));
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1179 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1180 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5);
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1181 gtk_widget_show(label);
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1182 }
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1183
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1184 static void toc_do_new_user()
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1185 {
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1186 open_url(NULL, "http://aim.aol.com/aimnew/Aim/register.adp?promo=106723&pageset=Aim&client=no");
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1187 }
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1188
1401
bf041349b11e [gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1383
diff changeset
1189 static GList *toc_away_states()
bf041349b11e [gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1383
diff changeset
1190 {
bf041349b11e [gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1383
diff changeset
1191 return g_list_append(NULL, GAIM_AWAY_CUSTOM);
bf041349b11e [gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1383
diff changeset
1192 }
bf041349b11e [gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1383
diff changeset
1193
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1194 static void toc_do_action(struct gaim_connection *gc, char *act)
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1195 {
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1196 if (!strcmp(act, "Set User Info")) {
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1197 show_set_info(gc);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1198 } else if (!strcmp(act, "Set Dir Info")) {
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1199 show_set_dir(gc);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1200 } else if (!strcmp(act, "Change Password")) {
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1201 show_change_passwd(gc);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1202 }
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1203 }
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1204
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1205 static GList *toc_actions()
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1206 {
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1207 GList *m = NULL;
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1208
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1209 m = g_list_append(m, "Set User Info");
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1210 m = g_list_append(m, "Set Dir Info");
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1211 m = g_list_append(m, "Change Password");
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1212
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1213 return m;
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1214 }
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1215
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1216 void toc_init(struct prpl *ret)
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1217 {
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1218 ret->protocol = PROTO_TOC;
1435
f16e17d42b43 [gaim-migrate @ 1445]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1412
diff changeset
1219 ret->options = OPT_PROTO_HTML | OPT_PROTO_CORRECT_TIME;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1220 ret->name = toc_name;
1030
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1020
diff changeset
1221 ret->list_icon = toc_list_icon;
1401
bf041349b11e [gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1383
diff changeset
1222 ret->away_states = toc_away_states;
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1223 ret->actions = toc_actions;
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1224 ret->do_action = toc_do_action;
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1491
diff changeset
1225 ret->buddy_menu = toc_buddy_menu;
1087
56c7ceb986a8 [gaim-migrate @ 1097]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1051
diff changeset
1226 ret->user_opts = toc_user_opts;
1333
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1227 ret->draw_new_user = toc_draw_new_user;
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1310
diff changeset
1228 ret->do_new_user = toc_do_new_user;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1229 ret->login = toc_login;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1230 ret->close = toc_close;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1231 ret->send_im = toc_send_im;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1232 ret->set_info = toc_set_info;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1233 ret->get_info = toc_get_info;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1234 ret->set_away = toc_set_away;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1235 ret->get_away_msg = NULL;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1236 ret->set_dir = toc_set_dir;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1237 ret->get_dir = toc_get_dir;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1238 ret->dir_search = toc_dir_search;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1239 ret->set_idle = toc_set_idle;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1240 ret->change_passwd = toc_change_passwd;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1241 ret->add_buddy = toc_add_buddy;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1242 ret->add_buddies = toc_add_buddies;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1243 ret->remove_buddy = toc_remove_buddy;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1244 ret->add_permit = toc_add_permit;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1245 ret->add_deny = toc_add_deny;
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1246 ret->rem_permit = toc_rem_permit;
1208
66a70fbb2b09 [gaim-migrate @ 1218]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1182
diff changeset
1247 ret->rem_deny = toc_rem_deny;
1145
cd96ca1aed02 [gaim-migrate @ 1155]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1132
diff changeset
1248 ret->set_permit_deny = toc_set_permit_deny;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1249 ret->warn = toc_warn;
1806
c649b63382b7 [gaim-migrate @ 1816]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1794
diff changeset
1250 ret->draw_join_chat = toc_draw_join_chat;
1252
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1251 ret->accept_chat = toc_accept_chat;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1252 ret->join_chat = toc_join_chat;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1253 ret->chat_invite = toc_chat_invite;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1254 ret->chat_leave = toc_chat_leave;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1255 ret->chat_whisper = toc_chat_whisper;
46c09828e929 [gaim-migrate @ 1262]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
1256 ret->chat_send = toc_chat_send;
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
1257 ret->keepalive = toc_keepalive;
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 980
diff changeset
1258 }
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1259
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1260 /*********
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1261 * RVOUS ACTIONS
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1262 ********/
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1263
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1264 struct file_header {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1265 char magic[4]; /* 0 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1266 short hdrlen; /* 4 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1267 short hdrtype; /* 6 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1268 char bcookie[8]; /* 8 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1269 short encrypt; /* 16 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1270 short compress; /* 18 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1271 short totfiles; /* 20 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1272 short filesleft; /* 22 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1273 short totparts; /* 24 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1274 short partsleft; /* 26 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1275 long totsize; /* 28 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1276 long size; /* 32 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1277 long modtime; /* 36 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1278 long checksum; /* 40 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1279 long rfrcsum; /* 44 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1280 long rfsize; /* 48 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1281 long cretime; /* 52 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1282 long rfcsum; /* 56 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1283 long nrecvd; /* 60 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1284 long recvcsum; /* 64 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1285 char idstring[32]; /* 68 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1286 char flags; /* 100 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1287 char lnameoffset; /* 101 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1288 char lsizeoffset; /* 102 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1289 char dummy[69]; /* 103 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1290 char macfileinfo[16]; /* 172 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1291 short nencode; /* 188 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1292 short nlanguage; /* 190 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1293 char name[64]; /* 192 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1294 /* 256 */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1295 };
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1296
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1297 struct file_transfer {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1298 struct file_header hdr;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1299
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1300 struct gaim_connection *gc;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1301
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1302 char *user;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1303 char *cookie;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1304 char *ip;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1305 int port;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1306 long size;
1840
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1307 struct stat st;
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1308
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1309 GtkWidget *window;
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1310 int files;
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1311 char *filename;
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1312 FILE *file;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1313 int recvsize;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1314
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1315 gint inpa;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1316 };
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1317
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1318 static void debug_header(struct file_transfer *ft) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1319 struct file_header *f = (struct file_header *)ft;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1320 debug_printf("TOC FT HEADER:\n"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1321 "\t%s %d 0x%04x\n"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1322 "\t%s %d %d\n"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1323 "\t%d %d %d %d %ld %ld\n"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1324 "\t%ld %ld %ld %ld %ld %ld %ld %ld\n"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1325 "\t%s\n"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1326 "\t0x%02x, 0x%02x, 0x%02x\n"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1327 "\t%s %s\n"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1328 "\t%d %d\n"
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1329 "\t%s\n",
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1330 f->magic, ntohs(f->hdrlen), f->hdrtype,
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1331 f->bcookie, ntohs(f->encrypt), ntohs(f->compress),
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1332 ntohs(f->totfiles), ntohs(f->filesleft), ntohs(f->totparts),
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1333 ntohs(f->partsleft), ntohl(f->totsize), ntohl(f->size),
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1334 ntohl(f->modtime), ntohl(f->checksum), ntohl(f->rfrcsum), ntohl(f->rfsize),
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1335 ntohl(f->cretime), ntohl(f->rfcsum), ntohl(f->nrecvd),
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1336 ntohl(f->recvcsum),
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1337 f->idstring,
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1338 f->flags, f->lnameoffset, f->lsizeoffset,
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1339 f->dummy, f->macfileinfo,
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1340 ntohs(f->nencode), ntohs(f->nlanguage),
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1341 f->name);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1342 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1343
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1344 static void toc_send_file_callback(gpointer data, gint source, GdkInputCondition cond)
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1345 {
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1346 char buf[BUF_LONG];
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1347 int rt, i;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1348
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1349 struct file_transfer *ft = data;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1350
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1351 if (cond & GDK_INPUT_EXCEPTION) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1352 gdk_input_remove(ft->inpa);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1353 close(source);
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1354 g_free(ft->filename);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1355 g_free(ft->user);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1356 g_free(ft->ip);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1357 g_free(ft->cookie);
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1358 if (ft->file)
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1359 fclose(ft->file);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1360 g_free(ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1361 return;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1362 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1363
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1364 if (ft->hdr.hdrtype != 0x202) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1365 char *buf = frombase64(ft->cookie);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1366
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1367 read(source, ft, 8);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1368 read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1369 debug_header(ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1370
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1371 ft->hdr.hdrtype = 0x202;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1372 memcpy(ft->hdr.bcookie, buf, 8);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1373 g_free(buf);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1374 ft->hdr.encrypt = 0; ft->hdr.compress = 0;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1375 debug_header(ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1376 write(source, ft, 256);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1377
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1378 if (ft->files == 1) {
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1379 ft->file = fopen(ft->filename, "w");
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1380 if (!ft->file) {
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1381 buf = g_strdup_printf("Could not open %s for writing!", ft->filename);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1382 do_error_dialog(buf, _("Error"));
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1383 g_free(buf);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1384 gdk_input_remove(ft->inpa);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1385 close(source);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1386 g_free(ft->filename);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1387 g_free(ft->user);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1388 g_free(ft->ip);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1389 g_free(ft->cookie);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1390 g_free(ft);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1391 }
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1392 } else {
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1393 buf = g_strdup_printf("%s/%s", ft->filename, ft->hdr.name);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1394 ft->file = fopen(buf, "w");
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1395 g_free(buf);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1396 if (!ft->file) {
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1397 buf = g_strdup_printf("Could not open %s/%s for writing!", ft->filename,
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1398 ft->hdr.name);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1399 do_error_dialog(buf, _("Error"));
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1400 g_free(buf);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1401 gdk_input_remove(ft->inpa);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1402 close(source);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1403 g_free(ft->filename);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1404 g_free(ft->user);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1405 g_free(ft->ip);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1406 g_free(ft->cookie);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1407 g_free(ft);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1408 }
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1409 }
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1410
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1411 return;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1412 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1413
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1414 rt = read(source, buf, MIN(ntohl(ft->hdr.size) - ft->recvsize, 1024));
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1415 if (rt < 0) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1416 do_error_dialog("File transfer failed; other side probably canceled.", "Error");
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1417 gdk_input_remove(ft->inpa);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1418 close(source);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1419 g_free(ft->user);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1420 g_free(ft->ip);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1421 g_free(ft->cookie);
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1422 if (ft->file)
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1423 fclose(ft->file);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1424 g_free(ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1425 return;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1426 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1427 ft->recvsize += rt;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1428 for (i = 0; i < rt; i++)
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1429 fprintf(ft->file, "%c", buf[i]);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1430
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1431 if (ft->recvsize == ntohl(ft->hdr.size)) {
1469
d74112de59ed [gaim-migrate @ 1479]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1466
diff changeset
1432 ft->hdr.hdrtype = htons(0x0204);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1433 ft->hdr.filesleft = htons(ntohs(ft->hdr.filesleft) - 1);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1434 ft->hdr.partsleft = htons(ntohs(ft->hdr.partsleft) - 1);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1435 ft->hdr.recvcsum = ft->hdr.checksum; /* uh... */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1436 ft->hdr.nrecvd = htons(ntohs(ft->hdr.nrecvd) + 1);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1437 ft->hdr.flags = 0;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1438 write(source, ft, 256);
1469
d74112de59ed [gaim-migrate @ 1479]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1466
diff changeset
1439 debug_header(ft);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1440 ft->recvsize = 0;
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1441 fclose(ft->file);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1442 if (ft->hdr.filesleft == 0) {
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1443 gdk_input_remove(ft->inpa);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1444 close(source);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1445 g_free(ft->filename);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1446 g_free(ft->user);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1447 g_free(ft->ip);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1448 g_free(ft->cookie);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1449 g_free(ft);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1450 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1451 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1452 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1453
1840
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1454 static void toc_send_file_connect(gpointer data, gint src, GdkInputCondition cond)
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1455 {
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1456 struct file_transfer *ft = data;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1457
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1458 if (src == -1) {
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1459 do_error_dialog(_("Could not connect for transfer!"), _("Error"));
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1460 g_free(ft->filename);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1461 g_free(ft->cookie);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1462 g_free(ft->user);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1463 g_free(ft->ip);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1464 g_free(ft);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1465 return;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1466 }
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1467
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1468 ft->inpa = gdk_input_add(src, GDK_INPUT_READ | GDK_INPUT_EXCEPTION, toc_send_file_callback, ft);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1469 }
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1470
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1471 static void toc_send_file(gpointer a, struct file_transfer *old_ft)
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1472 {
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1473 struct file_transfer *ft;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1474 char *dirname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(old_ft->window));
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1475 int fd;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1476 struct aim_user *user;
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
1477 char buf[BUF_LEN * 2];
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1478
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1479 if (file_is_dir(dirname, old_ft->window))
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1480 return;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1481 ft = g_new0(struct file_transfer, 1);
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1482 if (old_ft->files == 1)
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1483 ft->filename = g_strdup(dirname);
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1484 else
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1485 ft->filename = g_dirname(dirname);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1486 ft->cookie = g_strdup(old_ft->cookie);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1487 ft->user = g_strdup(old_ft->user);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1488 ft->ip = g_strdup(old_ft->ip);
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1489 ft->files = old_ft->files;
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1490 ft->port = old_ft->port;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1491 ft->gc = old_ft->gc;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1492 user = ft->gc->user;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1493 gtk_widget_destroy(old_ft->window);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1494
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
1495 g_snprintf(buf, sizeof(buf), "toc_rvous_accept %s %s %s", ft->user, ft->cookie, FILE_SEND_UID);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1496 sflap_send(ft->gc, buf, -1, TYPE_DATA);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1497
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1498 fd =
1881
a02584b98823 [gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1866
diff changeset
1499 proxy_connect(ft->ip, ft->port, toc_send_file_connect, ft);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1500 if (fd < 0) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1501 do_error_dialog(_("Could not connect for transfer!"), _("Error"));
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1502 g_free(ft->filename);
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1503 g_free(ft->cookie);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1504 g_free(ft->user);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1505 g_free(ft->ip);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1506 g_free(ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1507 return;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1508 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1509 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1510
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1511 static void toc_get_file_callback(gpointer data, gint source, GdkInputCondition cond)
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1512 {
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1513 char buf[BUF_LONG];
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1514
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1515 struct file_transfer *ft = data;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1516
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1517 if (cond & GDK_INPUT_EXCEPTION) {
1469
d74112de59ed [gaim-migrate @ 1479]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1466
diff changeset
1518 do_error_dialog("The file tranfer has been aborted; the other side most likely"
d74112de59ed [gaim-migrate @ 1479]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1466
diff changeset
1519 " cancelled.", "Error");
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1520 gdk_input_remove(ft->inpa);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1521 close(source);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1522 g_free(ft->filename);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1523 g_free(ft->user);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1524 g_free(ft->ip);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1525 g_free(ft->cookie);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1526 if (ft->file)
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1527 fclose(ft->file);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1528 g_free(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1529 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1530 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1531
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1532 if (cond & GDK_INPUT_WRITE) {
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1533 int remain = MIN(ntohl(ft->hdr.totsize) - ft->recvsize, 1024);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1534 int i;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1535 for (i = 0; i < remain; i++)
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1536 fscanf(ft->file, "%c", &buf[i]);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1537 write(source, buf, remain);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1538 ft->recvsize += remain;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1539 if (ft->recvsize == ntohl(ft->hdr.totsize)) {
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1540 gdk_input_remove(ft->inpa);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1541 ft->inpa = gdk_input_add(source, GDK_INPUT_READ | GDK_INPUT_EXCEPTION,
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1542 toc_get_file_callback, ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1543 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1544 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1545 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1546
1469
d74112de59ed [gaim-migrate @ 1479]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1466
diff changeset
1547 if (ft->hdr.hdrtype == htons(0x1108)) {
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1548 struct tm *fortime;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1549 struct stat st;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1550
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1551 read(source, ft, 8);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1552 read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1553 debug_header(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1554
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1555 stat(ft->filename, &st);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1556 fortime = localtime(&st.st_mtime);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1557 g_snprintf(buf, sizeof(buf), "%2d/%2d/%4d %2d:%2d %8ld %s\r\n",
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1558 fortime->tm_mon + 1, fortime->tm_mday, fortime->tm_year + 1900,
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1559 fortime->tm_hour + 1, fortime->tm_min + 1, (long)st.st_size,
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1560 g_basename(ft->filename));
1469
d74112de59ed [gaim-migrate @ 1479]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1466
diff changeset
1561 write(source, buf, ntohl(ft->hdr.size));
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1562 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1563 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1564
1469
d74112de59ed [gaim-migrate @ 1479]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1466
diff changeset
1565 if (ft->hdr.hdrtype == htons(0x1209)) {
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1566 read(source, ft, 8);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1567 read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1568 debug_header(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1569 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1570 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1571
1469
d74112de59ed [gaim-migrate @ 1479]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1466
diff changeset
1572 if (ft->hdr.hdrtype == htons(0x120b)) {
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1573 read(source, ft, 8);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1574 read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1575 debug_header(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1576
1469
d74112de59ed [gaim-migrate @ 1479]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1466
diff changeset
1577 if (ft->hdr.hdrtype != htons(0x120c)) {
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1578 g_snprintf(buf, sizeof(buf), "%s decided to cancel the transfer", ft->user);
1469
d74112de59ed [gaim-migrate @ 1479]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1466
diff changeset
1579 do_error_dialog(buf, "Error");
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1580 gdk_input_remove(ft->inpa);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1581 close(source);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1582 g_free(ft->filename);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1583 g_free(ft->user);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1584 g_free(ft->ip);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1585 g_free(ft->cookie);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1586 if (ft->file)
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1587 fclose(ft->file);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1588 g_free(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1589 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1590 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1591
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1592 ft->hdr.hdrtype = 0x0101;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1593 ft->hdr.totfiles = htons(1); ft->hdr.filesleft = htons(1);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1594 ft->hdr.flags = 0x20;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1595 write(source, ft, 256);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1596 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1597 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1598
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1599 if (ft->hdr.hdrtype == 0x0101) {
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1600 read(source, ft, 8);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1601 read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1602 debug_header(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1603
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1604 gdk_input_remove(ft->inpa);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1605 ft->inpa = gdk_input_add(source, GDK_INPUT_WRITE | GDK_INPUT_EXCEPTION,
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1606 toc_get_file_callback, ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1607 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1608 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1609
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1610 if (ft->hdr.hdrtype == 0x0202) {
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1611 read(source, ft, 8);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1612 read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1613 debug_header(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1614
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1615 gdk_input_remove(ft->inpa);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1616 close(source);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1617 g_free(ft->filename);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1618 g_free(ft->user);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1619 g_free(ft->ip);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1620 g_free(ft->cookie);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1621 if (ft->file)
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1622 fclose(ft->file);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1623 g_free(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1624 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1625 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1626 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1627
1840
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1628 static void toc_get_file_connect(gpointer data, gint src, GdkInputCondition cond)
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1629 {
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1630 struct file_transfer *ft = data;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1631 struct file_header *hdr;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1632 char *buf;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1633
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1634 if (src == -1) {
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1635 do_error_dialog(_("Could not connect for transfer!"), _("Error"));
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1636 fclose(ft->file);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1637 g_free(ft->filename);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1638 g_free(ft->cookie);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1639 g_free(ft->user);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1640 g_free(ft->ip);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1641 g_free(ft);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1642 return;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1643 }
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1644
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1645 hdr = (struct file_header *)ft;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1646 hdr->magic[0] = 'O'; hdr->magic[1] = 'F'; hdr->magic[2] = 'T'; hdr->magic[3] = '2';
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1647 hdr->hdrlen = htons(256);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1648 hdr->hdrtype = htons(0x1108);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1649 buf = frombase64(ft->cookie);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1650 g_snprintf(hdr->bcookie, 8, "%s", buf);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1651 g_free(buf);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1652 hdr->totfiles = htons(1); hdr->filesleft = htons(1);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1653 hdr->totparts = htons(1); hdr->partsleft = htons(1);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1654 hdr->totsize = htonl((long)ft->st.st_size); /* combined size of all files */
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1655 /* size = strlen("mm/dd/yyyy hh:mm sizesize 'name'\r\n") */
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1656 hdr->size = htonl(28 + strlen(g_basename(ft->filename))); /* size of listing.txt */
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1657 hdr->modtime = htonl(ft->st.st_mtime);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1658 hdr->checksum = htonl(0x89f70000); /* uh... */
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1659 g_snprintf(hdr->idstring, 32, "OFT_Windows ICBMFT V1.1 32");
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1660 hdr->flags = 0x02;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1661 hdr->lnameoffset = 0x1A;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1662 hdr->lsizeoffset = 0x10;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1663 g_snprintf(hdr->name, 64, "listing.txt");
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1664 if (write(src, hdr, 256) < 0) {
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1665 do_error_dialog(_("Could not write file header!"), _("Error"));
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1666 fclose(ft->file);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1667 g_free(ft->filename);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1668 g_free(ft->cookie);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1669 g_free(ft->user);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1670 g_free(ft->ip);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1671 g_free(ft);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1672 return;
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1673 }
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1674
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1675 ft->inpa = gdk_input_add(src, GDK_INPUT_READ | GDK_INPUT_EXCEPTION, toc_get_file_callback, ft);
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1676 }
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1677
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1678 static void toc_get_file(gpointer a, struct file_transfer *old_ft)
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1679 {
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1680 struct file_transfer *ft;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1681 char *dirname = gtk_file_selection_get_filename(GTK_FILE_SELECTION(old_ft->window));
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1682 int fd;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1683 struct aim_user *user;
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
1684 char *buf, buf2[BUF_LEN * 2];
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1685
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1686 if (file_is_dir(dirname, old_ft->window))
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1687 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1688 ft = g_new0(struct file_transfer, 1);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1689 ft->filename = g_strdup(dirname);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1690 ft->file = fopen(ft->filename, "r");
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1691 if (!ft->file) {
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1692 buf = g_strdup_printf("Unable to open %s for transfer!", ft->filename);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1693 do_error_dialog(buf, "Error");
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1694 g_free(buf);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1695 g_free(ft->filename);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1696 g_free(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1697 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1698 }
1840
00aef397a1fe [gaim-migrate @ 1850]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1827
diff changeset
1699 if (stat(dirname, &ft->st)) {
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1700 buf = g_strdup_printf("Unable to examine %s!", dirname);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1701 do_error_dialog(buf, "Error");
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1702 g_free(buf);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1703 g_free(ft->filename);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1704 g_free(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1705 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1706 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1707 ft->cookie = g_strdup(old_ft->cookie);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1708 ft->user = g_strdup(old_ft->user);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1709 ft->ip = g_strdup(old_ft->ip);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1710 ft->port = old_ft->port;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1711 ft->gc = old_ft->gc;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1712 user = ft->gc->user;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1713 gtk_widget_destroy(old_ft->window);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1714
1615
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
1715 g_snprintf(buf2, sizeof(buf2), "toc_rvous_accept %s %s %s", ft->user, ft->cookie, FILE_GET_UID);
5a2fd3f2a1d0 [gaim-migrate @ 1625]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1533
diff changeset
1716 sflap_send(ft->gc, buf2, -1, TYPE_DATA);
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1717
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1718 fd =
1881
a02584b98823 [gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1866
diff changeset
1719 proxy_connect(ft->ip, ft->port, toc_get_file_connect, ft);
1466
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1720 if (fd < 0) {
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1721 do_error_dialog(_("Could not connect for transfer!"), _("Error"));
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1722 fclose(ft->file);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1723 g_free(ft->filename);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1724 g_free(ft->cookie);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1725 g_free(ft->user);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1726 g_free(ft->ip);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1727 g_free(ft);
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1728 return;
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1729 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1730 }
1a24237f5865 [gaim-migrate @ 1476]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1459
diff changeset
1731
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1732 static void cancel_callback(gpointer a, struct file_transfer *ft) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1733 gtk_widget_destroy(ft->window);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1734 if (a == ft->window) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1735 g_free(ft->cookie);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1736 g_free(ft->user);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1737 g_free(ft->ip);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1738 g_free(ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1739 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1740 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1741
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1742 static void toc_accept_ft(gpointer a, struct ft_request *fr) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1743 GtkWidget *window;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1744 char buf[BUF_LEN];
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1745
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1746 struct file_transfer *ft = g_new0(struct file_transfer, 1);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1747 ft->gc = fr->gc;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1748 ft->user = g_strdup(fr->user);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1749 ft->cookie = g_strdup(fr->cookie);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1750 ft->ip = g_strdup(fr->ip);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1751 ft->port = fr->port;
1459
d6340f73e94b [gaim-migrate @ 1469]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1457
diff changeset
1752 ft->files = fr->files;
1457
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1753
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1754 ft->window = window = gtk_file_selection_new(_("Gaim - Save As..."));
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1755 g_snprintf(buf, sizeof(buf), "%s/%s", g_get_home_dir(), fr->filename ? fr->filename : "");
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1756 gtk_file_selection_set_filename(GTK_FILE_SELECTION(window), buf);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1757 gtk_signal_connect(GTK_OBJECT(window), "destroy",
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1758 GTK_SIGNAL_FUNC(cancel_callback), ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1759 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(ft->window)->cancel_button), "clicked",
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1760 GTK_SIGNAL_FUNC(cancel_callback), ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1761
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1762 if (!strcmp(fr->UID, FILE_SEND_UID))
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1763 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(window)->ok_button), "clicked",
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1764 GTK_SIGNAL_FUNC(toc_send_file), ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1765 else
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1766 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(window)->ok_button), "clicked",
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1767 GTK_SIGNAL_FUNC(toc_get_file), ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1768
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1769 gtk_widget_show(window);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1770 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1771
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1772 static void toc_reject_ft(gpointer a, struct ft_request *ft) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1773 g_free(ft->user);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1774 g_free(ft->filename);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1775 g_free(ft->ip);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1776 g_free(ft->cookie);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1777 if (ft->message)
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1778 g_free(ft->message);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1779 g_free(ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1780 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1781
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1782 static void accept_file_dialog(struct ft_request *ft) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1783 char buf[BUF_LONG];
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1784 if (!strcmp(ft->UID, FILE_SEND_UID)) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1785 /* holy crap. who the fuck would transfer gigabytes through AIM?! */
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1786 static char *sizes[4] = { "bytes", "KB", "MB", "GB" };
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1787 float size = ft->size;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1788 int index = 0;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1789 while ((index < 4) && (size > 1024)) {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1790 size /= 1024;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1791 index++;
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1792 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1793 g_snprintf(buf, sizeof(buf), _("%s requests %s to accept %d file%s: %s (%.2f %s)%s%s"),
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1794 ft->user, ft->gc->username, ft->files, (ft->files == 1) ? "" : "s",
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1795 ft->filename, size, sizes[index], (ft->message) ? "\n" : "",
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1796 (ft->message) ? ft->message : "");
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1797 } else {
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1798 g_snprintf(buf, sizeof(buf), _("%s requests you to send them a file"), ft->user);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1799 }
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1800 do_ask_dialog(buf, ft, toc_accept_ft, toc_reject_ft);
c6f9d0cdaa00 [gaim-migrate @ 1467]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1435
diff changeset
1801 }