summaryrefslogtreecommitdiff
path: root/src/lib/dcpomatic_socket.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/dcpomatic_socket.cc')
-rw-r--r--src/lib/dcpomatic_socket.cc45
1 files changed, 26 insertions, 19 deletions
diff --git a/src/lib/dcpomatic_socket.cc b/src/lib/dcpomatic_socket.cc
index 9507128a2..876fa47d3 100644
--- a/src/lib/dcpomatic_socket.cc
+++ b/src/lib/dcpomatic_socket.cc
@@ -19,7 +19,6 @@
*/
-#include "compose.hpp"
#include "dcpomatic_assert.h"
#include "dcpomatic_log.h"
#include "dcpomatic_socket.h"
@@ -44,16 +43,20 @@ Socket::Socket (int timeout)
, _socket(_io_context)
, _timeout (timeout)
{
- _deadline.expires_at (boost::posix_time::pos_infin);
- check ();
+ _deadline.expires_at(std::chrono::time_point<std::chrono::system_clock>::max());
+ check();
}
void
Socket::check ()
{
- if (_deadline.expires_at() <= boost::asio::deadline_timer::traits_type::now ()) {
- _socket.close ();
- _deadline.expires_at (boost::posix_time::pos_infin);
+#if BOOST_VERSION >= 108700
+ if (_deadline.expiry() <= std::chrono::system_clock::now()) {
+#else
+ if (_deadline.expires_at() <= std::chrono::system_clock::now()) {
+#endif
+ _socket.close();
+ _deadline.expires_at(std::chrono::time_point<std::chrono::system_clock>::max());
}
_deadline.async_wait (boost::bind (&Socket::check, this));
@@ -76,7 +79,7 @@ Socket::connect(boost::asio::ip::basic_resolver_results<boost::asio::ip::tcp> en
} while (ec == boost::asio::error::would_block);
if (ec) {
- throw NetworkError(String::compose(_("error during async_connect: (%1)"), error_details(ec)));
+ throw NetworkError(fmt::format(_("error during async_connect: ({})"), error_details(ec)));
}
if (!_socket.is_open ()) {
@@ -106,7 +109,7 @@ Socket::connect(boost::asio::ip::tcp::endpoint endpoint)
} while (ec == boost::asio::error::would_block);
if (ec) {
- throw NetworkError(String::compose(_("error during async_connect (%1)"), error_details(ec)));
+ throw NetworkError(fmt::format(_("error during async_connect ({})"), error_details(ec)));
}
if (!_socket.is_open ()) {
@@ -157,7 +160,7 @@ Socket::write (uint8_t const * data, int size)
} while (ec == boost::asio::error::would_block);
if (ec) {
- throw NetworkError(String::compose(_("error during async_write (%1)"), error_details(ec)));
+ throw NetworkError(fmt::format(_("error during async_write ({})"), error_details(ec)));
}
if (_write_digester) {
@@ -198,7 +201,7 @@ Socket::read (uint8_t* data, int size)
} while (ec == boost::asio::error::would_block);
if (ec) {
- throw NetworkError(String::compose(_("error during async_read (%1)"), error_details(ec)));
+ throw NetworkError(fmt::format(_("error during async_read ({})"), error_details(ec)));
}
if (_read_digester) {
@@ -279,18 +282,18 @@ Socket::check_read_digest ()
DCPOMATIC_ASSERT (_read_digester);
int const size = _read_digester->size ();
- uint8_t ref[size];
- _read_digester->get (ref);
+ std::vector<uint8_t> ref(size);
+ _read_digester->get(ref.data());
/* Make sure _read_digester is gone before we call read() so that the digest
* isn't itself digested.
*/
_read_digester.reset ();
- uint8_t actual[size];
- read (actual, size);
+ std::vector<uint8_t> actual(size);
+ read(actual.data(), size);
- return memcmp(ref, actual, size) == 0;
+ return ref == actual;
}
@@ -300,15 +303,15 @@ Socket::finish_write_digest ()
DCPOMATIC_ASSERT (_write_digester);
int const size = _write_digester->size();
- uint8_t buffer[size];
- _write_digester->get (buffer);
+ std::vector<uint8_t> buffer(size);
+ _write_digester->get(buffer.data());
/* Make sure _write_digester is gone before we call write() so that the digest
* isn't itself digested.
*/
_write_digester.reset ();
- write (buffer, size);
+ write(buffer.data(), size);
}
@@ -322,7 +325,11 @@ Socket::set_send_buffer_size (int size)
void
Socket::set_deadline_from_now(int seconds)
{
- _deadline.expires_from_now(boost::posix_time::seconds(seconds));
+#if BOOST_VERSION >= 108700
+ _deadline.expires_after(std::chrono::seconds(seconds));
+#else
+ _deadline.expires_from_now(std::chrono::seconds(seconds));
+#endif
}
void