diff options
Diffstat (limited to 'src/lib/dcpomatic_socket.cc')
| -rw-r--r-- | src/lib/dcpomatic_socket.cc | 36 |
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 |
