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