Fix some aclocal warnings during autogen.sh
[obnox/wireshark/wip.git] / packet-edonkey.h
1 /* packet-edonkey.h
2  * Declarations for edonkey dissection
3  * Copyright 2003, Xuan Zhang <xz@aemail4u.com>
4  * eDonkey dissector based on protocol descriptions from mldonkey:
5  *  http://savannah.nongnu.org/download/mldonkey/docs/Edonkey-Overnet/edonkey-protocol.txt 
6  *  http://savannah.nongnu.org/download/mldonkey/docs/Edonkey-Overnet/overnet-protocol.txt
7  *
8  * $Id: packet-edonkey.h,v 1.1 2003/07/16 21:13:48 guy Exp $
9  *
10  * Ethereal - Network traffic analyzer
11  * By Gerald Combs <gerald@ethereal.com>
12  * Copyright 1998 Gerald Combs
13  *
14  * This program is free software; you can redistribute it and/or
15  * modify it under the terms of the GNU General Public License
16  * as published by the Free Software Foundation; either version 2
17  * of the License, or (at your option) any later version.
18  *
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with this program; if not, write to the Free Software
26  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
27  */
28
29 void proto_register_edonkey(void);
30
31 #define EDONKEY_MAX_SNAP_SIZE   1500
32 #define EDONKEY_TCP_HEADER_LENGTH  5
33 #define EDONKEY_UDP_HEADER_LENGTH  2
34
35 /* Definitions for EDONKEY protocols */
36 #define EDONKEY_PROTO_EDONKEY        0xe3  /* eDonkey */
37 #define EDONKEY_PROTO_EMULE_EXT      0xc5  /* eMule extensions */
38 #define EDONKEY_PROTO_EMULE_COMP     0xd4  /* eMule compressed (data is zlib compressed) */
39
40 /* Definitions for EDONKEY messages */
41 /* EDONKEY TCP MESSAGES */
42 /* Client <-> Server */
43 #define EDONKEY_MSG_HELLO                0x01
44 #define EDONKEY_MSG_BAD_PROTO            0x05  
45 #define EDONKEY_MSG_GET_SERVER_LIST      0x14
46 #define EDONKEY_MSG_OFFER_FILES          0x15
47 #define EDONKEY_MSG_SEARCH_FILES         0x16
48 #define EDONKEY_MSG_DISCONNECT           0x18
49 #define EDONKEY_MSG_GET_SOURCES          0x19
50 #define EDONKEY_MSG_SEARCH_USER          0x1a
51 /* define EDONKEY_MSG_UNKNOWN            0x1b */
52 #define EDONKEY_MSG_CLIENT_CB_REQ        0x1c
53 /* define EDONKEY_MSG_UNKNOWN            0x20 */
54 #define EDONKEY_MSG_MORE_RESULTS         0x21
55 #define EDONKEY_MSG_SERVER_LIST          0x32
56 #define EDONKEY_MSG_SEARCH_FILE_RESULTS  0x33
57 #define EDONKEY_MSG_SERVER_STATUS        0x34
58 #define EDONKEY_MSG_SERVER_CB_REQ        0x35
59 #define EDONKEY_MSG_CALLBACK_FAIL        0x36
60 #define EDONKEY_MSG_SERVER_MESSAGE       0x38
61 #define EDONKEY_MSG_ID_CHANGE            0x40
62 #define EDONKEY_MSG_SERVER_INFO_DATA     0x41
63 #define EDONKEY_MSG_FOUND_SOURCES        0x42
64 #define EDONKEY_MSG_SEARCH_USER_RESULTS  0x43
65
66 /* Client <-> Client */
67 #define EDONKEY_MSG_HELLO_CLIENT         0x10 /* 0x01 0x10 */
68 #define EDONKEY_MSG_SENDING_PART         0x46 
69 #define EDONKEY_MSG_REQUEST_PARTS        0x47
70 #define EDONKEY_MSG_NO_SUCH_FILE         0x48
71 #define EDONKEY_MSG_END_OF_DOWNLOAD      0x49
72 #define EDONKEY_MSG_VIEW_FILES           0x4a
73 #define EDONKEY_MSG_VIEW_FILES_ANSWER    0x4b
74 #define EDONKEY_MSG_HELLO_ANSWER         0x4c
75 #define EDONKEY_MSG_NEW_CLIENT_ID        0x4d
76 #define EDONKEY_MSG_CLIENT_MESSAGE       0x4e
77 #define EDONKEY_MSG_FILE_STATUS_REQUEST  0x4f
78 #define EDONKEY_MSG_FILE_STATUS          0x50
79 #define EDONKEY_MSG_HASHSET_REQUEST      0x51
80 #define EDONKEY_MSG_HASHSET_ANSWER       0x52
81 /*#define EDONKEY_MSG_UNKNOWN              0x53 */
82 #define EDONKEY_MSG_SLOT_REQUEST         0x54
83 #define EDONKEY_MSG_SLOT_GIVEN           0x55
84 #define EDONKEY_MSG_SLOT_RELEASE         0x56
85 #define EDONKEY_MSG_SLOT_TAKEN           0x57
86 #define EDONKEY_MSG_FILE_REQUEST         0x58 
87 #define EDONKEY_MSG_FILE_REQUEST_ANSWER  0x59
88 /*#define EDONKEY_MSG_UNKNOWN              0x5b*/
89 #define EDONKEY_MSG_GET_SHARED_DIRS      0x5d
90 #define EDONKEY_MSG_GET_SHARED_FILES     0x5e
91 #define EDONKEY_MSG_SHARED_DIRS          0x5f
92 #define EDONKEY_MSG_SHARED_FILES         0x60
93 #define EDONKEY_MSG_SHARED_DENIED        0x61
94
95 /* OVERNET EXTENSIONS */
96 /*#define OVERNET_MSG_UNKNOWN              0x62*/
97 /*#define OVERNET_MSG_UNKNOWN              0x63*/
98
99 /* EMULE EXTENSIONS */
100 #define EMULE_MSG_HELLO                  0x01
101 #define EMULE_MSG_HELLO_ANSWER           0x02
102 #define EMULE_MSG_DATA_COMPRESSED        0x40
103 #define EMULE_MSG_QUEUE_RANKING          0x60
104 #define EMULE_MSG_SOURCES_REQUEST        0x81
105 #define EMULE_MSG_SOURCES_ANSWER         0x82
106
107 /* EDONKEY UDP MESSAGES */
108 #define EDONKEY_MSG_UDP_SERVER_STATUS_REQUEST      0x96
109 #define EDONKEY_MSG_UDP_SERVER_STATUS              0x97
110 #define EDONKEY_MSG_UDP_SEARCH_FILE                0x98
111 #define EDONKEY_MSG_UDP_SEARCH_FILE_RESULTS        0x99
112 #define EDONKEY_MSG_UDP_GET_SOURCES                0x9a
113 #define EDONKEY_MSG_UDP_FOUND_SOURCES              0x9b
114 #define EDONKEY_MSG_UDP_CALLBACK_REQUEST           0x9c
115 #define EDONKEY_MSG_UDP_CALLBACK_FAIL              0x9e
116 /* #define EDONKEY_MSG_UDP_UNKNOWN                    0xa0 */
117 #define EDONKEY_MSG_UDP_SERVER_LIST                0xa1
118 #define EDONKEY_MSG_UDP_GET_SERVER_INFO            0xa2
119 #define EDONKEY_MSG_UDP_SERVER_INFO                0xa3
120 #define EDONKEY_MSG_UDP_GET_SERVER_LIST            0xa4
121
122 /* EMULE UDP EXTENSIONS */
123 #define EMULE_MSG_UDP_REASKFILEPING      0x90
124 #define EMULE_MSG_UDP_REASKACK           0x91
125 #define EMULE_MSG_UDP_FILE_NOT_FOUND     0x92
126 #define EMULE_MSG_UDP_QUEUE_FULL         0x93
127
128 /* OVERNET UDP EXTENSIONS */
129 #define OVERNET_MSG_UDP_CONNECT                     0x0a
130 #define OVERNET_MSG_UDP_CONNECT_REPLY               0x0b
131 #define OVERNET_MSG_UDP_PUBLICIZE                   0x0c
132 #define OVERNET_MSG_UDP_PUBLICIZE_ACK               0x0d
133 #define OVERNET_MSG_UDP_SEARCH                      0x0e
134 #define OVERNET_MSG_UDP_SEARCH_NEXT                 0x0f
135 #define OVERNET_MSG_UDP_SEARCH_INFO                 0x10
136 #define OVERNET_MSG_UDP_SEARCH_RESULT               0x11
137 #define OVERNET_MSG_UDP_SEARCH_END                  0x12
138 #define OVERNET_MSG_UDP_PUBLISH                     0x13
139 #define OVERNET_MSG_UDP_PUBLISH_ACK                 0x14
140 #define OVERNET_MSG_UDP_IDENTIFY_REPLY              0x15
141 #define OVERNET_MSG_UDP_IDENTIFY_ACK                0x16
142 #define OVERNET_MSG_UDP_FIREWALL_CONNECTION         0x18
143 #define OVERNET_MSG_UDP_FIREWALL_CONNECTION_ACK     0x19
144 #define OVERNET_MSG_UDP_FIREWALL_CONNECTION_NACK    0x1a
145 #define OVERNET_MSG_UDP_IP_QUERY                    0x1b 
146 #define OVERNET_MSG_UDP_IP_QUERY_ANSWER             0x1c 
147 #define OVERNET_MSG_UDP_IP_QUERY_END                0x1d 
148 #define OVERNET_MSG_UDP_IDENTIFY                    0x1e 
149 /*#define OVERNET_MSG_UDP_UNKNOWN                    0x21  */
150
151 /* EDONKEY META TAG TYPES */
152 #define EDONKEY_MTAG_UNKNOWN             0x00
153 #define EDONKEY_MTAG_HASH                0x01
154 #define EDONKEY_MTAG_STRING              0x02
155 #define EDONKEY_MTAG_DWORD               0x03
156 #define EDONKEY_MTAG_FLOAT               0x04
157 #define EDONKEY_MTAG_BOOL                0x05
158 #define EDONKEY_MTAG_BOOL_ARRAY          0x06
159 #define EDONKEY_MTAG_BLOB                0x07
160
161 /* EDONKEY SPECIAL TAGS */
162 #define EDONKEY_STAG_UNKNOWN             0x00
163 #define EDONKEY_STAG_NAME                0x01
164 #define EDONKEY_STAG_SIZE                0x02
165 #define EDONKEY_STAG_TYPE                0x03
166 #define EDONKEY_STAG_FORMAT              0x04
167 #define EDONKEY_STAG_COLLECTION          0x05
168 #define EDONKEY_STAG_PART_PATH           0x06
169 #define EDONKEY_STAG_PART_HASH           0x07
170 #define EDONKEY_STAG_COPIED              0x08
171 #define EDONKEY_STAG_GAP_START           0x09
172 #define EDONKEY_STAG_GAP_END             0x0a
173 #define EDONKEY_STAG_DESCRIPTION         0x0b
174 #define EDONKEY_STAG_PING                0x0c
175 #define EDONKEY_STAG_FAIL                0x0d
176 #define EDONKEY_STAG_PREFERENCE          0x0e
177 #define EDONKEY_STAG_PORT                0x0f
178 #define EDONKEY_STAG_IP                  0x10
179 #define EDONKEY_STAG_VERSION             0x11
180 #define EDONKEY_STAG_TEMPFILE            0x12
181 #define EDONKEY_STAG_PRIORITY            0x13
182 #define EDONKEY_STAG_STATUS              0x14
183 #define EDONKEY_STAG_AVAILABILITY        0x15
184 #define EDONKEY_STAG_QTIME               0x16
185 #define EDONKEY_STAG_PARTS               0x17
186
187 /* EMULE SPECIAL TAGS */
188 #define EMULE_STAG_COMPRESSION         0x20
189 #define EMULE_STAG_UDP_CLIENT_PORT     0x21
190 #define EMULE_STAG_UDP_VERSION         0x22
191 #define EMULE_STAG_SOURCE_EXCHANGE     0x23
192 #define EMULE_STAG_COMMENTS            0x24
193 #define EMULE_STAG_EXTENDED_REQUEST    0x25
194 #define EMULE_STAG_COMPATIBLE_CLIENT   0x26
195
196 /* EDONKEY SEARCH TYPES */
197 #define EDONKEY_SEARCH_BOOL              0x00
198 #define EDONKEY_SEARCH_NAME              0x01
199 #define EDONKEY_SEARCH_META              0x02
200 #define EDONKEY_SEARCH_LIMIT             0x03
201
202 /* EDONKEY SEARCH OPERATORS */
203 #define EDONKEY_SEARCH_AND               0x00
204 #define EDONKEY_SEARCH_OR                0x01
205 #define EDONKEY_SEARCH_ANDNOT            0x02
206
207 /* EDONKEY SEARCH MIN/MAX   */
208 #define EDONKEY_SEARCH_MIN               0x01
209 #define EDONKEY_SEARCH_MAX               0x02