* gnu/packages/patches/websocket-fix-for-boost-1.70.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/web.scm (websocketpp): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
		
			
				
	
	
		
			103 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| This patch for Boost >= 1.70 was made by merging two patches that
 | |
| are in the 'develop' branch (c769c92 and f810ca2).
 | |
| 
 | |
| diff -u b/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
 | |
| --- b/websocketpp/transport/asio/connection.hpp
 | |
| +++ b/websocketpp/transport/asio/connection.hpp
 | |
| @@ -311,9 +311,10 @@
 | |
|       * 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) {
 | |
| @@ -461,8 +462,7 @@
 | |
|          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 -u b/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
 | |
| --- b/websocketpp/transport/asio/endpoint.hpp
 | |
| +++ b/websocketpp/transport/asio/endpoint.hpp
 | |
| @@ -195,8 +195,7 @@
 | |
|  
 | |
|          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();
 | |
| @@ -688,9 +687,7 @@
 | |
|       * @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
 | |
| @@ -854,8 +851,7 @@
 | |
|  
 | |
|          // 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);
 | |
| unchanged:
 | |
| --- a/websocketpp/transport/asio/security/none.hpp
 | |
| +++ b/websocketpp/transport/asio/security/none.hpp
 | |
| @@ -168,8 +168,7 @@ protected:
 | |
|              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);
 | |
| unchanged:
 | |
| --- a/websocketpp/transport/asio/security/tls.hpp
 | |
| +++ b/websocketpp/transport/asio/security/tls.hpp
 | |
| @@ -193,8 +193,7 @@ protected:
 | |
|          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());
 | |
| only in patch2:
 | |
| unchanged:
 | |
| --- 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)
 |