From f86f2a179ec3bb7fd0680b8509b0ebecb3dad91a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Wed, 18 May 2016 04:03:08 -0400 Subject: [PATCH] contrib: bump opendht * bump OpenDHT to 0.6.1 * adapt to new APIs * bump msgpack dependency Tuleap: #709 Change-Id: I32bf62d085dc51ea49ee3594529e5d11cda0b4ce --- contrib/src/msgpack/rules.mak | 2 +- contrib/src/opendht/rules.mak | 4 ++-- src/ringdht/ringaccount.cpp | 32 +++++++++++++++----------------- src/ringdht/ringaccount.h | 8 ++++---- 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/contrib/src/msgpack/rules.mak b/contrib/src/msgpack/rules.mak index d8d255f7fc..18ec422bbe 100644 --- a/contrib/src/msgpack/rules.mak +++ b/contrib/src/msgpack/rules.mak @@ -1,5 +1,5 @@ # MSGPACK -MSGPACK_VERSION := cpp-1.2.0 +MSGPACK_VERSION := 068041f05eb1b8ab2930a7679dfe89ba7d14cb79 MSGPACK_URL := https://github.com/msgpack/msgpack-c/archive/$(MSGPACK_VERSION).tar.gz PKGS += msgpack diff --git a/contrib/src/opendht/rules.mak b/contrib/src/opendht/rules.mak index 66d9b8d722..c616fb8b3f 100644 --- a/contrib/src/opendht/rules.mak +++ b/contrib/src/opendht/rules.mak @@ -1,5 +1,5 @@ # OPENDHT -OPENDHT_VERSION := 13f8c13ac4ebb3b43474d91ca48b42a1019083f4 +OPENDHT_VERSION := 0.6.1 OPENDHT_URL := https://github.com/savoirfairelinux/opendht/archive/$(OPENDHT_VERSION).tar.gz PKGS += opendht @@ -8,7 +8,7 @@ PKGS_FOUND += opendht endif # Avoid building distro-provided dependencies in case opendht was built manually -ifneq ($(call need_pkg,"msgpack >= 1.1"),) +ifneq ($(call need_pkg,"msgpack >= 1.2"),) DEPS_opendht += msgpack endif ifneq ($(call need_pkg,"gnutls >= 3.3.0"),) diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp index 8d16386da6..2f86693f55 100644 --- a/src/ringdht/ringaccount.cpp +++ b/src/ringdht/ringaccount.cpp @@ -57,8 +57,6 @@ #include "security/certstore.h" -#include <opendht/securedht.h> - #include <yaml-cpp/yaml.h> #include <algorithm> @@ -773,9 +771,9 @@ RingAccount::doRegister() } static constexpr const char* -dhtStatusStr(dht::Dht::Status status) { - return status == dht::Dht::Status::Connected ? "connected" : ( - status == dht::Dht::Status::Connecting ? "connecting" : +dhtStatusStr(dht::NodeStatus status) { + return status == dht::NodeStatus::Connected ? "connected" : ( + status == dht::NodeStatus::Connecting ? "connecting" : "disconnected"); } @@ -791,17 +789,17 @@ RingAccount::doRegister_() } auto identity = loadIdentity(); - dht_.setOnStatusChanged([this](dht::Dht::Status s4, dht::Dht::Status s6) { + dht_.setOnStatusChanged([this](dht::NodeStatus s4, dht::NodeStatus s6) { RING_WARN("Dht status : IPv4 %s; IPv6 %s", dhtStatusStr(s4), dhtStatusStr(s6)); RegistrationState state; switch (std::max(s4, s6)) { - case dht::Dht::Status::Connecting: + case dht::NodeStatus::Connecting: state = RegistrationState::TRYING; break; - case dht::Dht::Status::Connected: + case dht::NodeStatus::Connected: state = RegistrationState::REGISTERED; break; - case dht::Dht::Status::Disconnected: + case dht::NodeStatus::Disconnected: state = RegistrationState::UNREGISTERED; break; default: @@ -1156,7 +1154,7 @@ RingAccount::saveTreatedMessages() const } void -RingAccount::saveNodes(const std::vector<dht::Dht::NodeExport>& nodes) const +RingAccount::saveNodes(const std::vector<dht::NodeExport>& nodes) const { if (nodes.empty()) return; @@ -1174,7 +1172,7 @@ RingAccount::saveNodes(const std::vector<dht::Dht::NodeExport>& nodes) const } void -RingAccount::saveValues(const std::vector<dht::Dht::ValuesExport>& values) const +RingAccount::saveValues(const std::vector<dht::ValuesExport>& values) const { fileutils::check_dir(dataPath_.c_str()); for (const auto& v : values) { @@ -1184,10 +1182,10 @@ RingAccount::saveValues(const std::vector<dht::Dht::ValuesExport>& values) const } } -std::vector<dht::Dht::NodeExport> +std::vector<dht::NodeExport> RingAccount::loadNodes() const { - std::vector<dht::Dht::NodeExport> nodes; + std::vector<dht::NodeExport> nodes; std::string nodesPath = cachePath_+DIR_SEPARATOR_STR "nodes"; { std::ifstream file(nodesPath); @@ -1202,24 +1200,24 @@ RingAccount::loadNodes() const std::string id, ipstr; if (!(iss >> id >> ipstr)) { break; } IpAddr ip {ipstr}; - dht::Dht::NodeExport e {dht::InfoHash(id), ip, ip.getLength()}; + dht::NodeExport e {dht::InfoHash(id), ip, ip.getLength()}; nodes.push_back(e); } } return nodes; } -std::vector<dht::Dht::ValuesExport> +std::vector<dht::ValuesExport> RingAccount::loadValues() const { - std::vector<dht::Dht::ValuesExport> values; + std::vector<dht::ValuesExport> values; const auto dircontent(fileutils::readDirectory(dataPath_)); for (const auto& fname : dircontent) { const auto file = dataPath_+DIR_SEPARATOR_STR+fname; try { std::ifstream ifs(file, std::ifstream::in | std::ifstream::binary); std::istreambuf_iterator<char> begin(ifs), end; - values.emplace_back(dht::Dht::ValuesExport{dht::InfoHash(fname), std::vector<uint8_t>{begin, end}}); + values.emplace_back(dht::ValuesExport{dht::InfoHash(fname), std::vector<uint8_t>{begin, end}}); } catch (const std::exception& e) { RING_ERR("Error reading value: %s", e.what()); } diff --git a/src/ringdht/ringaccount.h b/src/ringdht/ringaccount.h index 6fda37811e..dd16a51e61 100644 --- a/src/ringdht/ringaccount.h +++ b/src/ringdht/ringaccount.h @@ -344,8 +344,8 @@ class RingAccount : public SIPAccountBase { void checkIdentityPath(); void saveIdentity(const dht::crypto::Identity id, const std::string& path) const; - void saveNodes(const std::vector<dht::Dht::NodeExport>&) const; - void saveValues(const std::vector<dht::Dht::ValuesExport>&) const; + void saveNodes(const std::vector<dht::NodeExport>&) const; + void saveValues(const std::vector<dht::ValuesExport>&) const; void loadTreatedCalls(); void saveTreatedCalls() const; @@ -361,8 +361,8 @@ class RingAccount : public SIPAccountBase { * Otherwise, generate a new identity and returns it. */ dht::crypto::Identity loadIdentity(); - std::vector<dht::Dht::NodeExport> loadNodes() const; - std::vector<dht::Dht::ValuesExport> loadValues() const; + std::vector<dht::NodeExport> loadNodes() const; + std::vector<dht::ValuesExport> loadValues() const; bool dhtPublicInCalls_ {true}; -- GitLab