From: <bo...@us...> - 2004-01-12 21:32:45
|
Update of /cvsroot/sharedaemon/core/src In directory sc8-pr-cvs1:/tmp/cvs-serv29094 Modified Files: Ed2kPacket.cpp parse-ed2k.c parse-ed2k.h Log Message: Removed double #defines Index: Ed2kPacket.cpp =================================================================== RCS file: /cvsroot/sharedaemon/core/src/Ed2kPacket.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Ed2kPacket.cpp 20 Nov 2003 16:27:25 -0000 1.3 +++ Ed2kPacket.cpp 12 Jan 2004 21:32:42 -0000 1.4 @@ -20,6 +20,9 @@ #include "Ed2kPacket.h" +#include "parse-ed2k.h" + +/* #define LOGINREQUEST 0x01 // mlDonkey adds DWORD with content: 'MLDK' #define REJECT 0x05 #define GETSERVERLIST 0x14 @@ -102,6 +105,7 @@ #define VERIFYUPSANSWER 0x72 // (never used) #define UDPVERIFYUPREQ 0x73 // (never used) #define UDPVERIFYUPA 0x74 // (never used) +*/ static u8 buf[1024]; static int ofs; Index: parse-ed2k.c =================================================================== RCS file: /cvsroot/sharedaemon/core/src/parse-ed2k.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- parse-ed2k.c 9 Dec 2003 00:16:29 -0000 1.15 +++ parse-ed2k.c 12 Jan 2004 21:32:42 -0000 1.16 @@ -95,15 +95,10 @@ // | | | | | +---- Client <-> Server // | | | | | | +-- Client <-> Client // Client <-> Server -#define LOGINREQUEST 0x01 // mlDonkey adds a DWORD with content: 'MLDK' // <DWORD>tagcount<TAG>tag[tagcount] // <BYTE>magic=0x10 { 1,0,0,0,0,1,0,PROT_NAME(LOGINREQUEST) ,"cse301",NULL,"<HASH>user_hash<IPPORT>client_address=0,0<DWORD>tagcount<TAG>tag[tagcount]<IPPORT>server_address<DWORD>*software_id=1262767181" }, -#define REJECT 0x05 { 1,0,0,0,0,0,0,PROT_NAME(REJECT) ,"cse305",NULL,"" }, -#define GETSERVERLIST 0x14 { 1,0,0,0,0,0,0,PROT_NAME(GETSERVERLIST) ,"cse314",NULL,"" }, -#define OFFERFILES 0x15 { 1,0,0,0,0,0,0,PROT_NAME(OFFERFILES) ,"cse315",NULL,"<DWORD>filecount{<HASH>hash<IPPORT>source<DWORD>tagcount<TAG>tag[tagcount]}file[filecount]" }, -#define SEARCHREQUEST 0x16 // { 1,0,0,0,0,0,0,PROT_NAME(SEARCHREQUEST) ,"cse316",NULL,"<Query_Tree>query" }, /* @@ -130,188 +125,111 @@ */ -#define DISCONNECT 0x18 // (not verified) { 1,0,0,0,0,0,0,PROT_NAME(DISCONNECT) ,"cse318",NULL,"" }, -#define GETSOURCES 0x19 { 1,0,0,0,0,0,0,PROT_NAME(GETSOURCES) ,"cse319",NULL,"<HASH>file_hash" }, -#define SEARCH_USER 0x1A // { 1,0,0,0,0,0,0,PROT_NAME(SEARCH_USER) ,"cse31a",NULL,"<Query_Tree>query" }, // Maybe there is a 0x1b too // CONFORMING TO "eDonkey-protocol-0.6.1" -#define CALLBACKREQUEST 0x1C // <ID 4> { 1,0,0,0,0,0,0,PROT_NAME(CALLBACKREQUEST) ,"cse31c",NULL,"<DWORD>LowID_client_ip" }, // Maybe there is a 0x20 too // CONFORMING TO "eDonkey-protocol-0.6.1" : Exception in Connection::doTask 25 for 16.39 -#define QUERY_MORE_RESULT 0x21 { 1,0,0,0,0,0,0,PROT_NAME(QUERY_MORE_RESULT) ,"cse321",NULL,"" }, -#define SERVERLIST 0x32 // Server -> Client { 1,0,0,0,0,0,0,PROT_NAME(SERVERLIST) ,"cse332",NULL,"<BYTE>server_count<IPPORT>server[server_count]" }, -#define SEARCHRESULT 0x33 { 1,0,0,0,0,0,0,PROT_NAME(SEARCHRESULT) ,"cse333",NULL,"<DWORD>num_results{<HASH>hash<IPPORT>ipport<DWORD>tag_count<TAG>tag[tag_count]}user[num_results]<DWORD>unknown1<DWORD>unknown2" }, -#define SERVERSTATUS 0x34 { 1,0,0,0,0,0,0,PROT_NAME(SERVERSTATUS) ,"cse334",NULL,"<DWORD>user_count<DWORD>file_count" }, -#define CALLBACKREQUESTED 0x35 { 1,0,0,0,0,0,0,PROT_NAME(CALLBACKREQUESTED) ,"cse335",NULL,"<IPPORT>HighID_client_ip" }, -#define CALLBACK_FAIL 0x36 { 1,0,0,0,0,0,0,PROT_NAME(CALLBACK_FAIL) ,"cse336",NULL,"<DWORD>client_id" }, -#define SERVERMESSAGE 0x38 { 1,0,0,0,0,0,0,PROT_NAME(SERVERMESSAGE) ,"cse338",NULL,"<WORD>message_len<CHAR>message[message_len]" }, -#define IDCHANGE 0x40 { 1,0,0,0,0,0,0,PROT_NAME(IDCHANGE) ,"cse340",NULL,"<DWORD>new_id" }, -#define SERVERIDENT 0x41 { 1,0,0,0,0,0,0,PROT_NAME(SERVERIDENT) ,"cse341",NULL,"<HASH>server_hash<IPPORT>server_address<DWORD>tag_count<TAG>tag[tag_count]" }, -#define FOUNDSOURCES 0x42 { 1,0,0,0,0,0,0,PROT_NAME(FOUNDSOURCES) ,"cse342",NULL,"<HASH>file_hash<BYTE>source_count<IPPORT>source_address[source_count]" }, -#define USERS_LIST 0x43 { 1,0,0,0,0,0,0,PROT_NAME(USERS_LIST) ,"cse343",NULL,"<DWORD>user_count{<HASH>hash<IPPORT>address<TAG>name}user[user_count]" }, -#define QUERY_CHATS 0x1D // (deprecated not supported by server any longer) // { 1,0,0,0,0,0,0,PROT_NAME(QUERY_CHATS) ,"cse31d",NULL,"DEPRECATED" }, -#define CHAT_MESSAGE 0x1E // (deprecated not supported by server any longer) // { 1,0,0,0,0,0,0,PROT_NAME(CHAT_MESSAGE) ,"cse31e",NULL,"DEPRECATED" }, -#define JOIN_ROOM 0x1F // (deprecated not supported by server any longer) // { 1,0,0,0,0,0,0,PROT_NAME(JOIN_ROOM) ,"cse31f",NULL,"DEPRECATED" }, -#define CHAT_ROOM_REQUEST 0x39 // (deprecated not supported by server any longer) // { 1,0,0,0,0,0,0,PROT_NAME(CHAT_ROOM_REQUEST) ,"cse339",NULL,"DEPRECATED" }, -#define CHAT_BROADCAST 0x3A // (deprecated not supported by server any longer) // { 1,0,0,0,0,0,0,PROT_NAME(CHAT_BROADCAST) ,"cse33a",NULL,"DEPRECATED" }, -#define CHAT_USER_JOIN 0x3B // (deprecated not supported by server any longer) // { 1,0,0,0,0,0,0,PROT_NAME(CHAT_USER_JOIN) ,"cse33b",NULL,"DEPRECATED" }, -#define CHAT_USER_LEAVE 0x3C // (deprecated not supported by server any longer) // { 1,0,0,0,0,0,0,PROT_NAME(CHAT_USER_LEAVE) ,"cse33c",NULL,"DEPRECATED" }, -#define CHAT_USER 0x3D // (deprecated not supported by server any longer) // { 1,0,0,0,0,0,0,PROT_NAME(CHAT_USER) ,"cse33d",NULL,"DEPRECATED" }, // client <-> server [UDP] -#define GLOBSERVSTATREQ 0x96 { 1,0,0,0,0,0,0,PROT_NAME(GLOBSERVSTATREQ) ,"cse396",NULL,"<WORD>unknown1<WORD>unknown2" }, // if unknown2==0xaa,0x5a, The respond contains max_users, else not. // { 1,0,0,0,0,0,0,PROT_NAME(GLOBSERVSTATRES) ,"cse396",NULL,"<DWORD>user_count<DWORD>file_count" }, -#define GLOBSERVSTATRES 0x97 { 1,0,0,0,0,0,0,PROT_NAME(GLOBSERVSTATRES) ,"cse397",NULL,"<WORD>unknown1<WORD>unknown2<DWORD>user_count<DWORD>file_count<DWORD>*max_users" }, -#define GLOBSEARCHREQUEST 0x98 // { 1,0,0,0,0,0,0,PROT_NAME(GLOBSEARCHREQUEST) ,"cse398",NULL,"<Search query>" }, -#define GLOBSEARCHRESULT 0x99 { 1,0,0,0,0,0,0,PROT_NAME(GLOBSEARCHRESULT) ,"cse399",NULL,"<HASH>hash<IPPORT>dummy<DWORD>tag_count<TAG>tag[tag_count]" }, -#define GLOBGETSOURCES 0x9A { 1,0,0,0,0,0,0,PROT_NAME(GLOBGETSOURCES) ,"cse39a",NULL,"<HASH>file_hash" }, -#define GLOBFOUNDSORUCES 0x9B { 1,0,0,0,0,0,0,PROT_NAME(GLOBFOUNDSORUCES) ,"cse39b",NULL,"<HASH>file_hash<BYTE>num_peers<IPPORT>peer[num_peers]" }, -#define GLOBCALLBACKREQ 0x9C { 1,0,0,0,0,0,0,PROT_NAME(GLOBCALLBACKREQ) ,"cse39c",NULL,"<DWORD>LowID_client_id" }, -#define GLOBCALLBACKFAILED 0x9E // CONFORMING TO "eDonkey-protocol-0.6.1" { 1,0,0,0,0,0,0,PROT_NAME(GLOBCALLBACKFAILED) ,"cse39e",NULL,"<DWORD>LowID_client_id" }, // Maybe there is a 0xA0 too // CONFORMING TO "eDonkey-protocol-0.6.1" : Exception in Connection::doTask 25 for 16.39 -#define UDP_SERVERLIST 0xA1 // CONFORMING TO "eDonkey-protocol-0.6.1" // { 1,0,0,0,0,0,0,PROT_NAME(UDP_SERVERLIST) ,"cse3a1",NULL,"<Address list>" }, -#define UNKNOWN1 0xA2 { 1,0,0,0,0,0,0,PROT_NAME(UNKNOWN1) ,"cse3a2",NULL,"" }, -#define UDP_SERVERINFO 0xA3 // CONFORMING TO "eDonkey-protocol-0.6.1" // { 1,0,0,0,0,0,0,PROT_NAME(UDP_SERVERLIST) ,"cse3a3",NULL,"<String>name<String>description" }, -#define UNKNOWN2 0xA4 { 1,0,0,0,0,0,0,PROT_NAME(UNKNOWN2) ,"cse3a4",NULL,"" }, // client <-> client -#define HELLO 0x01 { 1,0,0,0,0,0,1,PROT_NAME(HELLO) ,"cce301",NULL,"<BYTE>magic=0x10<HASH>user_hash<IPPORT>address<DWORD>tagcount<TAG>tag[tagcount]<IPPORT>server_address" }, -#define SENDINGPART 0x46 { 1,0,0,0,0,0,0,PROT_NAME(SENDINGPART) ,"cce346",NULL,"<HASH>file_hash<RANGE>range<BYTE>data[range]" }, -#define REQUESTPARTS 0x47 // "<HASH>file_hash<DWORD>start[3]<DWORD>end[3]" { 1,0,0,0,0,0,0,PROT_NAME(REQUESTPARTS) ,"cce347",NULL,"<HASH>file_hash<DWORD>part_1_start<DWORD>part_2_start<DWORD>part_3_start<DWORD>part_1_end<DWORD>part_2_end<DWORD>part_3_end" }, // <HASH>file_hash<DWORD>start[3]<DWORD>end[3] -#define FILEREQANSNOFIL 0x48 { 1,0,0,0,0,0,0,PROT_NAME(FILEREQANSNOFIL) ,"cce348",NULL,"<HASH>file_hash" }, -#define END_OF_DOWNLOAD 0x49 { 1,0,0,0,0,0,0,PROT_NAME(END_OF_DOWNLOAD) ,"cce349",NULL,"<HASH>file_hash" }, -#define ASKSHAREDFILES 0x4A { 1,0,0,0,0,0,0,PROT_NAME(ASKSHAREDFILES) ,"cce34a",NULL,"" }, -#define ASKSHAREDFILESANSWER 0x4B // ? "<DWORD>file_count{<HASH>file<TAG>name}file[file_count]" }, { 1,0,0,0,0,0,0,PROT_NAME(ASKSHAREDFILESANSWER) ,"cce34b",NULL,"<DWORD>file_count{<IPPORT>address<TAG>name}file[file_count]" }, -#define HELLOANSWER 0x4C { 1,0,0,0,0,0,0,PROT_NAME(HELLOANSWER) ,"cce34c",NULL,"<HASH>user_hash<IPPORT>user<DWORD>tagcount<TAG>tag[tagcount]<IPPORT>server" }, -#define CHANGE_CLIENT_ID 0x4D { 1,0,0,0,0,0,0,PROT_NAME(CHANGE_CLIENT_ID) ,"cce34d",NULL,"<DWORD>old_id<DWORD>new_id" }, -#define MESSAGE 0x4E { 1,0,0,0,0,0,0,PROT_NAME(MESSAGE) ,"cce34e",NULL,"<WORD>message_len<CHAR>message[message_len]" }, -#define SETREQFILEID 0x4F { 1,0,0,0,0,0,0,PROT_NAME(SETREQFILEID) ,"cce34f",NULL,"<HASH>file_hash" }, -#define FILESTATUS 0x50 { 1,0,0,0,0,0,0,PROT_NAME(FILESTATUS) ,"cce350",NULL,"<HASH>file_hash<BITMAP>chunks" }, -#define HASHSETREQUEST 0x51 { 1,0,0,0,0,0,0,PROT_NAME(HASHSETREQUEST) ,"cce351",NULL,"<HASH>file_hash" }, -#define HASHSETANSWER 0x52 { 1,0,0,0,0,0,0,PROT_NAME(HASHSETANSWER) ,"cce352",NULL,"<HASH>file_hash<WORD>chunk_count<HASH>chunk_hash[chunk_count]" }, // Maybe there is a 0x53 too // CONFORMING TO "eDonkey-protocol-0.6.1" -#define STARTUPLOADREQ 0x54 // The file_hash seems to be optional { 1,0,0,0,0,0,0,PROT_NAME(STARTUPLOADREQ) ,"cce354",NULL,"<HASH>*file_hash" }, -#define ACCEPTUPLOADREQ 0x55 { 1,0,0,0,0,0,0,PROT_NAME(ACCEPTUPLOADREQ) ,"cce355",NULL,"<EMPTY>" }, -#define CANCELTRANSFER 0x56 { 1,0,0,0,0,0,0,PROT_NAME(CANCELTRANSFER) ,"cce356",NULL,"<EMPTY>" }, -#define OUTOFPARTREQS 0x57 { 1,0,0,0,0,0,0,PROT_NAME(OUTOFPARTREQS) ,"cce357",NULL,"<EMPTY>" }, -#define FILEREQUEST 0x58 { 1,0,0,0,0,0,0,PROT_NAME(FILEREQUEST) ,"cce358",NULL,"<HASH>file_hash<BITMAP>*chunks" }, -#define FILEREQANSWER 0x59 { 1,0,0,0,0,0,0,PROT_NAME(FILEREQANSWER) ,"cce359",NULL,"<HASH>file_hash<WORD>filename_len<CHAR>filename[filename_len]" }, -#define CHANGE_SLOT 0x5B // The writers of "eDonkey-protocol-0.6.1" are not sure about this... { 1,0,0,0,0,0,0,PROT_NAME(CHANGE_SLOT) ,"cce35b",NULL,"<HASH>file_hash" }, -#define QUEUERANK 0x5C // (original comment: slot index of the request) { 1,0,0,0,0,0,0,PROT_NAME(QUEUERANK) ,"cce35c",NULL,"<DWORD>rank" }, // Client -> Client, CONFORMING TO "eDonkey-protocol-0.6.1" -#define GETSHAREDDIRS 0x5d // Request shared directories { 1,0,0,0,0,0,0,PROT_NAME(GETSHAREDDIRS) ,"cce35d",NULL,"" }, -#define GETSHAREDFILES4DIR 0x5e // Request shared files from directory // { 1,0,0,0,0,0,0,PROT_NAME(GETSHAREDFILES4DIR) ,"cce35e",NULL,"<Directory>" }, -#define ANSWERSHAREDDIRS 0x5f // { 1,0,0,0,0,0,0,PROT_NAME(ANSWERSHAREDDIRS) ,"cce35f",NULL,"<Directory list>" }, -#define ANSWERSHAREDFILES4DIR 0x60 // { 1,0,0,0,0,0,0,PROT_NAME(ANSWERSHAREDFILES4DIR),"cce360",NULL,"<Directory> <File info list>" }, -#define ANSWERSHAREDDENIED 0x61 { 1,0,0,0,0,0,0,PROT_NAME(ANSWERSHAREDDENIED) ,"cce361",NULL,"" }, // extened prot client <-> extened prot client -#define EMULEINFO 0x01 { 0,1,0,0,0,0,0,PROT_NAME(EMULEINFO) ,"ccc5e301",NULL,"<BYTE>client_version<BYTE>protocol_version<DWORD>tagcount<TAG>tag[tagcount]" }, // Values: ET_COMPRESSION ET_UDPPORT ET_UDPVER ET_SOURCEEXCHANGE ET_COMMENTS ET_EXTENDEDREQUEST ET_COMPATABLECLIENT ET_MOD_VERSION -#define EMULEINFOANSWER 0x02 { 0,1,0,0,0,0,0,PROT_NAME(EMULEINFOANSWER) ,"ccc502",NULL,"<BYTE>client_version<BYTE>protocol_version<DWORD>tagcount<TAG>tag[tagcount]" }, // // CONFORMING TO "eDonkey-protocol-0.6.1" and comfirming to the xMule sources, // a part may be split down to several packets. Each packet _may_ have same // value for range. -#define COMPRESSEDPART 0x40 { 0,1,0,0,0,0,0,PROT_NAME(COMPRESSEDPART) ,"ccc540",NULL,"<HASH>file_hash<RANGE>range<BYTE>cdata[range]" }, -#define QUEUERANKING 0x60 { 0,1,0,0,0,0,0,PROT_NAME(QUEUERANKING) ,"ccc560",NULL,"<WORD>rank<DWORD>unknown1=0<DWORD>unknown2=0<WORD>unknown3=0" }, // "eDonkey-protocol-0.6.1" doesn't know anything about 0x61: -#define FILEDESC 0x61 // max len = 128 [Why the hell is comment_len a 32 bit value, and than limited to 128 bytes?] { 0,1,0,0,0,0,0,PROT_NAME(FILEDESC) ,"ccc561",NULL,"<BYTE>quality_rating<DWORD>comment_len<CHAR>comment[comment_len]" }, -#define REQUESTSOURCES 0x81 { 0,1,0,0,0,0,0,PROT_NAME(REQUESTSOURCES) ,"ccc581",NULL,"<HASH>file_hash" }, -#define ANSWERSOURCES 0x82 { 0,1,0,0,0,0,0,PROT_NAME(ANSWERSOURCES) ,"ccc582",NULL,"<HASH>file_hash<WORD>num_sources{<IPPORT>server<IPPORT>client}source[num_sources]" }, // extened prot client <-> extened prot client UDP -#define REASKFILEPING 0x90 { 0,1,0,0,0,0,0,PROT_NAME(REASKFILEPING) ,"ccc590",NULL,"<HASH>file_hash" }, -#define REASKACK 0x91 { 0,1,0,0,0,0,0,PROT_NAME(REASKACK) ,"ccc591",NULL,"<WORD>rank" }, -#define FILENOTFOUND 0x92 { 0,1,0,0,0,0,0,PROT_NAME(FILENOTFOUND) ,"ccc592",NULL,"" }, -#define QUEUEFULL 0x93 { 0,1,0,0,0,0,0,PROT_NAME(QUEUEFULL) ,"ccc593",NULL,"" }, // unknown: (?extened prot client <-> extened prot client?) -#define VERIFYUPSREQ 0x71 // (never used) */ { 0,1,0,0,0,0,0,PROT_NAME(VERIFYUPSREQ) ,"ccc571",NULL,"" }, -#define VERIFYUPSANSWER 0x72 // (never used) */ { 0,1,0,0,0,0,0,PROT_NAME(VERIFYUPSANSWER) ,"ccc572",NULL,"" }, -#define UDPVERIFYUPREQ 0x73 // (never used) */ { 0,1,0,0,0,0,0,PROT_NAME(UDPVERIFYUPREQ) ,"ccc573",NULL,"" }, -#define UDPVERIFYUPA 0x74 // (never used) { 0,1,0,0,0,0,0,PROT_NAME(UDPVERIFYUPA) ,"ccc574",NULL,"" } }; Index: parse-ed2k.h =================================================================== RCS file: /cvsroot/sharedaemon/core/src/parse-ed2k.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- parse-ed2k.h 20 Nov 2003 16:27:25 -0000 1.9 +++ parse-ed2k.h 12 Jan 2004 21:32:42 -0000 1.10 @@ -158,4 +158,87 @@ # define typename type_name #endif // #ifdef __cplusplus, #else +#define LOGINREQUEST 0x01 // mlDonkey adds a DWORD with content: 'MLDK' // <DWORD>tagcount<TAG>tag[tagcount] // <BYTE>magic=0x10 +#define REJECT 0x05 +#define GETSERVERLIST 0x14 +#define OFFERFILES 0x15 +#define SEARCHREQUEST 0x16 +#define DISCONNECT 0x18 // (not verified) +#define GETSOURCES 0x19 +#define SEARCH_USER 0x1A +#define CALLBACKREQUEST 0x1C // <ID 4> +#define QUERY_MORE_RESULT 0x21 +#define SERVERLIST 0x32 // Server -> Client +#define SEARCHRESULT 0x33 +#define SERVERSTATUS 0x34 +#define CALLBACKREQUESTED 0x35 +#define CALLBACK_FAIL 0x36 +#define SERVERMESSAGE 0x38 +#define IDCHANGE 0x40 +#define SERVERIDENT 0x41 +#define FOUNDSOURCES 0x42 +#define USERS_LIST 0x43 +#define QUERY_CHATS 0x1D // (deprecated not supported by server any longer) +#define CHAT_MESSAGE 0x1E // (deprecated not supported by server any longer) +#define JOIN_ROOM 0x1F // (deprecated not supported by server any longer) +#define CHAT_ROOM_REQUEST 0x39 // (deprecated not supported by server any longer) +#define CHAT_BROADCAST 0x3A // (deprecated not supported by server any longer) +#define CHAT_USER_JOIN 0x3B // (deprecated not supported by server any longer) +#define CHAT_USER_LEAVE 0x3C // (deprecated not supported by server any longer) +#define CHAT_USER 0x3D // (deprecated not supported by server any longer) +#define GLOBSERVSTATREQ 0x96 +#define GLOBSERVSTATRES 0x97 +#define GLOBSEARCHREQUEST 0x98 +#define GLOBSEARCHRESULT 0x99 +#define GLOBGETSOURCES 0x9A +#define GLOBFOUNDSORUCES 0x9B +#define GLOBCALLBACKREQ 0x9C +#define GLOBCALLBACKFAILED 0x9E // CONFORMING TO "eDonkey-protocol-0.6.1" +#define UDP_SERVERLIST 0xA1 // CONFORMING TO "eDonkey-protocol-0.6.1" +#define UNKNOWN1 0xA2 +#define UDP_SERVERINFO 0xA3 // CONFORMING TO "eDonkey-protocol-0.6.1" +#define UNKNOWN2 0xA4 +#define HELLO 0x01 +#define SENDINGPART 0x46 +#define REQUESTPARTS 0x47 // "<HASH>file_hash<DWORD>start[3]<DWORD>end[3]" +#define FILEREQANSNOFIL 0x48 +#define END_OF_DOWNLOAD 0x49 +#define ASKSHAREDFILES 0x4A +#define ASKSHAREDFILESANSWER 0x4B // ? "<DWORD>file_count{<HASH>file<TAG>name}file[file_count]" }, +#define HELLOANSWER 0x4C +#define CHANGE_CLIENT_ID 0x4D +#define MESSAGE 0x4E +#define SETREQFILEID 0x4F +#define FILESTATUS 0x50 +#define HASHSETREQUEST 0x51 +#define HASHSETANSWER 0x52 +#define STARTUPLOADREQ 0x54 // The file_hash seems to be optional +#define ACCEPTUPLOADREQ 0x55 +#define CANCELTRANSFER 0x56 +#define OUTOFPARTREQS 0x57 +#define FILEREQUEST 0x58 +#define FILEREQANSWER 0x59 +#define CHANGE_SLOT 0x5B // The writers of "eDonkey-protocol-0.6.1" are not sure about this... +#define QUEUERANK 0x5C // (original comment: slot index of the request) +#define GETSHAREDDIRS 0x5d // Request shared directories +#define GETSHAREDFILES4DIR 0x5e // Request shared files from directory +#define ANSWERSHAREDDIRS 0x5f +#define ANSWERSHAREDFILES4DIR 0x60 +#define ANSWERSHAREDDENIED 0x61 +#define EMULEINFO 0x01 +#define EMULEINFOANSWER 0x02 +#define COMPRESSEDPART 0x40 +#define QUEUERANKING 0x60 +#define FILEDESC 0x61 // max len = 128 [Why the hell is comment_len a 32 bit value, and than limited to 128 bytes?] +#define REQUESTSOURCES 0x81 +#define ANSWERSOURCES 0x82 +#define REASKFILEPING 0x90 +#define REASKACK 0x91 +#define FILENOTFOUND 0x92 +#define QUEUEFULL 0x93 +#define VERIFYUPSREQ 0x71 // (never used) */ +#define VERIFYUPSANSWER 0x72 // (never used) */ +#define UDPVERIFYUPREQ 0x73 // (never used) */ +#define UDPVERIFYUPA 0x74 // (never used) + #endif // #ifndef PARSE_ED2K_H |