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