From c769c9238ad62178f506038178714a1c35aa2769 Mon Sep 17 00:00:00 2001
From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com>
Date: Tue, 16 Apr 2019 08:38:01 +0200
Subject: [PATCH 1/2] Replace make_shared with new in some cases

Replace make_shared for asio types that take a lib::ref as a parameter.
This should fix the ASIO change (boostorg/asio@59066d8) for 1.70,
while keeping it backwards compatible to older boost versions.
---
 websocketpp/transport/asio/connection.hpp    | 7 ++++---
 websocketpp/transport/asio/endpoint.hpp      | 3 +--
 websocketpp/transport/asio/security/none.hpp | 3 +--
 websocketpp/transport/asio/security/tls.hpp  | 3 +--
 4 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
index 60f88a79..1ccda8f3 100644
--- a/websocketpp/transport/asio/connection.hpp
+++ b/websocketpp/transport/asio/connection.hpp
@@ -311,9 +311,10 @@ class connection : public config::socket_type::socket_con_type {
      * needed.
      */
     timer_ptr set_timer(long duration, timer_handler callback) {
-        timer_ptr new_timer = lib::make_shared<lib::asio::steady_timer>(
-            lib::ref(*m_io_service),
-            lib::asio::milliseconds(duration)
+        timer_ptr new_timer(
+            new lib::asio::steady_timer(
+                *m_io_service,
+                lib::asio::milliseconds(duration))
         );
 
         if (config::enable_multithreading) {
diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
index ddab2c74..4b719a97 100644
--- a/websocketpp/transport/asio/endpoint.hpp
+++ b/websocketpp/transport/asio/endpoint.hpp
@@ -195,8 +195,7 @@ class endpoint : public config::socket_type {
 
         m_io_service = ptr;
         m_external_io_service = true;
-        m_acceptor = lib::make_shared<lib::asio::ip::tcp::acceptor>(
-            lib::ref(*m_io_service));
+        m_acceptor.reset(new lib::asio::ip::tcp::acceptor(*m_io_service));
 
         m_state = READY;
         ec = lib::error_code();
diff --git a/websocketpp/transport/asio/security/none.hpp b/websocketpp/transport/asio/security/none.hpp
index 5c8293db..6c7d3524 100644
--- a/websocketpp/transport/asio/security/none.hpp
+++ b/websocketpp/transport/asio/security/none.hpp
@@ -168,8 +168,7 @@ class connection : public lib::enable_shared_from_this<connection> {
             return socket::make_error_code(socket::error::invalid_state);
         }
 
-        m_socket = lib::make_shared<lib::asio::ip::tcp::socket>(
-            lib::ref(*service));
+        m_socket.reset(new lib::asio::ip::tcp::socket(*service));
 
         if (m_socket_init_handler) {
             m_socket_init_handler(m_hdl, *m_socket);
diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
index c76fd9aa..04ac3790 100644
--- a/websocketpp/transport/asio/security/tls.hpp
+++ b/websocketpp/transport/asio/security/tls.hpp
@@ -193,8 +193,7 @@ class connection : public lib::enable_shared_from_this<connection> {
         if (!m_context) {
             return socket::make_error_code(socket::error::invalid_tls_context);
         }
-        m_socket = lib::make_shared<socket_type>(
-            _WEBSOCKETPP_REF(*service),lib::ref(*m_context));
+        m_socket.reset(new socket_type(*service, *m_context));
 
         if (m_socket_init_handler) {
             m_socket_init_handler(m_hdl, get_socket());

From f810ca2e800e9b55be41c5911cf1d1185fcd516b Mon Sep 17 00:00:00 2001
From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com>
Date: Wed, 17 Apr 2019 10:06:18 +0000
Subject: [PATCH 2/2] Fix missed entries; fix testing

---
 CMakeLists.txt                            | 2 +-
 websocketpp/transport/asio/connection.hpp | 3 +--
 websocketpp/transport/asio/endpoint.hpp   | 7 ++-----
 3 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2786aba9..951de975 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -202,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
 	endif ()
 
     if (NOT Boost_USE_STATIC_LIBS)
-        add_definitions (/DBOOST_TEST_DYN_LINK)
+        add_definitions (-DBOOST_TEST_DYN_LINK)
     endif ()
 
     set (Boost_FIND_REQUIRED TRUE)
diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
index 1ccda8f3..57dda74a 100644
--- a/websocketpp/transport/asio/connection.hpp
+++ b/websocketpp/transport/asio/connection.hpp
@@ -462,8 +462,7 @@ class connection : public config::socket_type::socket_con_type {
         m_io_service = io_service;
 
         if (config::enable_multithreading) {
-            m_strand = lib::make_shared<lib::asio::io_service::strand>(
-                lib::ref(*io_service));
+            m_strand.reset(new lib::asio::io_service::strand(*io_service));
         }
 
         lib::error_code ec = socket_con_type::init_asio(io_service, m_strand,
diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
index 4b719a97..94509adb 100644
--- a/websocketpp/transport/asio/endpoint.hpp
+++ b/websocketpp/transport/asio/endpoint.hpp
@@ -687,9 +687,7 @@ class endpoint : public config::socket_type {
      * @since 0.3.0
      */
     void start_perpetual() {
-        m_work = lib::make_shared<lib::asio::io_service::work>(
-            lib::ref(*m_io_service)
-        );
+        m_work.reset(new lib::asio::io_service::work(*m_io_service));
     }
 
     /// Clears the endpoint's perpetual flag, allowing it to exit when empty
@@ -853,8 +851,7 @@ class endpoint : public config::socket_type {
 
         // Create a resolver
         if (!m_resolver) {
-            m_resolver = lib::make_shared<lib::asio::ip::tcp::resolver>(
-                lib::ref(*m_io_service));
+            m_resolver.reset(new lib::asio::ip::tcp::resolver(*m_io_service));
         }
 
         tcon->set_uri(u);
