fix build with boost-1.70 (#3788)

fix build with boost 1.70.0 Fix #3683
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
This commit is contained in:
Arvid Norberg 2019-04-19 20:56:19 +02:00 committed by GitHub
parent 66b0ab9089
commit 76c2794923
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 36 additions and 24 deletions

View File

@ -38,9 +38,12 @@ POSSIBILITY OF SUCH DAMAGE.
#else #else
#include "libtorrent/aux_/disable_warnings_push.hpp" #include "libtorrent/aux_/disable_warnings_push.hpp"
#include <boost/asio/io_service.hpp> #include <boost/asio/io_service.hpp>
#include <boost/version.hpp>
#include "libtorrent/aux_/disable_warnings_pop.hpp" #include "libtorrent/aux_/disable_warnings_pop.hpp"
#endif // SIMULATOR #endif // SIMULATOR
#include "libtorrent/io_service_fwd.hpp"
namespace libtorrent { namespace libtorrent {
#if defined TORRENT_BUILD_SIMULATOR #if defined TORRENT_BUILD_SIMULATOR

View File

@ -55,10 +55,19 @@ namespace boost { namespace asio {
namespace libtorrent { namespace libtorrent {
#if defined TORRENT_BUILD_SIMULATOR #if defined TORRENT_BUILD_SIMULATOR
typedef sim::asio::io_service io_service; using io_service = sim::asio::io_service;
#else #else
typedef boost::asio::io_service io_service; using io_service = boost::asio::io_service;
#endif #endif
#if BOOST_VERSION >= 107000
template <typename T>
io_service& get_io_service(T& o) { return static_cast<io_service&>(o.get_executor().context()); }
#else
template <typename T>
io_service& get_io_service(T& o) { return o.get_io_service(); }
#endif
} }
#endif #endif

View File

@ -246,7 +246,7 @@ public:
io_service& get_io_service() io_service& get_io_service()
{ {
return m_sock.get_io_service(); return lt::get_io_service(m_sock);
} }
lowest_layer_type& lowest_layer() lowest_layer_type& lowest_layer()

View File

@ -259,7 +259,7 @@ namespace libtorrent {
virtual void on_timeout(error_code const& ec) = 0; virtual void on_timeout(error_code const& ec) = 0;
virtual ~timeout_handler(); virtual ~timeout_handler();
io_service& get_io_service() { return m_timeout.get_io_service(); } io_service& get_io_service() { return lt::get_io_service(m_timeout); }
private: private:

View File

@ -61,7 +61,7 @@ namespace libtorrent {
static constexpr udp_send_flags_t dont_fragment = 3_bit; static constexpr udp_send_flags_t dont_fragment = 3_bit;
bool is_open() const { return m_abort == false; } bool is_open() const { return m_abort == false; }
io_service& get_io_service() { return m_socket.get_io_service(); } io_service& get_io_service() { return lt::get_io_service(m_socket); }
template <typename Handler> template <typename Handler>
void async_read(Handler&& h) void async_read(Handler&& h)

View File

@ -173,7 +173,7 @@ namespace libtorrent {
// buffer pool won't exist anymore, and crash. This prevents that. // buffer pool won't exist anymore, and crash. This prevents that.
m_threads.emplace_back(&pool_thread_interface::thread_fun m_threads.emplace_back(&pool_thread_interface::thread_fun
, &m_thread_iface, std::ref(*this) , &m_thread_iface, std::ref(*this)
, io_service::work(m_idle_timer.get_io_service())); , io_service::work(get_io_service(m_idle_timer)));
} }
} }

View File

@ -148,7 +148,7 @@ void http_connection::get(std::string const& url, time_duration timeout, int pri
if (ec) if (ec)
{ {
m_timer.get_io_service().post(std::bind(&http_connection::callback lt::get_io_service(m_timer).post(std::bind(&http_connection::callback
, me, ec, span<char>{})); , me, ec, span<char>{}));
return; return;
} }
@ -160,7 +160,7 @@ void http_connection::get(std::string const& url, time_duration timeout, int pri
) )
{ {
error_code err(errors::unsupported_url_protocol); error_code err(errors::unsupported_url_protocol);
m_timer.get_io_service().post(std::bind(&http_connection::callback lt::get_io_service(m_timer).post(std::bind(&http_connection::callback
, me, err, span<char>{})); , me, err, span<char>{}));
return; return;
} }
@ -258,7 +258,7 @@ void http_connection::start(std::string const& hostname, int port
if (ec) if (ec)
{ {
m_timer.get_io_service().post(std::bind(&http_connection::callback lt::get_io_service(m_timer).post(std::bind(&http_connection::callback
, me, ec, span<char>{})); , me, ec, span<char>{}));
return; return;
} }
@ -297,7 +297,7 @@ void http_connection::start(std::string const& hostname, int port
#if TORRENT_USE_I2P #if TORRENT_USE_I2P
if (i2p_conn->proxy().type != settings_pack::i2p_proxy) if (i2p_conn->proxy().type != settings_pack::i2p_proxy)
{ {
m_timer.get_io_service().post(std::bind(&http_connection::callback lt::get_io_service(m_timer).post(std::bind(&http_connection::callback
, me, error_code(errors::no_i2p_router), span<char>{})); , me, error_code(errors::no_i2p_router), span<char>{}));
return; return;
} }
@ -332,8 +332,8 @@ void http_connection::start(std::string const& hostname, int port
m_ssl_ctx->set_verify_mode(ssl::context::verify_none, ec); m_ssl_ctx->set_verify_mode(ssl::context::verify_none, ec);
if (ec) if (ec)
{ {
m_timer.get_io_service().post(std::bind(&http_connection::callback lt::get_io_service(m_timer).post(std::bind(&http_connection::callback
, me, ec, span<char>{})); , me, ec, span<char>{}));
return; return;
} }
} }
@ -344,7 +344,7 @@ void http_connection::start(std::string const& hostname, int port
// assume this is not a tracker connection. Tracker connections that // assume this is not a tracker connection. Tracker connections that
// shouldn't be subject to the proxy should pass in nullptr as the proxy // shouldn't be subject to the proxy should pass in nullptr as the proxy
// pointer. // pointer.
instantiate_connection(m_timer.get_io_service() instantiate_connection(lt::get_io_service(m_timer)
, proxy ? *proxy : null_proxy, m_sock, userdata, nullptr, false, false); , proxy ? *proxy : null_proxy, m_sock, userdata, nullptr, false, false);
if (m_bind_addr) if (m_bind_addr)
@ -353,7 +353,7 @@ void http_connection::start(std::string const& hostname, int port
m_sock.bind(tcp::endpoint(*m_bind_addr, 0), ec); m_sock.bind(tcp::endpoint(*m_bind_addr, 0), ec);
if (ec) if (ec)
{ {
m_timer.get_io_service().post(std::bind(&http_connection::callback lt::get_io_service(m_timer).post(std::bind(&http_connection::callback
, me, ec, span<char>{})); , me, ec, span<char>{}));
return; return;
} }
@ -362,7 +362,7 @@ void http_connection::start(std::string const& hostname, int port
setup_ssl_hostname(m_sock, hostname, ec); setup_ssl_hostname(m_sock, hostname, ec);
if (ec) if (ec)
{ {
m_timer.get_io_service().post(std::bind(&http_connection::callback lt::get_io_service(m_timer).post(std::bind(&http_connection::callback
, me, ec, span<char>{})); , me, ec, span<char>{}));
return; return;
} }

View File

@ -130,7 +130,7 @@ namespace libtorrent { namespace dht {
// must use piecewise construction because tracker_node::connection_timer // must use piecewise construction because tracker_node::connection_timer
// is neither copyable nor movable // is neither copyable nor movable
auto n = m_nodes.emplace(std::piecewise_construct_t(), std::forward_as_tuple(s) auto n = m_nodes.emplace(std::piecewise_construct_t(), std::forward_as_tuple(s)
, std::forward_as_tuple(m_key_refresh_timer.get_io_service() , std::forward_as_tuple(get_io_service(m_key_refresh_timer)
, s, this, m_settings, nid, m_log, m_counters , s, this, m_settings, nid, m_log, m_counters
, std::bind(&dht_tracker::get_node, this, _1, _2) , std::bind(&dht_tracker::get_node, this, _1, _2)
, m_storage)); , m_storage));

View File

@ -100,11 +100,11 @@ void lsd::debug_log(char const* fmt, ...) const
void lsd::start(error_code& ec) void lsd::start(error_code& ec)
{ {
m_socket.open(std::bind(&lsd::on_announce, self(), _1, _2) m_socket.open(std::bind(&lsd::on_announce, self(), _1, _2)
, m_broadcast_timer.get_io_service(), ec); , lt::get_io_service(m_broadcast_timer), ec);
if (ec) return; if (ec) return;
m_socket6.open(std::bind(&lsd::on_announce, self(), _1, _2) m_socket6.open(std::bind(&lsd::on_announce, self(), _1, _2)
, m_broadcast_timer.get_io_service(), ec); , lt::get_io_service(m_broadcast_timer), ec);
} }
lsd::~lsd() = default; lsd::~lsd() = default;

View File

@ -160,13 +160,13 @@ void natpmp::start(address local_address, std::string device)
// try to find one even if the listen socket isn't bound to a device // try to find one even if the listen socket isn't bound to a device
if (device.empty()) if (device.empty())
{ {
device = device_for_address(local_address, m_socket.get_io_service(), ec); device = device_for_address(local_address, get_io_service(m_socket), ec);
// if this fails fall back to using the first default gateway in the // if this fails fall back to using the first default gateway in the
// routing table // routing table
ec.clear(); ec.clear();
} }
auto const route = get_default_route(m_socket.get_io_service() auto const route = get_default_route(get_io_service(m_socket)
, device, local_address.is_v6(), ec); , device, local_address.is_v6(), ec);
if (!route) if (!route)
@ -194,7 +194,7 @@ void natpmp::start(address local_address, std::string device)
if (local_address.is_unspecified()) if (local_address.is_unspecified())
{ {
std::vector<ip_interface> const net = enum_net_interfaces( std::vector<ip_interface> const net = enum_net_interfaces(
m_socket.get_io_service(), ec); get_io_service(m_socket), ec);
auto const it = std::find_if(net.begin(), net.end(), [&](ip_interface const& i) auto const it = std::find_if(net.begin(), net.end(), [&](ip_interface const& i)
{ {

View File

@ -492,7 +492,7 @@ void udp_socket::set_proxy_settings(aux::proxy_settings const& ps)
{ {
// connect to socks5 server and open up the UDP tunnel // connect to socks5 server and open up the UDP tunnel
m_socks5_connection = std::make_shared<socks5>(m_socket.get_io_service()); m_socks5_connection = std::make_shared<socks5>(lt::get_io_service(m_socket));
m_socks5_connection->start(ps); m_socks5_connection->start(ps);
} }
} }

View File

@ -121,7 +121,7 @@ void upnp::start()
error_code ec; error_code ec;
m_socket.open(std::bind(&upnp::on_reply, self(), _1, _2) m_socket.open(std::bind(&upnp::on_reply, self(), _1, _2)
, m_refresh_timer.get_io_service(), ec); , lt::get_io_service(m_refresh_timer), ec);
m_mappings.reserve(10); m_mappings.reserve(10);
} }

View File

@ -462,7 +462,7 @@ std::shared_ptr<torrent_info> setup_peer(tcp::socket& s, sha1_hash& ih
} }
else else
{ {
tcp::acceptor l(s.get_io_service()); tcp::acceptor l(lt::get_io_service(s));
l.open(tcp::v4()); l.open(tcp::v4());
l.bind(tcp::endpoint(address_v4::from_string("127.0.0.1"), 0)); l.bind(tcp::endpoint(address_v4::from_string("127.0.0.1"), 0));
l.listen(); l.listen();