1// 2// This file is part of the aMule Project. 3// 4// Copyright (c) 2003-2011 aMule Team ( admin@amule.org / http://www.amule.org ) 5// Copyright (c) 2002-2011 Merkur ( devs@emule-project.net / http://www.emule-project.net ) 6// 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 9// respective authors. 10// 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. 15// 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. 20// 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 24// 25 26#ifndef ED2KC2CTCP_H 27#define ED2KC2CTCP_H 28 29// Client <-> Client 30enum 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) 58}; 59 60// Extended prot client <-> Extended prot client 61enum 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, 94 OP_BUDDYPING = 0x9F, 95 OP_BUDDYPONG = 0xA0, 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, 100 OP_CHATCAPTCHAREQ = 0xA5, 101 OP_CHATCAPTCHARES = 0xA6, 102}; 103 104#endif // ED2KC2CTCP_H 105