diff --git a/ChangeLog b/ChangeLog index 6c51702a..d5cdd705 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,33 @@ +2010-06-12 Tatsuhiro Tsujikawa + + Made protected member variable private. Added accessor funcs. + * src/DHTAbstractMessage.cc + * src/DHTAbstractMessage.h + * src/DHTAnnouncePeerMessage.cc + * src/DHTAnnouncePeerMessage.h + * src/DHTAnnouncePeerReplyMessage.cc + * src/DHTAnnouncePeerReplyMessage.h + * src/DHTFindNodeMessage.cc + * src/DHTFindNodeMessage.h + * src/DHTFindNodeReplyMessage.cc + * src/DHTFindNodeReplyMessage.h + * src/DHTGetPeersMessage.cc + * src/DHTGetPeersMessage.h + * src/DHTGetPeersReplyMessage.cc + * src/DHTGetPeersReplyMessage.h + * src/DHTMessage.h + * src/DHTPingMessage.cc + * src/DHTPingMessage.h + * src/DHTPingReplyMessage.cc + * src/DHTPingReplyMessage.h + * src/DHTQueryMessage.cc + * src/DHTQueryMessage.h + * src/DHTResponseMessage.cc + * src/DHTResponseMessage.h + * src/DHTUnknownMessage.cc + * src/DHTUnknownMessage.h + * test/MockDHTMessage.h + 2010-06-11 Tatsuhiro Tsujikawa Removed unused member variable uuid and uuidGen diff --git a/src/DHTAbstractMessage.cc b/src/DHTAbstractMessage.cc index 7a9b2a1e..3f408090 100644 --- a/src/DHTAbstractMessage.cc +++ b/src/DHTAbstractMessage.cc @@ -56,9 +56,9 @@ DHTAbstractMessage::~DHTAbstractMessage() {} std::string DHTAbstractMessage::getBencodedMessage() { BDE msgDict = BDE::dict(); - msgDict[T] = _transactionID; + msgDict[T] = getTransactionID(); msgDict[Y] = getType(); - msgDict[V] = _version; + msgDict[V] = getVersion(); fillMessage(msgDict); return bencode::encode(msgDict); } @@ -69,8 +69,8 @@ bool DHTAbstractMessage::send() ssize_t r = _connection->sendMessage (reinterpret_cast(message.c_str()), message.size(), - _remoteNode->getIPAddress(), - _remoteNode->getPort()); + getRemoteNode()->getIPAddress(), + getRemoteNode()->getPort()); assert(r >= 0); return r == static_cast(message.size()); } diff --git a/src/DHTAbstractMessage.h b/src/DHTAbstractMessage.h index 8a2fb00e..bfd33f22 100644 --- a/src/DHTAbstractMessage.h +++ b/src/DHTAbstractMessage.h @@ -47,7 +47,7 @@ class DHTMessageFactory; class DHTRoutingTable; class DHTAbstractMessage:public DHTMessage { -protected: +private: WeakHandle _connection; WeakHandle _dispatcher; @@ -64,18 +64,38 @@ public: virtual bool send(); - virtual std::string getType() const = 0; + virtual const std::string& getType() const = 0; virtual void fillMessage(BDE& msgDict) = 0; std::string getBencodedMessage(); + const WeakHandle& getConnection() const + { + return _connection; + } + void setConnection(const WeakHandle& connection); + const WeakHandle& getMessageDispatcher() const + { + return _dispatcher; + } + void setMessageDispatcher(const WeakHandle& dispatcher); + const WeakHandle& getMessageFactory() const + { + return _factory; + } + void setMessageFactory(const WeakHandle& factory); + const WeakHandle& getRoutingTable() const + { + return _routingTable; + } + void setRoutingTable(const WeakHandle& routingTable); }; diff --git a/src/DHTAnnouncePeerMessage.cc b/src/DHTAnnouncePeerMessage.cc index e0eda66e..434bb13d 100644 --- a/src/DHTAnnouncePeerMessage.cc +++ b/src/DHTAnnouncePeerMessage.cc @@ -60,12 +60,13 @@ const std::string DHTAnnouncePeerMessage::PORT("port"); const std::string DHTAnnouncePeerMessage::TOKEN("token"); -DHTAnnouncePeerMessage::DHTAnnouncePeerMessage(const SharedHandle& localNode, - const SharedHandle& remoteNode, - const unsigned char* infoHash, - uint16_t tcpPort, - const std::string& token, - const std::string& transactionID): +DHTAnnouncePeerMessage::DHTAnnouncePeerMessage +(const SharedHandle& localNode, + const SharedHandle& remoteNode, + const unsigned char* infoHash, + uint16_t tcpPort, + const std::string& token, + const std::string& transactionID): DHTQueryMessage(localNode, remoteNode, transactionID), _token(token), _tcpPort(tcpPort) @@ -77,25 +78,26 @@ DHTAnnouncePeerMessage::~DHTAnnouncePeerMessage() {} void DHTAnnouncePeerMessage::doReceivedAction() { - _peerAnnounceStorage->addPeerAnnounce(_infoHash, _remoteNode->getIPAddress(), - _tcpPort); + _peerAnnounceStorage->addPeerAnnounce + (_infoHash, getRemoteNode()->getIPAddress(), _tcpPort); SharedHandle reply = - _factory->createAnnouncePeerReplyMessage(_remoteNode, _transactionID); - _dispatcher->addMessageToQueue(reply); + getMessageFactory()->createAnnouncePeerReplyMessage + (getRemoteNode(), getTransactionID()); + getMessageDispatcher()->addMessageToQueue(reply); } BDE DHTAnnouncePeerMessage::getArgument() { BDE aDict = BDE::dict(); - aDict[DHTMessage::ID] = BDE(_localNode->getID(), DHT_ID_LENGTH); + aDict[DHTMessage::ID] = BDE(getLocalNode()->getID(), DHT_ID_LENGTH); aDict[INFO_HASH] = BDE(_infoHash, DHT_ID_LENGTH); aDict[PORT] = _tcpPort; aDict[TOKEN] = _token; return aDict; } -std::string DHTAnnouncePeerMessage::getMessageType() const +const std::string& DHTAnnouncePeerMessage::getMessageType() const { return ANNOUNCE_PEER; } @@ -103,22 +105,24 @@ std::string DHTAnnouncePeerMessage::getMessageType() const void DHTAnnouncePeerMessage::validate() const { if(!_tokenTracker->validateToken(_token, _infoHash, - _remoteNode->getIPAddress(), - _remoteNode->getPort())) { + getRemoteNode()->getIPAddress(), + getRemoteNode()->getPort())) { throw DL_ABORT_EX (StringFormat("Invalid token=%s from %s:%u", util::toHex(_token).c_str(), - _remoteNode->getIPAddress().c_str(), - _remoteNode->getPort()).str()); + getRemoteNode()->getIPAddress().c_str(), + getRemoteNode()->getPort()).str()); } } -void DHTAnnouncePeerMessage::setPeerAnnounceStorage(const WeakHandle& storage) +void DHTAnnouncePeerMessage::setPeerAnnounceStorage +(const WeakHandle& storage) { _peerAnnounceStorage = storage; } -void DHTAnnouncePeerMessage::setTokenTracker(const WeakHandle& tokenTracker) +void DHTAnnouncePeerMessage::setTokenTracker +(const WeakHandle& tokenTracker) { _tokenTracker = tokenTracker; } diff --git a/src/DHTAnnouncePeerMessage.h b/src/DHTAnnouncePeerMessage.h index a9ee5499..0b47b3fe 100644 --- a/src/DHTAnnouncePeerMessage.h +++ b/src/DHTAnnouncePeerMessage.h @@ -71,7 +71,7 @@ public: virtual BDE getArgument(); - virtual std::string getMessageType() const; + virtual const std::string& getMessageType() const; virtual void validate() const; diff --git a/src/DHTAnnouncePeerReplyMessage.cc b/src/DHTAnnouncePeerReplyMessage.cc index b55890c6..925c74f9 100644 --- a/src/DHTAnnouncePeerReplyMessage.cc +++ b/src/DHTAnnouncePeerReplyMessage.cc @@ -40,9 +40,10 @@ namespace aria2 { const std::string DHTAnnouncePeerReplyMessage::ANNOUNCE_PEER("announce_peer"); -DHTAnnouncePeerReplyMessage::DHTAnnouncePeerReplyMessage(const SharedHandle& localNode, - const SharedHandle& remoteNode, - const std::string& transactionID): +DHTAnnouncePeerReplyMessage::DHTAnnouncePeerReplyMessage +(const SharedHandle& localNode, + const SharedHandle& remoteNode, + const std::string& transactionID): DHTResponseMessage(localNode, remoteNode, transactionID) {} DHTAnnouncePeerReplyMessage::~DHTAnnouncePeerReplyMessage() {} @@ -52,15 +53,13 @@ void DHTAnnouncePeerReplyMessage::doReceivedAction() {} BDE DHTAnnouncePeerReplyMessage::getResponse() { BDE rDict = BDE::dict(); - rDict[DHTMessage::ID] = BDE(_localNode->getID(), DHT_ID_LENGTH); + rDict[DHTMessage::ID] = BDE(getLocalNode()->getID(), DHT_ID_LENGTH); return rDict; } -std::string DHTAnnouncePeerReplyMessage::getMessageType() const +const std::string& DHTAnnouncePeerReplyMessage::getMessageType() const { return ANNOUNCE_PEER; } -void DHTAnnouncePeerReplyMessage::validate() const {} - } // namespace aria2 diff --git a/src/DHTAnnouncePeerReplyMessage.h b/src/DHTAnnouncePeerReplyMessage.h index d5e770e8..685f601c 100644 --- a/src/DHTAnnouncePeerReplyMessage.h +++ b/src/DHTAnnouncePeerReplyMessage.h @@ -51,9 +51,7 @@ public: virtual BDE getResponse(); - virtual std::string getMessageType() const; - - virtual void validate() const; + virtual const std::string& getMessageType() const; static const std::string ANNOUNCE_PEER; }; diff --git a/src/DHTFindNodeMessage.cc b/src/DHTFindNodeMessage.cc index 571be287..a209dda6 100644 --- a/src/DHTFindNodeMessage.cc +++ b/src/DHTFindNodeMessage.cc @@ -64,27 +64,26 @@ DHTFindNodeMessage::~DHTFindNodeMessage() {} void DHTFindNodeMessage::doReceivedAction() { std::vector > nodes; - _routingTable->getClosestKNodes(nodes, _targetNodeID); + getRoutingTable()->getClosestKNodes(nodes, _targetNodeID); SharedHandle reply = - _factory->createFindNodeReplyMessage(_remoteNode, nodes, _transactionID); - _dispatcher->addMessageToQueue(reply); + getMessageFactory()->createFindNodeReplyMessage + (getRemoteNode(), nodes, getTransactionID()); + getMessageDispatcher()->addMessageToQueue(reply); } BDE DHTFindNodeMessage::getArgument() { BDE aDict = BDE::dict(); - aDict[DHTMessage::ID] = BDE(_localNode->getID(), DHT_ID_LENGTH); + aDict[DHTMessage::ID] = BDE(getLocalNode()->getID(), DHT_ID_LENGTH); aDict[TARGET_NODE] = BDE(_targetNodeID, DHT_ID_LENGTH); return aDict; } -std::string DHTFindNodeMessage::getMessageType() const +const std::string& DHTFindNodeMessage::getMessageType() const { return FIND_NODE; } -void DHTFindNodeMessage::validate() const {} - std::string DHTFindNodeMessage::toStringOptional() const { return "targetNodeID="+util::toHex(_targetNodeID, DHT_ID_LENGTH); diff --git a/src/DHTFindNodeMessage.h b/src/DHTFindNodeMessage.h index 3ac651a3..a16263c0 100644 --- a/src/DHTFindNodeMessage.h +++ b/src/DHTFindNodeMessage.h @@ -57,9 +57,7 @@ public: virtual BDE getArgument(); - virtual std::string getMessageType() const; - - virtual void validate() const; + virtual const std::string& getMessageType() const; const unsigned char* getTargetNodeID() const { diff --git a/src/DHTFindNodeReplyMessage.cc b/src/DHTFindNodeReplyMessage.cc index 387024f7..e25e9a74 100644 --- a/src/DHTFindNodeReplyMessage.cc +++ b/src/DHTFindNodeReplyMessage.cc @@ -52,9 +52,10 @@ const std::string DHTFindNodeReplyMessage::FIND_NODE("find_node"); const std::string DHTFindNodeReplyMessage::NODES("nodes"); -DHTFindNodeReplyMessage::DHTFindNodeReplyMessage(const SharedHandle& localNode, - const SharedHandle& remoteNode, - const std::string& transactionID): +DHTFindNodeReplyMessage::DHTFindNodeReplyMessage +(const SharedHandle& localNode, + const SharedHandle& remoteNode, + const std::string& transactionID): DHTResponseMessage(localNode, remoteNode, transactionID) {} DHTFindNodeReplyMessage::~DHTFindNodeReplyMessage() {} @@ -63,8 +64,8 @@ void DHTFindNodeReplyMessage::doReceivedAction() { for(std::vector >::iterator i = _closestKNodes.begin(), eoi = _closestKNodes.end(); i != eoi; ++i) { - if(memcmp((*i)->getID(), _localNode->getID(), DHT_ID_LENGTH) != 0) { - _routingTable->addNode(*i); + if(memcmp((*i)->getID(), getLocalNode()->getID(), DHT_ID_LENGTH) != 0) { + getRoutingTable()->addNode(*i); } } } @@ -72,7 +73,7 @@ void DHTFindNodeReplyMessage::doReceivedAction() BDE DHTFindNodeReplyMessage::getResponse() { BDE aDict = BDE::dict(); - aDict[DHTMessage::ID] = BDE(_localNode->getID(), DHT_ID_LENGTH); + aDict[DHTMessage::ID] = BDE(getLocalNode()->getID(), DHT_ID_LENGTH); size_t offset = 0; unsigned char buffer[DHTBucket::K*26]; // TODO if _closestKNodes.size() > DHTBucket::K ?? @@ -90,13 +91,11 @@ BDE DHTFindNodeReplyMessage::getResponse() return aDict; } -std::string DHTFindNodeReplyMessage::getMessageType() const +const std::string& DHTFindNodeReplyMessage::getMessageType() const { return FIND_NODE; } -void DHTFindNodeReplyMessage::validate() const {} - void DHTFindNodeReplyMessage::setClosestKNodes (const std::vector >& closestKNodes) { diff --git a/src/DHTFindNodeReplyMessage.h b/src/DHTFindNodeReplyMessage.h index 600b1591..ad07bd7d 100644 --- a/src/DHTFindNodeReplyMessage.h +++ b/src/DHTFindNodeReplyMessage.h @@ -56,9 +56,7 @@ public: virtual BDE getResponse(); - virtual std::string getMessageType() const; - - virtual void validate() const; + virtual const std::string& getMessageType() const; const std::vector >& getClosestKNodes() const { diff --git a/src/DHTGetPeersMessage.cc b/src/DHTGetPeersMessage.cc index adab269e..660c3f7b 100644 --- a/src/DHTGetPeersMessage.cc +++ b/src/DHTGetPeersMessage.cc @@ -66,48 +66,47 @@ DHTGetPeersMessage::~DHTGetPeersMessage() {} void DHTGetPeersMessage::doReceivedAction() { - std::string token = _tokenTracker->generateToken(_infoHash, - _remoteNode->getIPAddress(), - _remoteNode->getPort()); + std::string token = _tokenTracker->generateToken + (_infoHash, getRemoteNode()->getIPAddress(), getRemoteNode()->getPort()); // Check to see localhost has the contents which has same infohash std::vector > peers; _peerAnnounceStorage->getPeers(peers, _infoHash); SharedHandle reply; if(peers.empty()) { std::vector > nodes; - _routingTable->getClosestKNodes(nodes, _infoHash); + getRoutingTable()->getClosestKNodes(nodes, _infoHash); reply = - _factory->createGetPeersReplyMessage(_remoteNode, nodes, token, - _transactionID); + getMessageFactory()->createGetPeersReplyMessage + (getRemoteNode(), nodes, token, getTransactionID()); } else { reply = - _factory->createGetPeersReplyMessage(_remoteNode, peers, token, - _transactionID); + getMessageFactory()->createGetPeersReplyMessage + (getRemoteNode(), peers, token, getTransactionID()); } - _dispatcher->addMessageToQueue(reply); + getMessageDispatcher()->addMessageToQueue(reply); } BDE DHTGetPeersMessage::getArgument() { BDE aDict = BDE::dict(); - aDict[DHTMessage::ID] = BDE(_localNode->getID(), DHT_ID_LENGTH); + aDict[DHTMessage::ID] = BDE(getLocalNode()->getID(), DHT_ID_LENGTH); aDict[INFO_HASH] = BDE(_infoHash, DHT_ID_LENGTH); return aDict; } -std::string DHTGetPeersMessage::getMessageType() const +const std::string& DHTGetPeersMessage::getMessageType() const { return GET_PEERS; } -void DHTGetPeersMessage::validate() const {} - -void DHTGetPeersMessage::setPeerAnnounceStorage(const WeakHandle& storage) +void DHTGetPeersMessage::setPeerAnnounceStorage +(const WeakHandle& storage) { _peerAnnounceStorage = storage; } -void DHTGetPeersMessage::setTokenTracker(const WeakHandle& tokenTracker) +void DHTGetPeersMessage::setTokenTracker +(const WeakHandle& tokenTracker) { _tokenTracker = tokenTracker; } diff --git a/src/DHTGetPeersMessage.h b/src/DHTGetPeersMessage.h index 32da011f..e7c5bd6f 100644 --- a/src/DHTGetPeersMessage.h +++ b/src/DHTGetPeersMessage.h @@ -65,17 +65,15 @@ public: virtual BDE getArgument(); - virtual std::string getMessageType() const; - - virtual void validate() const; + virtual const std::string& getMessageType() const; const unsigned char* getInfoHash() const { return _infoHash; } - void setPeerAnnounceStorage(const WeakHandle& storage); - + void setPeerAnnounceStorage + (const WeakHandle& storage); void setTokenTracker(const WeakHandle& tokenTracker); diff --git a/src/DHTGetPeersReplyMessage.cc b/src/DHTGetPeersReplyMessage.cc index 670f3433..98ddf30a 100644 --- a/src/DHTGetPeersReplyMessage.cc +++ b/src/DHTGetPeersReplyMessage.cc @@ -76,7 +76,7 @@ void DHTGetPeersReplyMessage::doReceivedAction() BDE DHTGetPeersReplyMessage::getResponse() { BDE rDict = BDE::dict(); - rDict[DHTMessage::ID] = BDE(_localNode->getID(), DHT_ID_LENGTH); + rDict[DHTMessage::ID] = BDE(getLocalNode()->getID(), DHT_ID_LENGTH); rDict[TOKEN] = _token; if(_values.empty()) { size_t offset = 0; @@ -128,13 +128,11 @@ BDE DHTGetPeersReplyMessage::getResponse() return rDict; } -std::string DHTGetPeersReplyMessage::getMessageType() const +const std::string& DHTGetPeersReplyMessage::getMessageType() const { return GET_PEERS; } -void DHTGetPeersReplyMessage::validate() const {} - std::string DHTGetPeersReplyMessage::toStringOptional() const { return strconcat("token=", util::toHex(_token), diff --git a/src/DHTGetPeersReplyMessage.h b/src/DHTGetPeersReplyMessage.h index eb6f493e..cdb14358 100644 --- a/src/DHTGetPeersReplyMessage.h +++ b/src/DHTGetPeersReplyMessage.h @@ -66,9 +66,7 @@ public: virtual BDE getResponse(); - virtual std::string getMessageType() const; - - virtual void validate() const; + virtual const std::string& getMessageType() const; const std::vector >& getClosestKNodes() const { diff --git a/src/DHTMessage.h b/src/DHTMessage.h index e22890e9..c2c46eed 100644 --- a/src/DHTMessage.h +++ b/src/DHTMessage.h @@ -47,7 +47,7 @@ namespace aria2 { class DHTNode; class DHTMessage { -protected: +private: SharedHandle _localNode; SharedHandle _remoteNode; @@ -85,12 +85,17 @@ public: virtual bool isReply() const = 0; - virtual void validate() const = 0; + virtual void validate() const {} - virtual std::string getMessageType() const = 0; + virtual const std::string& getMessageType() const = 0; virtual std::string toString() const = 0; + const std::string& getVersion() const + { + return _version; + } + void setVersion(const std::string& version) { _version = version; diff --git a/src/DHTPingMessage.cc b/src/DHTPingMessage.cc index 45dc6401..5104940e 100644 --- a/src/DHTPingMessage.cc +++ b/src/DHTPingMessage.cc @@ -54,22 +54,22 @@ DHTPingMessage::~DHTPingMessage() {} void DHTPingMessage::doReceivedAction() { // send back ping reply - SharedHandle reply = _factory->createPingReplyMessage(_remoteNode, _localNode->getID(), _transactionID); - _dispatcher->addMessageToQueue(reply); + SharedHandle reply = + getMessageFactory()->createPingReplyMessage + (getRemoteNode(), getLocalNode()->getID(), getTransactionID()); + getMessageDispatcher()->addMessageToQueue(reply); } BDE DHTPingMessage::getArgument() { BDE aDict = BDE::dict(); - aDict[DHTMessage::ID] = BDE(_localNode->getID(), DHT_ID_LENGTH); + aDict[DHTMessage::ID] = BDE(getLocalNode()->getID(), DHT_ID_LENGTH); return aDict; } -std::string DHTPingMessage::getMessageType() const +const std::string& DHTPingMessage::getMessageType() const { return PING; } -void DHTPingMessage::validate() const {} - } // namespace aria2 diff --git a/src/DHTPingMessage.h b/src/DHTPingMessage.h index 46fd17c7..983e3211 100644 --- a/src/DHTPingMessage.h +++ b/src/DHTPingMessage.h @@ -52,9 +52,7 @@ public: virtual BDE getArgument(); - virtual std::string getMessageType() const; - - virtual void validate() const; + virtual const std::string& getMessageType() const; static const std::string PING; }; diff --git a/src/DHTPingReplyMessage.cc b/src/DHTPingReplyMessage.cc index 2f4a0f57..37b81f2a 100644 --- a/src/DHTPingReplyMessage.cc +++ b/src/DHTPingReplyMessage.cc @@ -63,11 +63,9 @@ BDE DHTPingReplyMessage::getResponse() return rDict; } -std::string DHTPingReplyMessage::getMessageType() const +const std::string& DHTPingReplyMessage::getMessageType() const { return PING; } -void DHTPingReplyMessage::validate() const {} - } // namespace aria2 diff --git a/src/DHTPingReplyMessage.h b/src/DHTPingReplyMessage.h index 5ac8098d..fbe00e10 100644 --- a/src/DHTPingReplyMessage.h +++ b/src/DHTPingReplyMessage.h @@ -55,9 +55,7 @@ public: virtual BDE getResponse(); - virtual std::string getMessageType() const; - - virtual void validate() const; + virtual const std::string& getMessageType() const; const unsigned char* getRemoteID() { diff --git a/src/DHTQueryMessage.cc b/src/DHTQueryMessage.cc index 17d6d874..7c91748a 100644 --- a/src/DHTQueryMessage.cc +++ b/src/DHTQueryMessage.cc @@ -51,7 +51,7 @@ DHTQueryMessage::DHTQueryMessage(const SharedHandle& localNode, DHTQueryMessage::~DHTQueryMessage() {} -std::string DHTQueryMessage::getType() const +const std::string& DHTQueryMessage::getType() const { return Q; } @@ -71,14 +71,14 @@ std::string DHTQueryMessage::toString() const { std::string s = strconcat ("dht query ", getMessageType(), - " TransactionID=", util::toHex(_transactionID), - " Remote:", _remoteNode->getIPAddress(), - ":", util::uitos(_remoteNode->getPort()), - ", id=", util::toHex(_remoteNode->getID(), DHT_ID_LENGTH), + " TransactionID=", util::toHex(getTransactionID()), + " Remote:", getRemoteNode()->getIPAddress(), + ":", util::uitos(getRemoteNode()->getPort()), + ", id=", util::toHex(getRemoteNode()->getID(), DHT_ID_LENGTH), ", "); - if(!_version.empty()) { + if(!getVersion().empty()) { s += "v="; - s += util::torrentPercentEncode(_version); + s += util::torrentPercentEncode(getVersion()); s += ", "; } s += toStringOptional(); diff --git a/src/DHTQueryMessage.h b/src/DHTQueryMessage.h index b19f278a..2cc0cab8 100644 --- a/src/DHTQueryMessage.h +++ b/src/DHTQueryMessage.h @@ -50,7 +50,7 @@ public: virtual ~DHTQueryMessage(); - virtual std::string getType() const; + virtual const std::string& getType() const; virtual void fillMessage(BDE& msgDict); diff --git a/src/DHTResponseMessage.cc b/src/DHTResponseMessage.cc index 1d51403c..e20e651b 100644 --- a/src/DHTResponseMessage.cc +++ b/src/DHTResponseMessage.cc @@ -49,7 +49,7 @@ DHTResponseMessage::DHTResponseMessage(const SharedHandle& localNode, DHTResponseMessage::~DHTResponseMessage() {} -std::string DHTResponseMessage::getType() const +const std::string& DHTResponseMessage::getType() const { return R; } @@ -68,14 +68,14 @@ std::string DHTResponseMessage::toString() const { std::string s = strconcat ("dht response ", getMessageType(), - " TransactionID=", util::toHex(_transactionID), - " Remote:", _remoteNode->getIPAddress(), - ":", util::uitos(_remoteNode->getPort()), - ", id=", util::toHex(_remoteNode->getID(), DHT_ID_LENGTH), + " TransactionID=", util::toHex(getTransactionID()), + " Remote:", getRemoteNode()->getIPAddress(), + ":", util::uitos(getRemoteNode()->getPort()), + ", id=", util::toHex(getRemoteNode()->getID(), DHT_ID_LENGTH), ", "); - if(!_version.empty()) { + if(!getVersion().empty()) { s += "v="; - s += util::torrentPercentEncode(_version); + s += util::torrentPercentEncode(getVersion()); s += ", "; } s += toStringOptional(); diff --git a/src/DHTResponseMessage.h b/src/DHTResponseMessage.h index c074f2af..d8cf958b 100644 --- a/src/DHTResponseMessage.h +++ b/src/DHTResponseMessage.h @@ -50,7 +50,7 @@ public: virtual ~DHTResponseMessage(); - virtual std::string getType() const; + virtual const std::string& getType() const; virtual void fillMessage(BDE& msgDict); diff --git a/src/DHTUnknownMessage.cc b/src/DHTUnknownMessage.cc index 21d0d8c1..81127741 100644 --- a/src/DHTUnknownMessage.cc +++ b/src/DHTUnknownMessage.cc @@ -77,9 +77,7 @@ bool DHTUnknownMessage::isReply() const return false; } -void DHTUnknownMessage::validate() const {} - -std::string DHTUnknownMessage::getMessageType() const +const std::string& DHTUnknownMessage::getMessageType() const { return UNKNOWN; } diff --git a/src/DHTUnknownMessage.h b/src/DHTUnknownMessage.h index 5b0fd648..7cac8d4b 100644 --- a/src/DHTUnknownMessage.h +++ b/src/DHTUnknownMessage.h @@ -62,10 +62,8 @@ public: // always return false virtual bool isReply() const; - virtual void validate() const; - // returns "unknown" - virtual std::string getMessageType() const; + virtual const std::string& getMessageType() const; // show some sample bytes virtual std::string toString() const; diff --git a/test/MockDHTMessage.h b/test/MockDHTMessage.h index d30523c7..1e5b2e80 100644 --- a/test/MockDHTMessage.h +++ b/test/MockDHTMessage.h @@ -38,11 +38,9 @@ public: void setReply(bool f) { _isReply = f; } - virtual std::string getMessageType() const { return _messageType; } + virtual const std::string& getMessageType() const { return _messageType; } virtual std::string toString() const { return "MockDHTMessage"; } - - virtual void validate() const {} }; } // namespace aria2