Mercurial > pidgin
annotate plugins/icq/udphandle.c @ 1918:fe79493094e7
[gaim-migrate @ 1928]
stupidity
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 29 May 2001 23:51:16 +0000 |
parents | 8ed70631ed15 |
children | 7b3f1eb1ef7d |
rev | line source |
---|---|
1152 | 1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
3 /* |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
4 * Copyright (C) 1998-2001, Denis V. Dmitrienko <denis@null.net> and |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
5 * Bill Soudan <soudan@kde.org> |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
6 * |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
7 * This program is free software; you can redistribute it and/or modify |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
8 * it under the terms of the GNU General Public License as published by |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
9 * the Free Software Foundation; either version 2 of the License, or |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
10 * (at your option) any later version. |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
11 * |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
12 * This program is distributed in the hope that it will be useful, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
15 * GNU General Public License for more details. |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
16 * |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
17 * You should have received a copy of the GNU General Public License |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
18 * along with this program; if not, write to the Free Software |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
20 * |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
21 */ |
1152 | 22 |
23 #include <stdlib.h> | |
24 | |
25 #include "icqlib.h" | |
26 #include "udp.h" | |
27 #include "queue.h" | |
28 #include "icqbyteorder.h" | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
29 #include "contacts.h" |
1152 | 30 |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
31 void icq_DoMsg(icq_Link *icqlink, DWORD type, WORD len, char *data, DWORD uin, BYTE hour, |
1152 | 32 BYTE minute, BYTE day, BYTE month, WORD year) |
33 { | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
34 icq_List *strList; |
1432
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
35 int fieldCount; |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
36 int i, k, nr; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
37 const char **contact_uin; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
38 const char **contact_nick; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
39 (void)len; |
1152 | 40 |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
41 strList = icq_ListNew(); |
1152 | 42 switch(type) |
43 { | |
44 case TYPE_ADDED: | |
45 /* Format: Nick, 0xFE, FName, 0xFE, LName, 0xFE, EMail */ | |
1432
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
46 fieldCount = icq_SplitFields(strList, data); |
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
47 if(fieldCount != 4 && fieldCount != 5) |
1152 | 48 { |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
49 icq_FmtLog(icqlink, ICQ_LOG_ERROR, "Bad TYPE_ADDED packet (expected 4/5 args, received %i)!\n", |
1432
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
50 fieldCount); |
1152 | 51 return; |
52 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
53 icq_RusConv("wk", icq_ListAt(strList, 0)); /* Nick */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
54 icq_RusConv("wk", icq_ListAt(strList, 1)); /* FName */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
55 icq_RusConv("wk", icq_ListAt(strList, 2)); /* LName */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
56 icq_RusConv("wk", icq_ListAt(strList, 3)); /* EMail */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
57 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "%lu has added you to their contact list, " |
1152 | 58 "Nick: %s, First Name: %s, Last Name: %s, EMail: %s\n", |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
59 uin, icq_ListAt(strList, 0), icq_ListAt(strList, 1), |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
60 icq_ListAt(strList, 2), icq_ListAt(strList, 3)); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
61 invoke_callback(icqlink,icq_RecvAdded)(icqlink, uin, hour, minute, day, month, year, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
62 icq_ListAt(strList, 0), icq_ListAt(strList, 1), |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
63 icq_ListAt(strList, 2), icq_ListAt(strList, 3)); |
1152 | 64 break; |
65 case TYPE_AUTH_REQ: | |
66 /* Format: Nick, 0xFE, FName, 0xFE, LName, 0xFE, EMail, 0xFE, 0, 0xFE, Reason */ | |
1432
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
67 fieldCount = icq_SplitFields(strList, data); |
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
68 if(fieldCount != 6) |
1152 | 69 { |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
70 icq_FmtLog(icqlink, ICQ_LOG_ERROR, "Bad TYPE_AUTH_REQ packet (expected 6 args, received %i)!\n", |
1432
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
71 fieldCount); |
1152 | 72 return; |
73 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
74 icq_RusConv("wk", icq_ListAt(strList, 0)); /* Nick */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
75 icq_RusConv("wk", icq_ListAt(strList, 1)); /* FName */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
76 icq_RusConv("wk", icq_ListAt(strList, 2)); /* LName */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
77 icq_RusConv("wk", icq_ListAt(strList, 3)); /* EMail */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
78 icq_RusConv("wk", icq_ListAt(strList, 5)); /* Reason */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
79 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "%lu has requested your authorization to be added to " |
1152 | 80 "their contact list, Nick: %s, First Name: %s, Last Name: %s, " |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
81 "EMail: %s, Reason: %s\n", uin, icq_ListAt(strList, 0), icq_ListAt(strList, 1), |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
82 icq_ListAt(strList, 2), icq_ListAt(strList, 3), icq_ListAt(strList, 4)); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
83 invoke_callback(icqlink,icq_RecvAuthReq)(icqlink, uin, hour, minute, day, month, year, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
84 icq_ListAt(strList, 0), icq_ListAt(strList, 1), |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
85 icq_ListAt(strList, 2), icq_ListAt(strList, 3), |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
86 icq_ListAt(strList, 5)); |
1152 | 87 break; |
88 case TYPE_URL: | |
89 /* Format: Description, 0xFE, URL */ | |
1432
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
90 fieldCount = icq_SplitFields(strList, data); |
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
91 if(fieldCount != 2) |
1152 | 92 { |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
93 icq_FmtLog(icqlink, ICQ_LOG_ERROR, "Bad TYPE_URL packet (expected 2 args, recived %i)!\n", |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
94 fieldCount); |
1152 | 95 return; |
96 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
97 icq_RusConv("wk", icq_ListAt(strList, 0)); /* Description */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
98 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "URL received from %lu, URL: %s, Description: %s\n", |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
99 uin, icq_ListAt(strList, 1), icq_ListAt(strList, 0)); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
100 invoke_callback(icqlink,icq_RecvURL)(icqlink, uin, hour, minute, day, month, year, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
101 icq_ListAt(strList, 1), icq_ListAt(strList, 0)); |
1152 | 102 break; |
103 case TYPE_WEBPAGER: | |
104 /* Format: Nick, 0xFE, Empty-FName, 0xFE, Empty-LName, 0xFE, EMail, 0xFE, | |
105 * Reason(3), 0xFE, Message with IP & Subject */ | |
1432
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
106 fieldCount = icq_SplitFields(strList, data); |
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
107 if(fieldCount != 6) |
1152 | 108 { |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
109 icq_FmtLog(icqlink, ICQ_LOG_ERROR, "Bad TYPE_WEBPAGER packet (expected 6 args, received %i)!\n", |
1432
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
110 fieldCount); |
1152 | 111 return; |
112 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
113 icq_RusConv("wk", icq_ListAt(strList, 0)); /* Nick */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
114 icq_RusConv("wk", icq_ListAt(strList, 5)); /* Message */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
115 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "WebPager message received, Nick: %s, EMail: %s, " |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
116 "Message:\n%s\n", icq_ListAt(strList, 0), icq_ListAt(strList, 3), |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
117 icq_ListAt(strList, 5)); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
118 invoke_callback(icqlink,icq_RecvWebPager)(icqlink, hour, minute, day, month, year, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
119 icq_ListAt(strList, 0), icq_ListAt(strList, 3), |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
120 icq_ListAt(strList, 5)); |
1152 | 121 break; |
122 case TYPE_EXPRESS: | |
123 /* Format: Nick, 0xFE, Empty-FName, 0xFE, Empty-LName, 0xFE, EMail, 0xFE, | |
124 * Reason(3), 0xFE, Message Subject */ | |
1432
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
125 fieldCount = icq_SplitFields(strList, data); |
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
126 if(fieldCount != 6) |
1152 | 127 { |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
128 icq_FmtLog(icqlink, ICQ_LOG_ERROR, "Bad TYPE_EXPRESS packet (expected 6 args, received %i)!\n", |
1432
4c510ca3563f
[gaim-migrate @ 1442]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1309
diff
changeset
|
129 fieldCount); |
1152 | 130 return; |
131 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
132 icq_RusConv("wk", icq_ListAt(strList, 0)); /* Nick */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
133 icq_RusConv("wk", icq_ListAt(strList, 5)); /* Message */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
134 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "MailExpress message received, Nick: %s, EMail: %s, " |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
135 "Message:\n%s\n", icq_ListAt(strList, 0), icq_ListAt(strList, 3), |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
136 icq_ListAt(strList, 5)); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
137 invoke_callback(icqlink, icq_RecvMailExpress)(icqlink, hour, minute, day, month, year, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
138 icq_ListAt(strList, 0), icq_ListAt(strList, 3), |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
139 icq_ListAt(strList, 5)); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
140 break; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
141 case TYPE_CONTACT: |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
142 /* Format: Number of contacts, 0xFE, UIN, 0xFE, Nick, 0xFE, ... */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
143 nr = icq_SplitFields(strList, data); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
144 contact_uin = (const char**)malloc((nr - 1) / 2); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
145 contact_nick = (const char**)malloc((nr - 1) / 2); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
146 |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
147 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Contact List received from %lu (%i):\n", uin, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
148 atoi(icq_ListAt(strList, 0))); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
149 |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
150 for(i = 1, k = 0; i < (nr - 1); k++) |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
151 { |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
152 contact_uin[k] = icq_ListAt(strList, i); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
153 contact_nick[k] = icq_ListAt(strList, i + 1); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
154 i += 2; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
155 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "\t%s - %s\n", contact_uin[k], contact_nick[k]); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
156 } |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
157 invoke_callback(icqlink, icq_RecvContactList)(icqlink, uin, hour, minute, day, month, year, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
158 k, contact_uin, contact_nick); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
159 free(contact_uin); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
160 free(contact_nick); |
1152 | 161 break; |
162 default: | |
163 icq_RusConv("wk", data); /* Entire message */ | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
164 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Instant message type %i from %lu:\n%s\n", type, uin, data); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
165 invoke_callback(icqlink, icq_RecvMessage)(icqlink, uin, hour, minute, day, month, year, data); |
1152 | 166 } |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
167 icq_ListDelete(strList, free); |
1152 | 168 } |
169 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
170 void icq_HandleInfoReply(icq_Link *icqlink, icq_Packet *p) |
1152 | 171 { |
172 char *ptr1, *ptr2, *ptr3, *ptr4; | |
173 DWORD uin; | |
174 icq_PacketGotoUDPInData(p, 0); | |
175 uin = icq_PacketRead32(p); | |
176 ptr1 = icq_PacketReadStringNew(p); | |
177 ptr2 = icq_PacketReadStringNew(p); | |
178 ptr3 = icq_PacketReadStringNew(p); | |
179 ptr4 = icq_PacketReadStringNew(p); | |
180 icq_RusConv("wk", ptr1); | |
181 icq_RusConv("wk", ptr2); | |
182 icq_RusConv("wk", ptr3); | |
183 icq_RusConv("wk", ptr4); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
184 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Info reply for %lu\n", uin); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
185 invoke_callback(icqlink,icq_InfoReply)(icqlink, uin, ptr1, ptr2, ptr3, ptr4, icq_PacketRead8(p)); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
186 icq_UDPAck(icqlink, icq_PacketReadUDPInSeq1(p)); |
1152 | 187 free(ptr1); |
188 free(ptr2); | |
189 free(ptr3); | |
190 free(ptr4); | |
191 } | |
192 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
193 void icq_HandleExtInfoReply(icq_Link *icqlink, icq_Packet *p) |
1152 | 194 { |
195 char *ptr1, *ptr2, *ptr3, *ptr4, *ptr5; | |
196 DWORD uin; | |
197 WORD cnt_code, age; | |
198 char cnt_stat, gender; | |
199 | |
200 icq_PacketGotoUDPInData(p, 0); | |
201 uin = icq_PacketRead32(p); | |
202 ptr1 = icq_PacketReadStringNew(p); | |
203 cnt_code = icq_PacketRead16(p); | |
204 cnt_stat = icq_PacketRead8(p); | |
205 ptr2 = icq_PacketReadStringNew(p); | |
206 age = icq_PacketRead16(p); | |
207 gender = icq_PacketRead8(p); | |
208 ptr3 = icq_PacketReadStringNew(p); | |
209 ptr4 = icq_PacketReadStringNew(p); | |
210 ptr5 = icq_PacketReadStringNew(p); | |
211 icq_RusConv("wk", ptr1); | |
212 icq_RusConv("wk", ptr2); | |
213 icq_RusConv("wk", ptr3); | |
214 icq_RusConv("wk", ptr4); | |
215 icq_RusConv("wk", ptr5); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
216 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Extended info reply for %lu\n", uin); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
217 invoke_callback(icqlink,icq_ExtInfoReply)(icqlink, uin, (char*)ptr1, cnt_code, cnt_stat, (char*)ptr2, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
218 age, gender, (char*)ptr3, (char*)ptr4, (char*)ptr5); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
219 icq_UDPAck(icqlink, icq_PacketReadUDPInSeq1(p)); |
1152 | 220 free(ptr1); |
221 free(ptr2); | |
222 free(ptr3); | |
223 free(ptr4); | |
224 free(ptr5); | |
225 } | |
226 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
227 void icq_HandleSearchReply(icq_Link *icqlink, icq_Packet *p) |
1152 | 228 { |
229 char *ptr1, *ptr2, *ptr3, *ptr4, auth; | |
230 DWORD uin; | |
231 icq_PacketGotoUDPInData(p, 0); | |
232 uin = icq_PacketRead32(p); | |
233 ptr1 = icq_PacketReadStringNew(p); | |
234 ptr2 = icq_PacketReadStringNew(p); | |
235 ptr3 = icq_PacketReadStringNew(p); | |
236 ptr4 = icq_PacketReadStringNew(p); | |
237 icq_RusConv("wk", ptr1); | |
238 icq_RusConv("wk", ptr2); | |
239 icq_RusConv("wk", ptr3); | |
240 icq_RusConv("wk", ptr4); | |
241 auth = icq_PacketRead8(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
242 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "User found %lu, Nick: %s, First Name: %s, Last Name: %s, " |
1152 | 243 "EMail: %s, Auth: %s\n", uin, ptr1, ptr2, ptr3, ptr4, auth==1?"no":"yes"); |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
244 invoke_callback(icqlink,icq_UserFound)(icqlink, uin, (char*)ptr1, (char*)ptr2, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
245 (char*)ptr3, (char*)ptr4, auth); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
246 icq_UDPAck(icqlink, icq_PacketReadUDPInSeq1(p)); |
1152 | 247 free(ptr1); |
248 free(ptr2); | |
249 free(ptr3); | |
250 free(ptr4); | |
251 } | |
252 | |
253 /************************************************ | |
254 This is called when a user goes offline | |
255 *************************************************/ | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
256 void icq_HandleUserOffline(icq_Link *icqlink, icq_Packet *p) |
1152 | 257 { |
258 DWORD remote_uin; | |
259 icq_ContactItem *ptr; | |
260 | |
261 icq_PacketGotoUDPInData(p, 0); | |
262 remote_uin = icq_PacketRead32(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
263 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "User %lu logged off\n", remote_uin); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
264 invoke_callback(icqlink,icq_UserOffline)(icqlink, remote_uin); |
1152 | 265 |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
266 ptr=icq_ContactFind(icqlink, remote_uin); |
1152 | 267 if(ptr) |
268 { | |
269 ptr->remote_ip = 0; | |
270 ptr->remote_port = 0; | |
271 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
272 icq_UDPAck(icqlink, icq_PacketReadUDPInSeq1(p)); |
1152 | 273 } |
274 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
275 void icq_HandleUserOnline(icq_Link *icqlink, icq_Packet *p) |
1152 | 276 { |
277 DWORD remote_uin, new_status, remote_ip, remote_real_ip; | |
278 DWORD remote_port; /* Why Mirabilis used 4 bytes for port? */ | |
279 BYTE tcp_flag; | |
280 icq_ContactItem *ptr; | |
281 | |
282 icq_PacketGotoUDPInData(p, 0); | |
283 remote_uin = icq_PacketRead32(p); | |
284 remote_ip = ntohl(icq_PacketRead32n(p)); /* icqtohl() */ | |
285 remote_port = icqtohl(icq_PacketRead32n(p)); | |
286 remote_real_ip = ntohl(icq_PacketRead32n(p)); /* icqtohl() */ | |
287 tcp_flag = icq_PacketRead8(p); | |
288 new_status = icq_PacketRead32(p); | |
289 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
290 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, |
1152 | 291 "User %lu (%s = 0x%X) logged on. tcp_flag=0x%X IP=%08X, real IP=%08X, port=%d\n", |
292 remote_uin, icq_ConvertStatus2Str(new_status), new_status, tcp_flag, remote_ip, | |
293 remote_real_ip, remote_port); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
294 invoke_callback(icqlink,icq_UserOnline)(icqlink, remote_uin, new_status, remote_ip, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
295 remote_port, remote_real_ip, tcp_flag); |
1152 | 296 |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
297 ptr=icq_ContactFind(icqlink, remote_uin); |
1152 | 298 if(ptr) |
299 { | |
300 ptr->remote_ip=remote_ip; | |
301 ptr->remote_real_ip=remote_real_ip; | |
302 ptr->remote_port = remote_port; | |
303 ptr->tcp_flag = tcp_flag; | |
304 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
305 icq_UDPAck(icqlink, icq_PacketReadUDPInSeq1(p)); |
1152 | 306 } |
307 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
308 void icq_HandleStatusChange(icq_Link *icqlink, icq_Packet *p) |
1152 | 309 { |
310 unsigned long remote_uin, new_status; | |
311 | |
312 icq_PacketGotoUDPInData(p, 0); | |
313 remote_uin = icq_PacketRead32(p); | |
314 new_status = icq_PacketRead32(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
315 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "%lu changed status to %s (0x%X)\n", remote_uin, |
1152 | 316 icq_ConvertStatus2Str(new_status), new_status); |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
317 invoke_callback(icqlink,icq_UserStatusUpdate)(icqlink, remote_uin, new_status); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
318 icq_UDPAck(icqlink, icq_PacketReadUDPInSeq1(p)); |
1152 | 319 } |
320 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
321 void icq_HandleMetaUserInfo(icq_Link *icqlink, icq_Packet *p) |
1152 | 322 { |
323 unsigned short subcmd, country, seq2, age, occupation, wcountry; | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
324 char res, auth, timezone, webaware, hideip, gender; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
325 char *nick, *first, *last, *email, *about, *city; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
326 char *pri_eml, *sec_eml, *old_eml; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
327 char *phone, *fax, *street, *cellular, *state; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
328 char *wcity, *wstate, *wphone, *wfax, *waddress; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
329 char *company, *department, *job, *whomepage; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
330 char *homepage; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
331 char byear, bmonth, bday, lang1, lang2, lang3, inum; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
332 int i; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
333 char anum, bnum, hnum; |
1152 | 334 unsigned long uin, zip, wzip; |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
335 char *empty = NULL; |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
336 char *interests[4] = {0, 0, 0, 0}; |
1152 | 337 unsigned short icategory[4] = {0, 0, 0, 0}; |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
338 char *affiliations[4] = {0, 0, 0, 0}; |
1152 | 339 unsigned short acategory[4] = {0, 0, 0, 0}; |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
340 char *backgrounds[4] = {0, 0, 0, 0}; |
1152 | 341 unsigned short bcategory[4] = {0, 0, 0, 0}; |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
342 char *hpcat[4] = {0, 0, 0, 0}; |
1152 | 343 unsigned short hcategory[4] = {0, 0, 0, 0}; |
344 | |
345 seq2 = icq_PacketReadUDPInSeq2(p); | |
346 icq_PacketGotoUDPInData(p, 0); | |
347 subcmd = icq_PacketRead16(p); | |
348 res = icq_PacketRead8(p); | |
349 if(res == META_SRV_FAILURE) | |
350 { | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
351 icq_FmtLog(icqlink, ICQ_LOG_WARNING, "META failure\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
352 invoke_callback(icqlink,icq_RequestNotify)(icqlink, seq2, ICQ_NOTIFY_FAILED, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
353 sizeof(subcmd), &subcmd); |
1152 | 354 } |
355 else | |
356 switch(subcmd) | |
357 { | |
358 case META_SRV_USER_FOUND: | |
359 uin = icq_PacketRead32(p); | |
360 nick = icq_PacketReadStringNew(p); | |
361 first = icq_PacketReadStringNew(p); | |
362 last = icq_PacketReadStringNew(p); | |
363 email = icq_PacketReadStringNew(p); | |
364 auth = icq_PacketRead8(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
365 icq_PacketRead16(p); /* ??? */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
366 icq_PacketRead32(p); /* ??? */ |
1152 | 367 icq_RusConv("wk", nick); |
368 icq_RusConv("wk", first); | |
369 icq_RusConv("wk", last); | |
370 icq_RusConv("wk", email); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
371 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "META User Found %lu, Nick: %s, First Name: %s, "\ |
1152 | 372 "Last Name: %s, EMail: %s, Auth: %s\n", seq2, uin, nick, first, last, |
373 email, auth==1?"no":"yes"); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
374 invoke_callback(icqlink,icq_MetaUserFound)(icqlink, seq2, uin, nick, first, last, email, auth); |
1152 | 375 free(nick); |
376 free(first); | |
377 free(last); | |
378 free(email); | |
379 break; | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
380 case META_SRV_USER_INFO: /* finished! */ |
1152 | 381 nick = icq_PacketReadStringNew(p); |
382 first = icq_PacketReadStringNew(p); | |
383 last = icq_PacketReadStringNew(p); | |
384 pri_eml = icq_PacketReadStringNew(p); | |
385 sec_eml = icq_PacketReadStringNew(p); | |
386 old_eml = icq_PacketReadStringNew(p); | |
387 city = icq_PacketReadStringNew(p); | |
388 state = icq_PacketReadStringNew(p); | |
389 phone = icq_PacketReadStringNew(p); | |
390 fax = icq_PacketReadStringNew(p); | |
391 street = icq_PacketReadStringNew(p); | |
392 cellular = icq_PacketReadStringNew(p); | |
393 zip = icq_PacketRead32(p); | |
394 country = icq_PacketRead16(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
395 timezone = icq_PacketRead8(p); /* +1 = -30min, -1 = +30min (-4 = GMT+0200) */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
396 auth = icq_PacketRead8(p); /* 1 - no auth required, 0 - required */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
397 webaware = icq_PacketRead8(p); /* 1 - yes, 0 - no */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
398 hideip = icq_PacketRead8(p); /* 1 - yes, 0 - no */ |
1152 | 399 icq_RusConv("wk", nick); |
400 icq_RusConv("wk", first); | |
401 icq_RusConv("wk", last); | |
402 icq_RusConv("wk", pri_eml); | |
403 icq_RusConv("wk", sec_eml); | |
404 icq_RusConv("wk", old_eml); | |
405 icq_RusConv("wk", city); | |
406 icq_RusConv("wk", state); | |
407 icq_RusConv("wk", phone); | |
408 icq_RusConv("wk", fax); | |
409 icq_RusConv("wk", street); | |
410 icq_RusConv("wk", cellular); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
411 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "META User Info: %s, %s, %s, "\ |
1152 | 412 "%s, %s, %s, %s, %s, %s, %s, %s, %s, %lu, %s, %i, %s, %s, %s\n", |
413 nick, first, last, pri_eml, sec_eml, old_eml, city, state, phone, | |
414 fax, street, cellular, zip, icq_GetCountryName(country), timezone, | |
415 auth?"false":"true", webaware?"true":"false", hideip?"true":"false"); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
416 invoke_callback(icqlink,icq_MetaUserInfo)(icqlink, seq2, nick, first, last, pri_eml, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
417 sec_eml, old_eml, city, state, phone, fax, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
418 street, cellular, zip, country, timezone, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
419 auth, webaware, hideip); |
1152 | 420 free(nick); |
421 free(first); | |
422 free(last); | |
423 free(pri_eml); | |
424 free(sec_eml); | |
425 free(old_eml); | |
426 free(city); | |
427 free(state); | |
428 free(phone); | |
429 free(fax); | |
430 free(street); | |
431 free(cellular); | |
432 break; | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
433 case META_SRV_USER_WORK: /* finished! */ |
1152 | 434 wcity = icq_PacketReadStringNew(p); |
435 wstate = icq_PacketReadStringNew(p); | |
436 wphone = icq_PacketReadStringNew(p); | |
437 wfax = icq_PacketReadStringNew(p); | |
438 waddress = icq_PacketReadStringNew(p); | |
439 wzip = icq_PacketRead32(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
440 wcountry = icq_PacketRead16(p); /* icq_GetCountryName() */ |
1152 | 441 company = icq_PacketReadStringNew(p); |
442 department = icq_PacketReadStringNew(p); | |
443 job = icq_PacketReadStringNew(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
444 occupation = icq_PacketRead16(p); /* icq_GetMetaOccupationName() */ |
1152 | 445 whomepage = icq_PacketReadStringNew(p); |
446 icq_RusConv("wk", wcity); | |
447 icq_RusConv("wk", wstate); | |
448 icq_RusConv("wk", wphone); | |
449 icq_RusConv("wk", wfax); | |
450 icq_RusConv("wk", waddress); | |
451 icq_RusConv("wk", company); | |
452 icq_RusConv("wk", department); | |
453 icq_RusConv("wk", job); | |
454 icq_RusConv("wk", whomepage); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
455 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "META User Work: %s, %s, %s, "\ |
1152 | 456 "%s, %s, %lu, %s, %s, %s, %s, %s, %s\n", wcity, wstate, |
457 wphone, wfax, waddress, wzip, icq_GetCountryName(wcountry), | |
458 company, department, job, icq_GetMetaOccupationName(occupation), | |
459 whomepage); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
460 invoke_callback(icqlink, icq_MetaUserWork)(icqlink, seq2, wcity, wstate, wphone, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
461 wfax, waddress, wzip, wcountry, company, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
462 department, job, occupation, whomepage); |
1152 | 463 free(wcity); |
464 free(wstate); | |
465 free(wphone); | |
466 free(wfax); | |
467 free(waddress); | |
468 free(company); | |
469 free(department); | |
470 free(job); | |
471 free(whomepage); | |
472 break; | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
473 case META_SRV_USER_MORE: /* finished! */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
474 age = icq_PacketRead16(p); /* 0xFFFF - not entered */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
475 gender = icq_PacketRead8(p); /* 1 - female, 2 - male */ |
1152 | 476 homepage = icq_PacketReadStringNew(p); |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
477 byear = icq_PacketRead8(p); /* starting from 1900 */ |
1152 | 478 bmonth = icq_PacketRead8(p); |
479 bday = icq_PacketRead8(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
480 lang1 = icq_PacketRead8(p); /* icq_GetMetaLanguageName() */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
481 lang2 = icq_PacketRead8(p); /* icq_GetMetaLanguageName() */ |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
482 lang3 = icq_PacketRead8(p); /* icq_GetMetaLanguageName() */ |
1152 | 483 icq_RusConv("wk", homepage); |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
484 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "META User More: %i, %s, %s, "\ |
1152 | 485 "%02i/%02i/%04i, %s, %s, %s\n", age, |
486 gender==1?"female":gender==2?"male":"not entered", | |
487 homepage, bday, bmonth, byear+1900, icq_GetMetaLanguageName(lang1), | |
488 icq_GetMetaLanguageName(lang2), icq_GetMetaLanguageName(lang3)); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
489 if(icqlink->icq_MetaUserMore) |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
490 (*icqlink->icq_MetaUserMore)(icqlink, seq2, age, gender, homepage, byear, |
1152 | 491 bmonth, bday, lang1, lang2, lang3); |
492 free(homepage); | |
493 break; | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
494 case META_SRV_USER_ABOUT: /* finished! */ |
1152 | 495 about = icq_PacketReadStringNew(p); |
496 icq_RusConv("wk", about); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
497 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "META User About: %s\n", about); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
498 invoke_callback(icqlink,icq_MetaUserAbout)(icqlink, seq2, about); |
1152 | 499 free(about); |
500 break; | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
501 case META_SRV_USER_INTERESTS: /* finished! */ |
1152 | 502 inum = icq_PacketRead8(p); |
503 for(i=0; i<inum && i<4; i++) | |
504 { | |
505 icategory[i] = icq_PacketRead16(p); | |
506 interests[i] = icq_PacketReadStringNew(p); | |
507 icq_RusConv("wk", interests[i]); | |
508 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
509 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "META User Interests: %i, %i - %s, "\ |
1152 | 510 "%i - %s, %i - %s, %i - %s\n", inum, icategory[0], |
511 interests[0]?interests[0]:empty, icategory[1], interests[1]?interests[1]:empty, | |
512 icategory[2], interests[2]?interests[2]:empty, icategory[3], | |
513 interests[3]?interests[3]:empty); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
514 invoke_callback(icqlink, icq_MetaUserInterests)(icqlink, seq2, inum, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
515 icategory[0], interests[0], icategory[1], |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
516 interests[1], icategory[2], interests[2], |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
517 icategory[3], interests[3]); |
1152 | 518 for(i=0; i<inum && i<4; i++) |
519 free(interests[i]); | |
520 break; | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
521 case META_SRV_USER_AFFILIATIONS: /* finished! */ |
1152 | 522 bnum = icq_PacketRead8(p); |
523 for(i=0; i<bnum && i<4; i++) | |
524 { | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
525 bcategory[i] = icq_PacketRead16(p); /* icq_GetMetaBackgroundName() */ |
1152 | 526 backgrounds[i] = icq_PacketReadStringNew(p); |
527 icq_RusConv("wk", backgrounds[i]); | |
528 } | |
529 anum = icq_PacketRead8(p); | |
530 for(i=0; i<anum && i<4; i++) | |
531 { | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
532 acategory[i] = icq_PacketRead16(p); /* icq_GetMetaAffiliationName() */ |
1152 | 533 affiliations[i] = icq_PacketReadStringNew(p); |
534 icq_RusConv("wk", affiliations[i]); | |
535 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
536 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "META User Affiliations: %i, %s - %s, "\ |
1152 | 537 "%s - %s, %s - %s, %s - %s; Backgrounds: %i, %s - %s, %s - %s, "\ |
538 "%s - %s, %s - %s\n", anum, | |
539 icq_GetMetaAffiliationName(acategory[0]), affiliations[0]?affiliations[0]:empty, | |
540 icq_GetMetaAffiliationName(acategory[1]), affiliations[1]?affiliations[1]:empty, | |
541 icq_GetMetaAffiliationName(acategory[2]), affiliations[2]?affiliations[2]:empty, | |
542 icq_GetMetaAffiliationName(acategory[3]), affiliations[3]?affiliations[3]:empty, | |
543 bnum, icq_GetMetaBackgroundName(bcategory[0]), backgrounds[0]?backgrounds[0]:empty, | |
544 icq_GetMetaBackgroundName(bcategory[1]), backgrounds[1]?backgrounds[1]:empty, | |
545 icq_GetMetaBackgroundName(bcategory[2]), backgrounds[2]?backgrounds[2]:empty, | |
546 icq_GetMetaBackgroundName(bcategory[3]), backgrounds[3]?backgrounds[3]:empty); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
547 invoke_callback(icqlink, icq_MetaUserAffiliations)(icqlink, seq2, anum, acategory[0], |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
548 affiliations[0], acategory[1], affiliations[1], |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
549 acategory[2], affiliations[2], acategory[3], |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
550 affiliations[3], bnum, bcategory[0], |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
551 backgrounds[0], bcategory[1], backgrounds[1], |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
552 bcategory[2], backgrounds[2], bcategory[3], |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
553 backgrounds[3]); |
1152 | 554 for(i=0; i<bnum && i<4; i++) |
555 free(backgrounds[i]); | |
556 for(i=0; i<anum && i<4; i++) | |
557 free(affiliations[i]); | |
558 break; | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
559 case META_SRV_USER_HPCATEGORY: /* finished! */ |
1152 | 560 hnum = icq_PacketRead8(p); |
561 for(i=0; i<hnum && i<1; i++) | |
562 { | |
563 hcategory[i] = icq_PacketRead16(p); | |
564 hpcat[i] = icq_PacketReadStringNew(p); | |
565 icq_RusConv("wk", hpcat[i]); | |
566 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
567 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "META User Homepage Category: %i, %i - %s\n", |
1152 | 568 hnum, hcategory[0], hpcat[0]); |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
569 invoke_callback(icqlink,icq_MetaUserHomePageCategory)(icqlink, seq2, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
570 hnum, hcategory[0], hpcat[0]?hpcat[0]:empty); |
1152 | 571 for(i=0; i<hnum && i<1; i++) |
572 free(hpcat[i]); | |
573 break; | |
574 case META_SRV_RES_INFO: | |
575 case META_SRV_RES_HOMEPAGE: | |
576 case META_SRV_RES_ABOUT: | |
577 case META_SRV_RES_SECURE: | |
578 case META_SRV_RES_PASS: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
579 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "META success\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
580 invoke_callback(icqlink,icq_RequestNotify)(icqlink, seq2, ICQ_NOTIFY_SUCCESS, |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
581 sizeof(subcmd), &subcmd); |
1152 | 582 break; |
583 default: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
584 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "META User - 0x%04X\n", subcmd); |
1152 | 585 icq_PacketUDPDump(p); |
586 break; | |
587 } | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
588 icq_UDPAck(icqlink, icq_PacketReadUDPInSeq1(p)); |
1152 | 589 } |
590 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
591 void icq_HandleMultiPacket(icq_Link *icqlink, icq_Packet *p) |
1152 | 592 { |
593 icq_Packet *tmp; | |
594 int num, i; | |
595 icq_PacketGotoUDPInData(p, 0); | |
596 num = icq_PacketRead8(p); | |
597 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
598 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "MultiPacket: %i packets\n", num); |
1152 | 599 |
600 for(i = 0; i < num; i++) | |
601 { | |
602 tmp = icq_PacketNew(); | |
603 tmp->length = icq_PacketRead16(p); | |
604 memcpy(tmp->data, &(p->data[p->cursor]), tmp->length); | |
605 icq_PacketAdvance(p, tmp->length); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
606 icq_ServerResponse(icqlink, tmp); |
1152 | 607 icq_PacketDelete(tmp); |
608 } | |
609 } | |
610 | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
611 void icq_ServerResponse(icq_Link *icqlink, icq_Packet *p) |
1152 | 612 { |
613 time_t cur_time; | |
614 struct tm *tm_str; | |
615 int len; | |
616 struct in_addr in_a; | |
617 DWORD uin; | |
618 WORD year, type, seq, cmd; | |
619 BYTE month, day, hour, minute; | |
620 | |
621 seq = icq_PacketReadUDPInSeq1(p); | |
622 cmd = icq_PacketReadUDPInCmd(p); | |
623 | |
624 if(icq_PacketReadUDPInVer(p) == 5) /* We understand only V5 packets! */ | |
625 { | |
626 switch(cmd) | |
627 { | |
628 case UDP_SRV_ACK: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
629 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "The server acknowledged the command\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
630 invoke_callback(icqlink,icq_RequestNotify)(icqlink, seq, ICQ_NOTIFY_ACK, 0, 0); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
631 invoke_callback(icqlink,icq_RequestNotify)(icqlink, seq, ICQ_NOTIFY_SUCCESS, 0, 0); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
632 icq_UDPQueueDelSeq(icqlink, seq); |
1152 | 633 break; |
634 case UDP_SRV_MULTI_PACKET: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
635 icq_HandleMultiPacket(icqlink, p); |
1152 | 636 break; |
637 case UDP_SRV_NEW_UIN: | |
638 uin = icq_PacketReadUDPInUIN(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
639 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "The new uin is %lu\n", uin); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
640 icq_UDPAck(icqlink, seq); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
641 invoke_callback(icqlink,icq_NewUIN)(icqlink, uin); |
1152 | 642 break; |
643 case UDP_SRV_LOGIN_REPLY: | |
644 icq_PacketGotoUDPInData(p, 0); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
645 icqlink->icq_OurIP = ntohl(icq_PacketRead32n(p)); |
1152 | 646 /* icq_OurIp = icq_PacketRead32(p); */ |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
647 in_a.s_addr = htonl(icqlink->icq_OurIP); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
648 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Login successful, UIN: %lu, IP: %s\n", |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
649 icqlink->icq_Uin, inet_ntoa(in_a)); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
650 icq_UDPAck(icqlink, seq); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
651 icq_SendLogin1(icqlink); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
652 icq_SendContactList(icqlink); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
653 icq_SendVisibleList(icqlink); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
654 invoke_callback(icqlink,icq_Logged)(icqlink); |
1152 | 655 break; |
656 case UDP_SRV_OFFLINE_MESSAGE: /* Offline message through the server */ | |
657 icq_PacketGotoUDPInData(p, 0); | |
658 uin = icq_PacketRead32(p); | |
659 year = icq_PacketRead16(p); | |
660 month = icq_PacketRead8(p); | |
661 day = icq_PacketRead8(p); | |
662 hour = icq_PacketRead8(p); | |
663 minute = icq_PacketRead8(p); | |
664 type = icq_PacketRead16(p); | |
665 len = icq_PacketRead16(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
666 icq_DoMsg(icqlink, type, len, (char*)&p->data[p->cursor], uin, hour, minute, day, month, year); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
667 icq_UDPAck(icqlink, seq); |
1152 | 668 break; |
669 case UDP_SRV_X1: /* unknown message sent after login*/ | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
670 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Acknowleged UDP_SRV_X1 (Begin messages)\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
671 icq_UDPAck(icqlink, seq); |
1152 | 672 break; |
673 case UDP_SRV_X2: /* unknown message sent after login*/ | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
674 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Acknowleged UDP_SRV_X2 (Done old messages)\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
675 icq_UDPAck(icqlink, seq); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
676 icq_SendGotMessages(icqlink); |
1152 | 677 break; |
678 case UDP_SRV_INFO_REPLY: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
679 icq_HandleInfoReply(icqlink, p); |
1152 | 680 break; |
681 case UDP_SRV_EXT_INFO_REPLY: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
682 icq_HandleExtInfoReply(icqlink, p); |
1152 | 683 break; |
684 case UDP_SRV_USER_ONLINE: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
685 icq_HandleUserOnline(icqlink, p); |
1152 | 686 break; |
687 case UDP_SRV_USER_OFFLINE: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
688 icq_HandleUserOffline(icqlink, p); |
1152 | 689 break; |
690 case UDP_SRV_TRY_AGAIN: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
691 icq_FmtLog(icqlink, ICQ_LOG_WARNING, "Server is busy, please try again\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
692 icq_Login(icqlink, icqlink->icq_Status); |
1152 | 693 break; |
694 case UDP_SRV_STATUS_UPDATE: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
695 icq_HandleStatusChange(icqlink, p); |
1152 | 696 break; |
697 case UDP_SRV_GO_AWAY: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
698 icq_FmtLog(icqlink, ICQ_LOG_ERROR, "Server has forced us to disconnect\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
699 if(icqlink->icq_Disconnected) |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
700 (*icqlink->icq_Disconnected)(icqlink); |
1152 | 701 break; |
702 case UDP_SRV_END_OF_SEARCH: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
703 icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Search done\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
704 invoke_callback(icqlink,icq_SearchDone)(icqlink); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
705 icq_UDPAck(icqlink, seq); |
1152 | 706 break; |
707 case UDP_SRV_USER_FOUND: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
708 icq_HandleSearchReply(icqlink, p); |
1152 | 709 break; |
710 case UDP_SRV_ONLINE_MESSAGE: /* Online message through the server */ | |
711 cur_time = time(0L); | |
712 tm_str = localtime(&cur_time); | |
713 icq_PacketGotoUDPInData(p, 0); | |
714 uin = icq_PacketRead32(p); | |
715 type = icq_PacketRead16(p); | |
716 len = icq_PacketRead16(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
717 icq_DoMsg(icqlink, type, len, (char*)&p->data[p->cursor], uin, tm_str->tm_hour, |
1152 | 718 tm_str->tm_min, tm_str->tm_mday, tm_str->tm_mon+1, tm_str->tm_year+1900); |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
719 icq_UDPAck(icqlink, seq); |
1152 | 720 break; |
721 case UDP_SRV_WRONG_PASSWORD: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
722 icq_FmtLog(icqlink, ICQ_LOG_ERROR, "Wrong password\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
723 icq_UDPAck(icqlink, seq); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
724 invoke_callback(icqlink,icq_WrongPassword)(icqlink); |
1152 | 725 break; |
726 case UDP_SRV_INVALID_UIN: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
727 icq_FmtLog(icqlink, ICQ_LOG_WARNING, "Invalid UIN\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
728 icq_UDPAck(icqlink, seq); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
729 invoke_callback(icqlink,icq_InvalidUIN)(icqlink); |
1152 | 730 break; |
731 case UDP_SRV_META_USER: | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
732 icq_HandleMetaUserInfo(icqlink, p); |
1152 | 733 break; |
734 default: /* commands we dont handle yet */ | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
735 icq_FmtLog(icqlink, ICQ_LOG_WARNING, "Unhandled message %04x, Version: %x, " |
1152 | 736 "Sequence: %04x, Size: %d\n", cmd, icq_PacketReadUDPInVer(p), |
737 seq, p->length); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
738 icq_UDPAck(icqlink, seq); /* fake like we know what we're doing */ |
1152 | 739 break; |
740 } | |
741 } | |
742 else | |
743 { | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
744 icq_FmtLog(icqlink, ICQ_LOG_WARNING, "Unhandled protocol version! Message %04x, Version: %x, " |
1152 | 745 "Sequence: %04x, Size: %d\n", cmd, icq_PacketReadUDPInVer(p), |
746 seq, p->length); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
747 /* icq_UDPAck(icqlink, seq); DO NOT ACK unhandled protocol version! */ |
1152 | 748 } |
749 } | |
750 | |
751 /****************************************** | |
752 Handles packets that the server sends to us. | |
753 *******************************************/ | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
754 void icq_HandleServerResponse(icq_Link *icqlink) |
1152 | 755 { |
756 WORD seq, cmd; | |
757 int s; | |
758 icq_Packet *p; | |
759 | |
760 p = icq_PacketNew(); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
761 s = icq_UDPSockRead(icqlink, p); |
1152 | 762 p->length = s; |
763 if(s<=0) | |
764 { | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
765 icq_FmtLog(icqlink, ICQ_LOG_FATAL, "Connection terminated\n"); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
766 icq_Disconnect(icqlink); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
767 invoke_callback(icqlink,icq_Disconnected)(icqlink); |
1152 | 768 } |
769 seq = icq_PacketReadUDPInSeq1(p); | |
770 cmd = icq_PacketReadUDPInCmd(p); | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
771 if(icq_GetServMess(icqlink, seq) && cmd != UDP_SRV_NEW_UIN && cmd != UDP_SRV_GO_AWAY && cmd != UDP_SRV_ACK) |
1152 | 772 { |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
773 icq_FmtLog(icqlink, ICQ_LOG_WARNING, "Ignored a message cmd %04x, seq %04x\n", cmd, seq); |
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
774 icq_UDPAck(icqlink, seq); /* LAGGGGG!! */ |
1152 | 775 icq_PacketDelete(p); |
776 return; | |
777 } | |
778 if(cmd != UDP_SRV_ACK) | |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
779 icq_SetServMess(icqlink, seq); |
1152 | 780 |
1912
8ed70631ed15
[gaim-migrate @ 1922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1861
diff
changeset
|
781 icq_ServerResponse(icqlink, p); |
1152 | 782 |
783 icq_PacketDelete(p); | |
784 } |