From 30d5f7bea544f27c3ba9ae468b6b840784e7f1bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Thu, 14 Apr 2016 23:05:37 -0400 Subject: [PATCH] msgpack: add support for 1.4+ --- CMakeLists.txt | 1 + configure.ac | 1 + include/opendht/value.h | 2 +- src/dht.cpp | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 40cc1570..8bfdc475 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,7 @@ option (OPENDHT_TOOLS "Build DHT tools" ON) option (OPENDHT_DEBUG "Build with debug flags" OFF) set (CMAKE_CXX_FLAGS "-pthread -std=c++11 -Wno-return-type -Wall -Wextra -Wnon-virtual-dtor ${CMAKE_CXX_FLAGS}") +set (CMAKE_CXX_FLAGS "-DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT ${CMAKE_CXX_FLAGS}") find_package (GnuTLS 3.1 REQUIRED) find_package (Msgpack 1.2 REQUIRED) diff --git a/configure.ac b/configure.ac index c9be035e..1f167462 100644 --- a/configure.ac +++ b/configure.ac @@ -78,6 +78,7 @@ PKG_PROG_PKG_CONFIG() PKG_CHECK_MODULES([nettle], [nettle >= 2.4]) PKG_CHECK_MODULES([GNUTLS], [gnutls >= 3.1]) PKG_CHECK_MODULES([msgpack], [msgpack >= 1.2]) +CXXFLAGS="${CXXFLAGS} -DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT" AC_ARG_ENABLE([tools], AS_HELP_STRING([--disable-tools],[Disable tools (CLI DHT node)]),,build_tools=yes) AM_CONDITIONAL(ENABLE_TOOLS, test x$build_tools == xyes) diff --git a/include/opendht/value.h b/include/opendht/value.h index 52114500..774e0358 100644 --- a/include/opendht/value.h +++ b/include/opendht/value.h @@ -197,7 +197,7 @@ struct Value virtual void unpackValue(const Value& v) { auto msg = msgpack::unpack((const char*)v.data.data(), v.data.size()); - msg.get().convert(static_cast<Derived*>(this)); + msg.get().convert(*static_cast<Derived*>(this)); } virtual Value packValue() const { diff --git a/src/dht.cpp b/src/dht.cpp index 9a9271f5..35a82ade 100644 --- a/src/dht.cpp +++ b/src/dht.cpp @@ -2846,7 +2846,7 @@ Dht::importValues(const std::vector<ValuesExport>& import) try { msgpack::unpacked msg; - msgpack::unpack(&msg, (const char*)h.second.data(), h.second.size()); + msgpack::unpack(msg, (const char*)h.second.data(), h.second.size()); auto valarr = msg.get(); if (valarr.type != msgpack::type::ARRAY) throw msgpack::type_error(); -- GitLab