summaryrefslogtreecommitdiff
path: root/src/BtHandshakeMessage.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-03-04 16:24:03 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-03-04 16:24:03 +0000
commit8b73c2843f659fe6cafd94534481e371888f0b5e (patch)
treea228c40972e5a2053ef2837b8df7687019f99d9f /src/BtHandshakeMessage.cc
parent5d05ef0e756a7c52673fcf78b4ab8c9ccee2154d (diff)
2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Reduced copying/std::string instantiation in sending/receiving BitTorrent messages. * src/BtBitfieldMessage.cc * src/BtBitfieldMessage.h * src/BtExtendedMessage.cc * src/BtExtendedMessage.h * src/BtHandshakeMessage.cc * src/BtHandshakeMessage.h * src/BtKeepAliveMessage.cc * src/BtKeepAliveMessage.h * src/BtPieceMessage.cc * src/BtPieceMessage.h * src/BtPortMessage.cc * src/BtPortMessage.h * src/BtUnchokeMessage.h * src/DefaultBtMessageReceiver.cc * src/IndexBtMessage.cc * src/IndexBtMessage.h * src/PeerConnection.cc * src/PeerConnection.h * src/RangeBtMessage.cc * src/RangeBtMessage.h * src/SimpleBtMessage.cc * src/SimpleBtMessage.h * src/SocketBuffer.cc * src/SocketBuffer.h * src/ZeroBtMessage.cc * src/ZeroBtMessage.h * test/BtAllowedFastMessageTest.cc * test/BtBitfieldMessageTest.cc * test/BtCancelMessageTest.cc * test/BtChokeMessageTest.cc * test/BtExtendedMessageTest.cc * test/BtHandshakeMessageTest.cc * test/BtHaveAllMessageTest.cc * test/BtHaveMessageTest.cc * test/BtHaveNoneMessageTest.cc * test/BtInterestedMessageTest.cc * test/BtKeepAliveMessageTest.cc * test/BtNotInterestedMessageTest.cc * test/BtPieceMessageTest.cc * test/BtPortMessageTest.cc * test/BtRejectMessageTest.cc * test/BtRequestMessageTest.cc * test/BtSuggestPieceMessageTest.cc * test/BtUnchokeMessageTest.cc
Diffstat (limited to 'src/BtHandshakeMessage.cc')
-rw-r--r--src/BtHandshakeMessage.cc18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/BtHandshakeMessage.cc b/src/BtHandshakeMessage.cc
index c2cf0cec..715a717c 100644
--- a/src/BtHandshakeMessage.cc
+++ b/src/BtHandshakeMessage.cc
@@ -62,7 +62,6 @@ BtHandshakeMessage::BtHandshakeMessage(const unsigned char* infoHash,
}
void BtHandshakeMessage::init() {
- msg = 0;
this->pstrlen = 19;
pstr = new unsigned char[PSTR_LENGTH];
reserved = new unsigned char[RESERVED_LENGTH];
@@ -88,15 +87,14 @@ BtHandshakeMessage::create(const unsigned char* data, size_t dataLength)
return message;
}
-const unsigned char* BtHandshakeMessage::getMessage() {
- if(!msg) {
- msg = new unsigned char[MESSAGE_LENGTH];
- msg[0] = pstrlen;
- memcpy(msg+1, pstr, PSTR_LENGTH);
- memcpy(msg+20, reserved, RESERVED_LENGTH);
- memcpy(msg+28, infoHash, INFO_HASH_LENGTH);
- memcpy(msg+48, peerId, PEER_ID_LENGTH);
- }
+unsigned char* BtHandshakeMessage::createMessage()
+{
+ unsigned char* msg = new unsigned char[MESSAGE_LENGTH];
+ msg[0] = pstrlen;
+ memcpy(msg+1, pstr, PSTR_LENGTH);
+ memcpy(msg+20, reserved, RESERVED_LENGTH);
+ memcpy(msg+28, infoHash, INFO_HASH_LENGTH);
+ memcpy(msg+48, peerId, PEER_ID_LENGTH);
return msg;
}