/* */ #ifndef _D_HANDSHAKE_MESSAGE_H_ #define _D_HANDSHAKE_MESSAGE_H_ #include "SimplePeerMessage.h" #define PSTR "BitTorrent protocol" #define HANDSHAKE_MESSAGE_LENGTH 68 class HandshakeMessage : public SimplePeerMessage { private: char msg[HANDSHAKE_MESSAGE_LENGTH]; void init(); public: char pstrlen; string pstr; unsigned char reserved[8]; unsigned char infoHash[INFO_HASH_LENGTH]; char peerId[PEER_ID_LENGTH]; public: HandshakeMessage(); HandshakeMessage(const unsigned char* infoHash, const char* peerId); static HandshakeMessage* create(const char* data, int dataLength); virtual ~HandshakeMessage() {} virtual int getId() const { return 999; } virtual void receivedAction() {}; virtual const char* getMessage(); virtual int getMessageLength(); virtual void check() const; virtual string toString() const; bool isFastExtensionSupported() const; }; #endif // _D_HANDSHAKE_MESSAGE_H_