/* */ #include "DHTQueryMessage.h" #include "DHTNode.h" #include "util.h" #include "a2functional.h" namespace aria2 { const std::string DHTQueryMessage::Q("q"); const std::string DHTQueryMessage::A("a"); DHTQueryMessage::DHTQueryMessage(const SharedHandle& localNode, const SharedHandle& remoteNode, const std::string& transactionID): DHTAbstractMessage(localNode, remoteNode, transactionID) {} DHTQueryMessage::~DHTQueryMessage() {} const std::string& DHTQueryMessage::getType() const { return Q; } void DHTQueryMessage::fillMessage(Dict* msgDict) { msgDict->put(Q, getMessageType()); msgDict->put(A, getArgument()); } bool DHTQueryMessage::isReply() const { return false; } std::string DHTQueryMessage::toString() const { std::string s = strconcat ("dht query ", getMessageType(), " TransactionID=", util::toHex(getTransactionID()), " Remote:", getRemoteNode()->getIPAddress(), ":", util::uitos(getRemoteNode()->getPort()), ", id=", util::toHex(getRemoteNode()->getID(), DHT_ID_LENGTH), ", "); if(!getVersion().empty()) { s += "v="; s += util::torrentPercentEncode(getVersion()); s += ", "; } s += toStringOptional(); return s; } } // namespace aria2