1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
4 * $Id: udp.h 2096 2001-07-31 01:00:39Z warmenhoven $
6 * Copyright (C) 1998-2001, Denis V. Dmitrienko <denis@null.net> and
7 * Bill Soudan <soudan@kde.org>
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
34 #include "icqpacket.h"
36 #define UDP_CMD_ACK 0x000A
37 #define UDP_CMD_SEND_THRU_SRV 0x010E
38 #define UDP_CMD_LOGIN 0x03E8
39 #define UDP_CMD_CONT_LIST 0x0406
40 #define UDP_CMD_SEARCH_UIN 0x041A
41 #define UDP_CMD_SEARCH_USER 0x0424
42 #define UDP_CMD_KEEP_ALIVE 0x042E
43 #define UDP_CMD_KEEP_ALIVE2 0x051E
44 #define UDP_CMD_SEND_TEXT_CODE 0x0438
45 #define UDP_CMD_LOGIN_1 0x044C
46 #define UDP_CMD_INFO_REQ 0x0460
47 #define UDP_CMD_EXT_INFO_REQ 0x046A
48 #define UDP_CMD_CHANGE_PW 0x049C
49 #define UDP_CMD_STATUS_CHANGE 0x04D8
50 #define UDP_CMD_LOGIN_2 0x0528
51 #define UDP_CMD_UPDATE_INFO 0x050A
52 #define UDP_CMD_UPDATE_AUTH 0x0514
53 #define UDP_CMD_UPDATE_EXT_INFO 0x04B0
54 #define UDP_CMD_ADD_TO_LIST 0x053C
55 #define UDP_CMD_REQ_ADD_LIST 0x0456
56 #define UDP_CMD_QUERY_SERVERS 0x04BA
57 #define UDP_CMD_QUERY_ADDONS 0x04C4
58 #define UDP_CMD_NEW_USER_1 0x04EC
59 #define UDP_CMD_NEW_USER_INFO 0x04A6
60 #define UDP_CMD_ACK_MESSAGES 0x0442
61 #define UDP_CMD_MSG_TO_NEW_USER 0x0456
62 #define UDP_CMD_REG_NEW_USER 0x03FC
63 #define UDP_CMD_VIS_LIST 0x06AE
64 #define UDP_CMD_INVIS_LIST 0x06A4
65 #define UDP_CMD_META_USER 0x064A
66 #define UDP_CMD_RAND_SEARCH 0x056E
67 #define UDP_CMD_RAND_SET 0x0564
68 #define UDP_CMD_REVERSE_TCP_CONN 0x015E
70 #define UDP_SRV_ACK 0x000A
71 #define UDP_SRV_LOGIN_REPLY 0x005A
72 #define UDP_SRV_USER_ONLINE 0x006E
73 #define UDP_SRV_USER_OFFLINE 0x0078
74 #define UDP_SRV_USER_FOUND 0x008C
75 #define UDP_SRV_OFFLINE_MESSAGE 0x00DC
76 #define UDP_SRV_END_OF_SEARCH 0x00A0
77 #define UDP_SRV_INFO_REPLY 0x0118
78 #define UDP_SRV_EXT_INFO_REPLY 0x0122
79 #define UDP_SRV_STATUS_UPDATE 0x01A4
80 #define UDP_SRV_X1 0x021C
81 #define UDP_SRV_X2 0x00E6
82 #define UDP_SRV_UPDATE_OK 0x01E0
83 #define UDP_SRV_UPDATE_FAIL 0x01EA
84 #define UDP_SRV_UPDATE_EXT 0x00C8
85 #define UDP_SRV_NEW_UIN 0x0046
86 #define UDP_SRV_NEW_USER 0x00B4
87 #define UDP_SRV_QUERY 0x0082
88 #define UDP_SRV_SYSTEM_MESSAGE 0x01C2
89 #define UDP_SRV_ONLINE_MESSAGE 0x0104
90 #define UDP_SRV_GO_AWAY 0x00F0
91 #define UDP_SRV_TRY_AGAIN 0x00FA
92 #define UDP_SRV_FORCE_DISCONNECT 0x0028
93 #define UDP_SRV_MULTI_PACKET 0x0212
94 #define UDP_SRV_WRONG_PASSWORD 0x0064
95 #define UDP_SRV_INVALID_UIN 0x012C
96 #define UDP_SRV_META_USER 0x03DE
97 #define UDP_SRV_RAND_USER 0x024E
98 #define UDP_SRV_AUTH_UPDATE 0x01F4
100 #define META_CMD_SET_INFO 1000
101 #define META_CMD_SET_HOMEPAGE 1020
102 #define META_CMD_SET_ABOUT 1030
103 #define META_CMD_SET_SECURE 1060
104 #define META_CMD_SET_PASS 1070
105 #define META_CMD_REQ_INFO 1200
106 #define META_SRV_RES_INFO 100
107 #define META_SRV_RES_HOMEPAGE 120
108 #define META_SRV_RES_ABOUT 130
109 #define META_SRV_RES_SECURE 160
110 #define META_SRV_RES_PASS 170
111 #define META_SRV_USER_INFO 200
112 #define META_SRV_USER_WORK 210
113 #define META_SRV_USER_MORE 220
114 #define META_SRV_USER_ABOUT 230
115 #define META_SRV_USER_INTERESTS 240
116 #define META_SRV_USER_AFFILIATIONS 250
117 #define META_SRV_USER_HPCATEGORY 270
118 #define META_SRV_USER_FOUND 410
120 #define META_SRV_SUCCESS 10
121 #define META_SRV_FAILURE 50
123 #define TYPE_MSG 0x0001
124 #define TYPE_CHAT 0x0002
125 #define TYPE_FILE 0x0003
126 #define TYPE_URL 0x0004
127 #define TYPE_AUTH_REQ 0x0006
128 #define TYPE_AUTH 0x0008
129 #define TYPE_ADDED 0x000C
130 #define TYPE_WEBPAGER 0x000D
131 #define TYPE_EXPRESS 0x000E
132 #define TYPE_CONTACT 0x0013
133 #define TYPE_MASS_MASK 0x8000
135 #define LOGIN_X1_DEF 0x00000098
136 /*#define LOGIN_X1_DEF 0x000000D5*/
137 #define LOGIN_X3_DEF 0x00000003
138 /*#define LOGIN_X3_DEF 0x00000006*/
139 #define LOGIN_X4_DEF 0x00000000
140 #define LOGIN_X5_DEF 0x00980010
141 /*#define LOGIN_X5_DEF 0x00D50008*/
142 #define LOGIN_X6_DEF 0x00000050
143 #define LOGIN_X7_DEF 0x00000003
144 #define LOGIN_X8_DEF 0x00000000
146 #define LOGIN_SNDONLY_TCP 0x02
147 #define LOGIN_SNDRCV_TCP 0x04
148 #define LOGIN_NO_TCP 0x06
150 void icq_SendGotMessages(icq_Link
*icqlink
);
151 void icq_SendLogin1(icq_Link
*icqlink
);
152 void icq_StatusUpdate(icq_Link
*icqlink
, icq_Packet
*);
153 void icq_AckSrv(icq_Link
*icqlink
, int seq
);
154 void icq_HandleUserOffline(icq_Link
*icqlink
, icq_Packet
*);
155 void icq_HandleUserOnline(icq_Link
*icqlink
, icq_Packet
*);
156 void icq_DoMsg(icq_Link
*icqlink
, DWORD type
, WORD len
, char *data
, DWORD uin
,
157 BYTE hour
, BYTE minute
, BYTE day
, BYTE month
, WORD year
);
158 int icq_UDPSockWriteDirect(icq_Link
*icqlink
, icq_Packet
*);
159 int icq_UDPSockWrite(icq_Link
*icqlink
, icq_Packet
*);
160 int icq_UDPSockRead(icq_Link
*icqlink
, icq_Packet
*);
161 void icq_ServerResponse(icq_Link
*icqlink
, icq_Packet
*);
162 void icq_HandleMultiPacket(icq_Link
*icqlink
, icq_Packet
*);
164 void icq_UDPAck(icq_Link
*icqlink
, int seq
);
165 WORD
icq_UDPSendMessage(icq_Link
*icqlink
, DWORD uin
, const char *text
);
166 WORD
icq_UDPSendURL(icq_Link
*icqlink
, DWORD uin
, const char *url
, const char *descr
);