src/protocols/yahoo/yahoo.h

Wed, 02 Jun 2004 00:44:51 +0000

author
Tim Ringenbach <marv@pidgin.im>
date
Wed, 02 Jun 2004 00:44:51 +0000
changeset 9161
0561de0af1c6
parent 9062
2836e0e61402
child 9164
46904c930b6e
permissions
-rw-r--r--

[gaim-migrate @ 9946]
wing added support for yahoo profiles in, well pretty much every language.
Looks pretty impressive to me.

Someone may want to double check his src/util.c changes. I think we have
some crazy patch writers who know those functions better than me.
This also introduces a couple of warning because wing didn't add his new
util.c function to util.h. Rather than adding it myself, I'm going to bug
him to add it and document it.

6513
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
1 /**
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
2 * @file yahoo.h The Yahoo! protocol plugin
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
3 *
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
4 * gaim
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
5 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8045
diff changeset
6 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8045
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8045
diff changeset
8 * source distribution.
6513
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
9 *
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
13 * (at your option) any later version.
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
14 *
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
18 * GNU General Public License for more details.
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
19 *
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
21 * along with this program; if not, write to the Free Software
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
23 */
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
24
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
25 #ifndef _YAHOO_H_
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
26 #define _YAHOO_H_
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
27
6784
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
28 #include "prpl.h"
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
29
7883
02cf91894bcf [gaim-migrate @ 8537]
Tim Ringenbach <marv@pidgin.im>
parents: 7827
diff changeset
30 #define YAHOO_PAGER_HOST "scs.msg.yahoo.com"
7827
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
31 #define YAHOO_PAGER_PORT 5050
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
32 #define YAHOO_PROFILE_URL "http://profiles.yahoo.com/"
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
33 #define YAHOO_XFER_HOST "filetransfer.msg.yahoo.com"
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
34 #define YAHOO_XFER_PORT 80
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents: 8046
diff changeset
35 #define YAHOO_ROOMLIST_URL "http://insider.msg.yahoo.com/ycontent/"
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
36
7134
e999c4697e38 [gaim-migrate @ 7701]
Sean Egan <seanegan@pidgin.im>
parents: 6895
diff changeset
37 #define WEBMESSENGER_URL "http://login.yahoo.com/config/login?.src=pg"
e999c4697e38 [gaim-migrate @ 7701]
Sean Egan <seanegan@pidgin.im>
parents: 6895
diff changeset
38
6729
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
39 enum yahoo_service { /* these are easier to see in hex */
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
40 YAHOO_SERVICE_LOGON = 1,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
41 YAHOO_SERVICE_LOGOFF,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
42 YAHOO_SERVICE_ISAWAY,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
43 YAHOO_SERVICE_ISBACK,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
44 YAHOO_SERVICE_IDLE, /* 5 (placemarker) */
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
45 YAHOO_SERVICE_MESSAGE,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
46 YAHOO_SERVICE_IDACT,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
47 YAHOO_SERVICE_IDDEACT,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
48 YAHOO_SERVICE_MAILSTAT,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
49 YAHOO_SERVICE_USERSTAT, /* 0xa */
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
50 YAHOO_SERVICE_NEWMAIL,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
51 YAHOO_SERVICE_CHATINVITE,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
52 YAHOO_SERVICE_CALENDAR,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
53 YAHOO_SERVICE_NEWPERSONALMAIL,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
54 YAHOO_SERVICE_NEWCONTACT,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
55 YAHOO_SERVICE_ADDIDENT, /* 0x10 */
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
56 YAHOO_SERVICE_ADDIGNORE,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
57 YAHOO_SERVICE_PING,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
58 YAHOO_SERVICE_GOTGROUPRENAME,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
59 YAHOO_SERVICE_SYSMESSAGE = 0x14,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
60 YAHOO_SERVICE_PASSTHROUGH2 = 0x16,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
61 YAHOO_SERVICE_CONFINVITE = 0x18,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
62 YAHOO_SERVICE_CONFLOGON,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
63 YAHOO_SERVICE_CONFDECLINE,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
64 YAHOO_SERVICE_CONFLOGOFF,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
65 YAHOO_SERVICE_CONFADDINVITE,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
66 YAHOO_SERVICE_CONFMSG,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
67 YAHOO_SERVICE_CHATLOGON,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
68 YAHOO_SERVICE_CHATLOGOFF,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
69 YAHOO_SERVICE_CHATMSG = 0x20,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
70 YAHOO_SERVICE_GAMELOGON = 0x28,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
71 YAHOO_SERVICE_GAMELOGOFF,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
72 YAHOO_SERVICE_GAMEMSG = 0x2a,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
73 YAHOO_SERVICE_FILETRANSFER = 0x46,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
74 YAHOO_SERVICE_VOICECHAT = 0x4A,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
75 YAHOO_SERVICE_NOTIFY = 0x4B,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
76 YAHOO_SERVICE_VERIFY,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
77 YAHOO_SERVICE_P2PFILEXFER,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
78 YAHOO_SERVICE_PEEPTOPEER = 0x4F,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
79 YAHOO_SERVICE_WEBCAM,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
80 YAHOO_SERVICE_AUTHRESP = 0x54,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
81 YAHOO_SERVICE_LIST = 0x55,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
82 YAHOO_SERVICE_AUTH = 0x57,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
83 YAHOO_SERVICE_ADDBUDDY = 0x83,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
84 YAHOO_SERVICE_REMBUDDY = 0x84,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
85 YAHOO_SERVICE_IGNORECONTACT, /* > 1, 7, 13 < 1, 66, 13, 0*/
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
86 YAHOO_SERVICE_REJECTCONTACT,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
87 YAHOO_SERVICE_GROUPRENAME = 0x89, /* > 1, 65(new), 66(0), 67(old) */
6847
0fda06bb588a [gaim-migrate @ 7392]
Tim Ringenbach <marv@pidgin.im>
parents: 6784
diff changeset
88 /* YAHOO_SERVICE_??? = 0x8A, */
6729
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
89 YAHOO_SERVICE_CHATONLINE = 0x96, /* > 109(id), 1, 6(abcde) < 0,1*/
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
90 YAHOO_SERVICE_CHATGOTO,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
91 YAHOO_SERVICE_CHATJOIN, /* > 1 104-room 129-1600326591 62-2 */
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
92 YAHOO_SERVICE_CHATLEAVE,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
93 YAHOO_SERVICE_CHATEXIT = 0x9b,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
94 YAHOO_SERVICE_CHATADDINVITE = 0x9d,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
95 YAHOO_SERVICE_CHATLOGOUT = 0xa0,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
96 YAHOO_SERVICE_CHATPING,
7134
e999c4697e38 [gaim-migrate @ 7701]
Sean Egan <seanegan@pidgin.im>
parents: 6895
diff changeset
97 YAHOO_SERVICE_COMMENT = 0xa8,
9062
2836e0e61402 [gaim-migrate @ 9838]
Tim Ringenbach <marv@pidgin.im>
parents: 8349
diff changeset
98 YAHOO_SERVICE_PICTURE = 0xbe,
2836e0e61402 [gaim-migrate @ 9838]
Tim Ringenbach <marv@pidgin.im>
parents: 8349
diff changeset
99 YAHOO_SERVICE_PICTURE_UPDATE = 0xc1,
7134
e999c4697e38 [gaim-migrate @ 7701]
Sean Egan <seanegan@pidgin.im>
parents: 6895
diff changeset
100 YAHOO_SERVICE_WEBLOGIN = 0x0226
6729
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
101 };
6513
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
102
6729
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
103 enum yahoo_status {
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
104 YAHOO_STATUS_AVAILABLE = 0,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
105 YAHOO_STATUS_BRB,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
106 YAHOO_STATUS_BUSY,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
107 YAHOO_STATUS_NOTATHOME,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
108 YAHOO_STATUS_NOTATDESK,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
109 YAHOO_STATUS_NOTINOFFICE,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
110 YAHOO_STATUS_ONPHONE,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
111 YAHOO_STATUS_ONVACATION,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
112 YAHOO_STATUS_OUTTOLUNCH,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
113 YAHOO_STATUS_STEPPEDOUT,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
114 YAHOO_STATUS_INVISIBLE = 12,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
115 YAHOO_STATUS_CUSTOM = 99,
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
116 YAHOO_STATUS_IDLE = 999,
7134
e999c4697e38 [gaim-migrate @ 7701]
Sean Egan <seanegan@pidgin.im>
parents: 6895
diff changeset
117 YAHOO_STATUS_WEBLOGIN = 0x5a55aa55,
6729
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
118 YAHOO_STATUS_OFFLINE = 0x5a55aa56, /* don't ask */
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
119 YAHOO_STATUS_TYPING = 0x16
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
120 };
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
121
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
122 struct yahoo_data {
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
123 int fd;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
124 guchar *rxqueue;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
125 int rxlen;
6784
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
126 GHashTable *friends;
6729
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
127 int current_status;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
128 gboolean logged_in;
6784
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
129 GString *tmp_serv_blist, *tmp_serv_ilist;
6729
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
130 GSList *confs;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
131 unsigned int conf_id; /* just a counter */
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
132 gboolean chat_online;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
133 gboolean in_chat;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
134 char *chat_name;
7134
e999c4697e38 [gaim-migrate @ 7701]
Sean Egan <seanegan@pidgin.im>
parents: 6895
diff changeset
135 char *auth;
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
136 char *cookie_y;
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
137 char *cookie_t;
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
138 int session_id;
6729
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
139 };
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
140
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
141 struct yahoo_pair {
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
142 int key;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
143 char *value;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
144 };
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
145
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
146 struct yahoo_packet {
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
147 guint16 service;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
148 guint32 status;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
149 guint32 id;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
150 GSList *hash;
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
151 };
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
152
6784
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
153 struct yahoo_friend { /* we'll call them friends, so we don't confuse them with GaimBuddy */
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
154 enum yahoo_status status;
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
155 char *msg;
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
156 char *game;
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
157 int idle;
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
158 int away;
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
159 gboolean sms;
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
160 };
6623b18f188a [gaim-migrate @ 7323]
Tim Ringenbach <marv@pidgin.im>
parents: 6729
diff changeset
161
6895
ac919467a9b7 [gaim-migrate @ 7442]
Tim Ringenbach <marv@pidgin.im>
parents: 6847
diff changeset
162 #define YAHOO_MAX_STATUS_MESSAGE_LENGTH (48)
6847
0fda06bb588a [gaim-migrate @ 7392]
Tim Ringenbach <marv@pidgin.im>
parents: 6784
diff changeset
163
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
164 #ifdef YAHOO_WEBMESSENGER
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
165 #define YAHOO_PROTO_VER 0x0065
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
166 #else
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
167 #define YAHOO_PROTO_VER 0x000b
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
168 #endif
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
169
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
170 #define YAHOO_PACKET_HDRLEN (4 + 2 + 2 + 2 + 2 + 4 + 4)
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
171
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
172 /* sometimes i wish prpls could #include things from other prpls. then i could just
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
173 * use the routines from libfaim and not have to admit to knowing how they work. */
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
174 #define yahoo_put16(buf, data) ( \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
175 (*(buf) = (unsigned char)((data)>>8)&0xff), \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
176 (*((buf)+1) = (unsigned char)(data)&0xff), \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
177 2)
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
178 #define yahoo_get16(buf) ((((*(buf))<<8)&0xff00) + ((*((buf)+1)) & 0xff))
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
179 #define yahoo_put32(buf, data) ( \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
180 (*((buf)) = (unsigned char)((data)>>24)&0xff), \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
181 (*((buf)+1) = (unsigned char)((data)>>16)&0xff), \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
182 (*((buf)+2) = (unsigned char)((data)>>8)&0xff), \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
183 (*((buf)+3) = (unsigned char)(data)&0xff), \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
184 4)
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
185 #define yahoo_get32(buf) ((((*(buf))<<24)&0xff000000) + \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
186 (((*((buf)+1))<<16)&0x00ff0000) + \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
187 (((*((buf)+2))<< 8)&0x0000ff00) + \
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
188 (((*((buf)+3) )&0x000000ff)))
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
189
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
190
6729
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
191 struct yahoo_packet *yahoo_packet_new(enum yahoo_service service, enum yahoo_status status, int id);
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
192 void yahoo_packet_hash(struct yahoo_packet *pkt, int key, const char *value);
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
193 int yahoo_send_packet(struct yahoo_data *yd, struct yahoo_packet *pkt);
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
194 void yahoo_packet_write(struct yahoo_packet *pkt, guchar *data);
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents: 7134
diff changeset
195 int yahoo_packet_length(struct yahoo_packet *pkt);
6729
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
196 void yahoo_packet_free(struct yahoo_packet *pkt);
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
197
c21179a914e5 [gaim-migrate @ 7256]
Tim Ringenbach <marv@pidgin.im>
parents: 6629
diff changeset
198 /* util.c */
6513
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
199 void yahoo_init_colorht();
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
200 void yahoo_dest_colorht();
6629
9d6bbc91ba24 [gaim-migrate @ 7153]
Tim Ringenbach <marv@pidgin.im>
parents: 6513
diff changeset
201 char *yahoo_codes_to_html(const char *x);
9d6bbc91ba24 [gaim-migrate @ 7153]
Tim Ringenbach <marv@pidgin.im>
parents: 6513
diff changeset
202 char *yahoo_html_to_codes(const char *src);
6513
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
203
7827
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
204 /**
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
205 * Encode some text to send to the yahoo server.
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
206 *
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
207 * @param gc The connection handle.
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
208 * @param str The null terminated utf8 string to encode.
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
209 * @param utf8 If not @c NULL, whether utf8 is okay or not.
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
210 * Even if it is okay, we may not use it. If we
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
211 * used it, we set this to @c TRUE, else to
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
212 * @c FALSE. If @c NULL, false is assumed, and
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
213 * it is not dereferenced.
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
214 * @return The g_malloced string in the appropriate encoding.
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
215 */
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
216 char *yahoo_string_encode(GaimConnection *gc, const char *str, gboolean *utf8);
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
217
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
218 /**
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
219 * Decode some text received from the server.
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
220 *
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
221 * @param gc The gc handle.
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
222 * @param str The null terminated string to decode.
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
223 * @param utf8 Did the server tell us it was supposed to be utf8?
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
224 * @return The decoded, utf-8 string, which must be g_free()'d.
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
225 */
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
226 char *yahoo_string_decode(GaimConnection *gc, const char *str, gboolean utf8);
080c98045e12 [gaim-migrate @ 8479]
Ethan Blanton <elb@pidgin.im>
parents: 7651
diff changeset
227
9161
0561de0af1c6 [gaim-migrate @ 9946]
Tim Ringenbach <marv@pidgin.im>
parents: 9062
diff changeset
228 /* yahoo_profile.c */
0561de0af1c6 [gaim-migrate @ 9946]
Tim Ringenbach <marv@pidgin.im>
parents: 9062
diff changeset
229 void yahoo_get_info(GaimConnection *gc, const char *name);
0561de0af1c6 [gaim-migrate @ 9946]
Tim Ringenbach <marv@pidgin.im>
parents: 9062
diff changeset
230
6513
191231aceb3f [gaim-migrate @ 7030]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
231 #endif /* _YAHOO_H_ */

mercurial