2 // This file is part of the aMule Project.
4 // Copyright (c) 2003-2008 aMule Team ( admin@amule.org / http://www.amule.org )
5 // Copyright (c) 2002 Merkur ( devs@emule-project.net / http://www.emule-project.net )
7 // Any parts of this program derived from the xMule, lMule or eMule project,
8 // or contributed by third-party developers are copyrighted by their
11 // This program is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU General Public License as published by
13 // the Free Software Foundation; either version 2 of the License, or
14 // (at your option) any later version.
16 // This program is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU General Public License for more details.
21 // You should have received a copy of the GNU General Public License
22 // along with this program; if not, write to the Free Software
23 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
30 enum ED2KStandardClientTCP
{
31 OP_HELLO
= 0x01, // 0x10<HASH 16><ID 4><PORT 2><1 Tag_set>
32 OP_SENDINGPART
= 0x46, // <HASH 16><von 4><bis 4><Daten len:(von-bis)>
33 OP_REQUESTPARTS
= 0x47, // <HASH 16><von[3] 4*3><bis[3] 4*3>
34 OP_FILEREQANSNOFIL
= 0x48, // <HASH 16>
35 OP_END_OF_DOWNLOAD
= 0x49, // <HASH 16> // Unused for sending
36 OP_ASKSHAREDFILES
= 0x4A, // (null)
37 OP_ASKSHAREDFILESANSWER
= 0x4B, // <count 4>(<HASH 16><ID 4><PORT 2><1 Tag_set>)[count]
38 OP_HELLOANSWER
= 0x4C, // <HASH 16><ID 4><PORT 2><1 Tag_set><SERVER_IP 4><SERVER_PORT 2>
39 OP_CHANGE_CLIENT_ID
= 0x4D, // <ID_old 4><ID_new 4> // Unused for sending
40 OP_MESSAGE
= 0x4E, // <len 2><Message len>
41 OP_SETREQFILEID
= 0x4F, // <HASH 16>
42 OP_FILESTATUS
= 0x50, // <HASH 16><count 2><status(bit array) len:((count+7)/8)>
43 OP_HASHSETREQUEST
= 0x51, // <HASH 16>
44 OP_HASHSETANSWER
= 0x52, // <count 2><HASH[count] 16*count>
45 OP_STARTUPLOADREQ
= 0x54, // <HASH 16>
46 OP_ACCEPTUPLOADREQ
= 0x55, // (null)
47 OP_CANCELTRANSFER
= 0x56, // (null)
48 OP_OUTOFPARTREQS
= 0x57, // (null)
49 OP_REQUESTFILENAME
= 0x58, // <HASH 16> (more correctly file_name_request)
50 OP_REQFILENAMEANSWER
= 0x59, // <HASH 16><len 4><NAME len>
51 OP_CHANGE_SLOT
= 0x5B, // <HASH 16> // Not used for sending
52 OP_QUEUERANK
= 0x5C, // <wert 4> (slot index of the request) // Not used for sending
53 OP_ASKSHAREDDIRS
= 0x5D, // (null)
54 OP_ASKSHAREDFILESDIR
= 0x5E, // <len 2><Directory len>
55 OP_ASKSHAREDDIRSANS
= 0x5F, // <count 4>(<len 2><Directory len>)[count]
56 OP_ASKSHAREDFILESDIRANS
= 0x60, // <len 2><Directory len><count 4>(<HASH 16><ID 4><PORT 2><1 T
57 OP_ASKSHAREDDENIEDANS
= 0x61 // (null)
60 // Extended prot client <-> Extended prot client
61 enum ED2KExtendedClientTCP
{
62 OP_EMULEINFO
= 0x01, //
63 OP_EMULEINFOANSWER
= 0x02, //
64 OP_COMPRESSEDPART
= 0x40, //
65 OP_QUEUERANKING
= 0x60, // <RANG 2>
66 OP_FILEDESC
= 0x61, // <len 2><NAME len>
67 OP_VERIFYUPSREQ
= 0x71, // (never used)
68 OP_VERIFYUPSANSWER
= 0x72, // (never used)
69 OP_UDPVERIFYUPREQ
= 0x73, // (never used)
70 OP_UDPVERIFYUPA
= 0x74, // (never used)
71 OP_REQUESTSOURCES
= 0x81, // <HASH 16>
72 OP_ANSWERSOURCES
= 0x82, //
73 OP_REQUESTSOURCES2
= 0x83, // <HASH 16>
74 OP_ANSWERSOURCES2
= 0x84, //
75 OP_PUBLICKEY
= 0x85, // <len 1><pubkey len>
76 OP_SIGNATURE
= 0x86, // v1: <len 1><signature len>
77 // v2:<len 1><signature len><sigIPused 1>
78 OP_SECIDENTSTATE
= 0x87, // <state 1><rndchallenge 4>
79 OP_REQUESTPREVIEW
= 0x90, // <HASH 16> // Never used for sending on aMule
80 OP_PREVIEWANSWER
= 0x91, // <HASH 16><frames 1>{frames * <len 4><frame len>} // Never used for sending on aMule
81 OP_MULTIPACKET
= 0x92,
82 OP_MULTIPACKETANSWER
= 0x93,
83 // OP_PEERCACHE_QUERY = 0x94, // Unused on aMule - no PeerCache
84 // OP_PEERCACHE_ANSWER = 0x95, // Unused on aMule - no PeerCache
85 // OP_PEERCACHE_ACK = 0x96, // Unused on aMule - no PeerCache
86 OP_PUBLICIP_REQ
= 0x97,
87 OP_PUBLICIP_ANSWER
= 0x98,
88 OP_CALLBACK
= 0x99, // <HASH 16><HASH 16><uint 16>
89 OP_REASKCALLBACKTCP
= 0x9A,
90 OP_AICHREQUEST
= 0x9B, // <HASH 16><uint16><HASH aichhashlen>
91 OP_AICHANSWER
= 0x9C, // <HASH 16><uint16><HASH aichhashlen> <data>
92 OP_AICHFILEHASHANS
= 0x9D,
93 OP_AICHFILEHASHREQ
= 0x9E,
96 OP_COMPRESSEDPART_I64
= 0xA1, // <HASH 16><von 8><size 4><Data len:size>
97 OP_SENDINGPART_I64
= 0xA2, // <HASH 16><start 8><end 8><Data len:(end-start)>
98 OP_REQUESTPARTS_I64
= 0xA3, // <HASH 16><start[3] 8*3><end[3] 8*3>
99 OP_MULTIPACKET_EXT
= 0xA4
102 #endif // ED2KC2CTCP_H