diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-03-17 14:38:17 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-03-22 13:29:58 +0100 |
| commit | 7bd3e8150a0e321ec61cf4953baeb6f45d4611a9 (patch) | |
| tree | 4553f01167d7a39c8f3ae8cdd1914f9f6e6a9af4 /src/lib/dcpomatic_socket.cc | |
| parent | 9dd72fc481349f0b5ce985164441eecfa6485c19 (diff) | |
Remove deprecated/removed use of resolver::query.
Diffstat (limited to 'src/lib/dcpomatic_socket.cc')
| -rw-r--r-- | src/lib/dcpomatic_socket.cc | 41 |
1 files changed, 37 insertions, 4 deletions
diff --git a/src/lib/dcpomatic_socket.cc b/src/lib/dcpomatic_socket.cc index f34d6fb53..9ccbd0af8 100644 --- a/src/lib/dcpomatic_socket.cc +++ b/src/lib/dcpomatic_socket.cc @@ -59,15 +59,17 @@ Socket::check () } +#ifdef DCPOMATIC_HAVE_BOOST_ASIO_IP_BASIC_RESOLVER_RESULTS + /** Blocking connect. * @param endpoint End-point to connect to. */ void -Socket::connect (boost::asio::ip::tcp::endpoint endpoint) +Socket::connect(boost::asio::ip::basic_resolver_results<boost::asio::ip::tcp> endpoints) { set_deadline_from_now(_timeout); boost::system::error_code ec = boost::asio::error::would_block; - _socket.async_connect (endpoint, boost::lambda::var(ec) = boost::lambda::_1); + boost::asio::async_connect(_socket, endpoints, boost::lambda::var(ec) = boost::lambda::_1); do { _io_context.run_one(); } while (ec == boost::asio::error::would_block); @@ -81,9 +83,36 @@ Socket::connect (boost::asio::ip::tcp::endpoint endpoint) } if (_send_buffer_size) { - boost::asio::socket_base::send_buffer_size old_size; - _socket.get_option(old_size); + boost::asio::socket_base::send_buffer_size new_size(*_send_buffer_size); + _socket.set_option(new_size); + } +} + +#endif + +/** Blocking connect. + * @param endpoint End-point to connect to. + */ +void +Socket::connect(boost::asio::ip::tcp::endpoint endpoint) +{ + set_deadline_from_now(_timeout); + boost::system::error_code ec = boost::asio::error::would_block; + _socket.async_connect (endpoint, boost::lambda::var(ec) = boost::lambda::_1); + do { + _io_context.run_one(); + } while (ec == boost::asio::error::would_block); + + if (ec) { + throw NetworkError (String::compose (_("error during async_connect (%1)"), ec.value ())); + } + + if (!_socket.is_open ()) { + throw NetworkError (_("connect timed out")); + } + + if (_send_buffer_size) { boost::asio::socket_base::send_buffer_size new_size(*_send_buffer_size); _socket.set_option(new_size); } @@ -94,8 +123,12 @@ void Socket::connect(string host_name, int port) { boost::asio::ip::tcp::resolver resolver(_io_context); +#ifdef DCPOMATIC_HAVE_BOOST_ASIO_IP_BASIC_RESOLVER_RESULTS + connect(resolver.resolve(host_name, fmt::to_string(port))); +#else boost::asio::ip::tcp::resolver::query query(host_name, fmt::to_string(port)); connect(*resolver.resolve(query)); +#endif } |
