diff options
Diffstat (limited to 'src/DHTTokenTracker.cc')
| -rw-r--r-- | src/DHTTokenTracker.cc | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/DHTTokenTracker.cc b/src/DHTTokenTracker.cc index 3cec3aa1..33a9f836 100644 --- a/src/DHTTokenTracker.cc +++ b/src/DHTTokenTracker.cc @@ -60,39 +60,40 @@ DHTTokenTracker::DHTTokenTracker(const unsigned char* initialSecret) DHTTokenTracker::~DHTTokenTracker() {} -std::string DHTTokenTracker::generateToken -(const unsigned char* infoHash, - const std::string& ipaddr, uint16_t port, - const unsigned char* secret) const +std::string DHTTokenTracker::generateToken(const unsigned char* infoHash, + const std::string& ipaddr, + uint16_t port, + const unsigned char* secret) const { - unsigned char src[DHT_ID_LENGTH+COMPACT_LEN_IPV6+SECRET_SIZE]; + unsigned char src[DHT_ID_LENGTH + COMPACT_LEN_IPV6 + SECRET_SIZE]; memset(src, 0, sizeof(src)); - int compactlen = bittorrent::packcompact(src+DHT_ID_LENGTH, ipaddr, port); - if(compactlen == 0) { - throw DL_ABORT_EX - (fmt("Token generation failed: ipaddr=%s, port=%u", - ipaddr.c_str(), port)); + int compactlen = bittorrent::packcompact(src + DHT_ID_LENGTH, ipaddr, port); + if (compactlen == 0) { + throw DL_ABORT_EX(fmt("Token generation failed: ipaddr=%s, port=%u", + ipaddr.c_str(), port)); } memcpy(src, infoHash, DHT_ID_LENGTH); - memcpy(src+DHT_ID_LENGTH+COMPACT_LEN_IPV6, secret, SECRET_SIZE); + memcpy(src + DHT_ID_LENGTH + COMPACT_LEN_IPV6, secret, SECRET_SIZE); unsigned char md[20]; - message_digest::digest(md, sizeof(md), MessageDigest::sha1().get(), - src, sizeof(src)); + message_digest::digest(md, sizeof(md), MessageDigest::sha1().get(), src, + sizeof(src)); return std::string(&md[0], &md[sizeof(md)]); } std::string DHTTokenTracker::generateToken(const unsigned char* infoHash, - const std::string& ipaddr, uint16_t port) const + const std::string& ipaddr, + uint16_t port) const { return generateToken(infoHash, ipaddr, port, secret_[0]); } bool DHTTokenTracker::validateToken(const std::string& token, const unsigned char* infoHash, - const std::string& ipaddr, uint16_t port) const + const std::string& ipaddr, + uint16_t port) const { - for(auto & elem : secret_) { - if(generateToken(infoHash, ipaddr, port, elem) == token) { + for (auto& elem : secret_) { + if (generateToken(infoHash, ipaddr, port, elem) == token) { return true; } } |
