summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-03-17 14:38:17 +0100
committerCarl Hetherington <cth@carlh.net>2025-03-22 13:29:58 +0100
commit7bd3e8150a0e321ec61cf4953baeb6f45d4611a9 (patch)
tree4553f01167d7a39c8f3ae8cdd1914f9f6e6a9af4 /src
parent9dd72fc481349f0b5ce985164441eecfa6485c19 (diff)
Remove deprecated/removed use of resolver::query.
Diffstat (limited to 'src')
-rw-r--r--src/lib/dcpomatic_socket.cc41
-rw-r--r--src/lib/dcpomatic_socket.h6
-rw-r--r--src/lib/encode_server_finder.cc9
3 files changed, 49 insertions, 7 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
}
diff --git a/src/lib/dcpomatic_socket.h b/src/lib/dcpomatic_socket.h
index 37b7ba830..1bc3aead9 100644
--- a/src/lib/dcpomatic_socket.h
+++ b/src/lib/dcpomatic_socket.h
@@ -46,6 +46,7 @@ public:
}
void set_send_buffer_size (int size);
+
void connect(std::string host_name, int port);
void connect(boost::asio::ip::address address, int port);
@@ -94,7 +95,10 @@ private:
bool check_read_digest ();
void start_write_digest ();
void finish_write_digest ();
- void connect(boost::asio::ip::tcp::endpoint);
+ void connect(boost::asio::ip::tcp::endpoint endpoint);
+#ifdef DCPOMATIC_HAVE_BOOST_ASIO_IP_BASIC_RESOLVER_RESULTS
+ void connect(boost::asio::ip::basic_resolver_results<boost::asio::ip::tcp> endpoints);
+#endif
dcpomatic::io_context _io_context;
boost::asio::deadline_timer _deadline;
diff --git a/src/lib/encode_server_finder.cc b/src/lib/encode_server_finder.cc
index e9636620c..1a0329dd7 100644
--- a/src/lib/encode_server_finder.cc
+++ b/src/lib/encode_server_finder.cc
@@ -136,9 +136,14 @@ try
for (auto const& i: Config::instance()->servers()) {
try {
boost::asio::ip::udp::resolver resolver(io_context);
+#ifdef DCPOMATIC_HAVE_BOOST_ASIO_IP_BASIC_RESOLVER_RESULTS
+ boost::asio::connect(socket, resolver.resolve(i, fmt::to_string(HELLO_PORT)));
+ socket.send(boost::asio::buffer(data.c_str(), data.size() + 1));
+#else
boost::asio::ip::udp::resolver::query query(i, fmt::to_string(HELLO_PORT));
- boost::asio::ip::udp::endpoint end_point (*resolver.resolve(query));
- socket.send_to (boost::asio::buffer(data.c_str(), data.size() + 1), end_point);
+ boost::asio::ip::udp::endpoint end_point(*resolver.resolve(query));
+ socket.send_to(boost::asio::buffer(data.c_str(), data.size() + 1), end_point);
+#endif
} catch (...) {
}