summaryrefslogtreecommitdiff
path: root/src/BtHandshakeMessage.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-05-16 12:27:14 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-05-16 12:27:14 +0900
commit9727b5b256bb12cff42e6aa230ba2020a933562f (patch)
tree4fe70a0d78d3a5cd11a80b2dfd8f521db47032ee /src/BtHandshakeMessage.h
parent8897d7ec702fca9780033db42db48cced2580112 (diff)
parentcc8375f0b04918ace028bf58e09f9e25a0440c23 (diff)
Merge branch 'master' into dynamic-select-file
Diffstat (limited to 'src/BtHandshakeMessage.h')
-rw-r--r--src/BtHandshakeMessage.h39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/BtHandshakeMessage.h b/src/BtHandshakeMessage.h
index 51893b57..5bbb0b4f 100644
--- a/src/BtHandshakeMessage.h
+++ b/src/BtHandshakeMessage.h
@@ -37,21 +37,26 @@
#include "SimpleBtMessage.h"
+#include <array>
+
+#include "BtConstants.h"
+
namespace aria2 {
class BtHandshakeMessage : public SimpleBtMessage {
public:
- static const size_t PSTR_LENGTH = 19;
- static const unsigned char* BT_PSTR;
- static const size_t RESERVED_LENGTH = 8;
- static const size_t MESSAGE_LENGTH = 68;
+ constexpr static size_t PSTR_LENGTH = 19;
+ constexpr static size_t RESERVED_LENGTH = 8;
+ constexpr static size_t MESSAGE_LENGTH = 68;
+ const static unsigned char BT_PSTR[];
private:
uint8_t pstrlen_;
- unsigned char* pstr_;
- unsigned char* reserved_;
- unsigned char* infoHash_;
- unsigned char* peerId_;
+ std::array<unsigned char, PSTR_LENGTH> pstr_;
+ std::array<unsigned char, RESERVED_LENGTH> reserved_;
+ std::array<unsigned char, INFO_HASH_LENGTH> infoHash_;
+ std::array<unsigned char, PEER_ID_LENGTH> peerId_;
+
void init();
public:
@@ -66,17 +71,11 @@ public:
static std::unique_ptr<BtHandshakeMessage> create(const unsigned char* data,
size_t dataLength);
- virtual ~BtHandshakeMessage()
- {
- delete[] pstr_;
- delete[] reserved_;
- delete[] infoHash_;
- delete[] peerId_;
- }
+ virtual ~BtHandshakeMessage();
static const uint8_t ID = INT8_MAX;
- static const char NAME[];
+ const static char NAME[];
virtual void doReceivedAction() CXX11_OVERRIDE{};
@@ -104,15 +103,15 @@ public:
uint8_t getPstrlen() const { return pstrlen_; }
- const unsigned char* getPstr() const { return pstr_; }
+ const unsigned char* getPstr() const { return pstr_.data(); }
- const unsigned char* getReserved() const { return reserved_; }
+ const unsigned char* getReserved() const { return reserved_.data(); }
- const unsigned char* getInfoHash() const { return infoHash_; }
+ const unsigned char* getInfoHash() const { return infoHash_.data(); }
void setInfoHash(const unsigned char* infoHash);
- const unsigned char* getPeerId() const { return peerId_; }
+ const unsigned char* getPeerId() const { return peerId_.data(); }
void setPeerId(const unsigned char* peerId);
};