src/protocols/icq/stdpackets.h

changeset 2086
007508451e2c
equal deleted inserted replaced
2085:4659ae7bc69c 2086:007508451e2c
1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
3 /*
4 * $Id: stdpackets.h 2096 2001-07-31 01:00:39Z warmenhoven $
5 *
6 * Copyright (C) 1998-2001, Denis V. Dmitrienko <denis@null.net> and
7 * Bill Soudan <soudan@kde.org>
8 *
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.
13 *
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.
18 *
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.
22 *
23 */
24
25 #ifndef _ICQTCPPACKETS_H
26 #define _ICQTCPPACKETS_H
27
28 #ifdef HAVE_CONFIG_H
29 #include <config.h>
30 #endif
31
32 #define ICQ_UDP_VER 0x0005
33 #define ICQ_TCP_VER 0x0003
34
35 /* TCP Packet Commands */
36 #define ICQ_TCP_HELLO 0xFF
37 #define ICQ_TCP_CANCEL 0x07D0
38 #define ICQ_TCP_ACK 0x07DA
39 #define ICQ_TCP_MESSAGE 0x07EE
40
41 /* TCP Message Types */
42 #define ICQ_TCP_MSG_MSG 0x0001
43 #define ICQ_TCP_MSG_CHAT 0x0002
44 #define ICQ_TCP_MSG_FILE 0x0003
45 #define ICQ_TCP_MSG_URL 0x0004
46 #define ICQ_TCP_MSG_CONTACTLIST 0x0013
47 #define ICQ_TCP_MSG_READAWAY 0x03E8
48 #define ICQ_TCP_MSG_READOCCUPIED 0x03E9
49 #define ICQ_TCP_MSG_READNA 0x03EA
50 #define ICQ_TCP_MSG_READDND 0x03EB
51 #define ICQ_TCP_MSG_READFFC 0x03EC
52 #define ICQ_TCP_MASS_MASK 0x8000
53
54 /* TCP Message Command Types */
55 #define ICQ_TCP_MSG_ACK 0x0000
56 #define ICQ_TCP_MSG_AUTO 0x0000
57 #define ICQ_TCP_MSG_REAL 0x0010
58 #define ICQ_TCP_MSG_LIST 0x0020
59 #define ICQ_TCP_MSG_URGENT 0x0040
60 #define ICQ_TCP_MSG_INVISIBLE 0x0090
61 #define ICQ_TCP_MSG_UNK_1 0x00A0
62 #define ICQ_TCP_MSG_AWAY 0x0110
63 #define ICQ_TCP_MSG_OCCUPIED 0x0210
64 #define ICQ_TCP_MSG_UNK_2 0x0802
65 #define ICQ_TCP_MSG_NA 0x0810
66 #define ICQ_TCP_MSG_NA_2 0x0820
67 #define ICQ_TCP_MSG_DND 0x1010
68
69 /* TCP Message Statuses */
70 #define ICQ_TCP_STATUS_ONLINE 0x0000
71 #define ICQ_TCP_STATUS_REFUSE 0x0001
72 #define ICQ_TCP_STATUS_AWAY 0x0004
73 #define ICQ_TCP_STATUS_OCCUPIED 0x0009
74 #define ICQ_TCP_STATUS_DND 0x000A
75 #define ICQ_TCP_STATUS_NA 0x000E
76 #define ICQ_TCP_STATUS_FREE_CHAT ICQ_TCP_STATUS_ONLINE
77 #define ICQ_TCP_STATUS_INVISIBLE ICQ_TCP_STATUS_ONLINE
78
79 #include "tcplink.h"
80
81 icq_Packet *icq_TCPCreateInitPacket(icq_TCPLink *plink);
82 icq_Packet *icq_TCPCreateStdPacket(icq_TCPLink *plink, WORD icq_TCPCommand,
83 WORD type, const char *msg, WORD status, WORD msg_command);
84 icq_Packet *icq_TCPCreateMessagePacket(icq_TCPLink *plink, const char *message);
85 icq_Packet *icq_TCPCreateURLPacket(icq_TCPLink *plink, const char *message,
86 const char *url);
87 icq_Packet *icq_TCPCreateAwayReqPacket(icq_TCPLink *plink, WORD statusMode);
88 icq_Packet *icq_TCPCreateChatReqPacket(icq_TCPLink *plink, const char *message);
89 icq_Packet *icq_TCPCreateFileReqPacket(icq_TCPLink *plink,
90 const char *message, const char *filename, DWORD size);
91 void icq_TCPAppendSequence(icq_Link *icqlink, icq_Packet *p);
92 void icq_TCPAppendSequenceN(icq_Link *icqlink, icq_Packet *p, DWORD seq);
93
94 icq_Packet *icq_TCPCreateMessageAck(icq_TCPLink *plink, const char *message);
95 icq_Packet *icq_TCPCreateURLAck(icq_TCPLink *plink, const char *message);
96 icq_Packet *icq_TCPCreateContactListAck(icq_TCPLink *plink, const char *message);
97 icq_Packet *icq_TCPCreateWebPagerAck(icq_TCPLink *plink, const char *message);
98 icq_Packet *icq_TCPCreateChatReqAck(icq_TCPLink *plink, WORD port);
99 icq_Packet *icq_TCPCreateChatReqCancel(icq_TCPLink *plink, WORD port);
100 icq_Packet *icq_TCPCreateChatReqRefuse(icq_TCPLink *plink, WORD port,
101 const char *reason);
102 icq_Packet *icq_TCPCreateFileReqAck(icq_TCPLink *plink, WORD port);
103 icq_Packet *icq_TCPCreateFileReqCancel(icq_TCPLink *plink, WORD port);
104 icq_Packet *icq_TCPCreateFileReqRefuse(icq_TCPLink *plink, WORD port,
105 const char *reason);
106
107 icq_Packet *icq_TCPCreateChatInfoPacket(icq_TCPLink *plink, const char *name,
108 DWORD foreground, DWORD background);
109 icq_Packet *icq_TCPCreateChatInfo2Packet(icq_TCPLink *plink, const char *name,
110 DWORD foreground, DWORD background);
111 icq_Packet *icq_TCPCreateChatFontInfoPacket(icq_TCPLink *plink);
112
113 icq_Packet *icq_TCPCreateFile00Packet(DWORD num_files, DWORD total_bytes, DWORD speed, const char *name);
114 icq_Packet *icq_TCPCreateFile01Packet(DWORD speed, const char *name);
115 icq_Packet *icq_TCPCreateFile02Packet(const char *filename, DWORD filesize, DWORD speed);
116 icq_Packet *icq_TCPCreateFile03Packet(DWORD filesize, DWORD speed);
117 icq_Packet *icq_TCPCreateFile04Packet(DWORD filenum);
118 icq_Packet *icq_TCPCreateFile05Packet(DWORD speed);
119 icq_Packet *icq_TCPCreateFile06Packet(int length, void *data);
120
121 icq_Packet *icq_UDPCreateStdPacket(icq_Link *icqlink, WORD cmd);
122 icq_Packet *icq_UDPCreateStdSeqPacket(icq_Link *icqlink, WORD cmd, WORD seq);
123
124 #endif /* _ICQTCPPACKETS_H */
125
126 /* From `tcppackets.c': */
127

mercurial