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.cc36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/lib/dcpomatic_socket.cc b/src/lib/dcpomatic_socket.cc
index 7aecf752f..876fa47d3 100644
--- a/src/lib/dcpomatic_socket.cc
+++ b/src/lib/dcpomatic_socket.cc
@@ -43,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));
@@ -278,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;
}
@@ -299,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);
}
@@ -321,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