summaryrefslogtreecommitdiff
path: root/src/lib/util.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-07-27 21:12:53 +0100
committerCarl Hetherington <cth@carlh.net>2012-07-27 21:12:53 +0100
commit480a14fd2fd9937e2450c652f2953d5835f56239 (patch)
tree15bd9adfaa764aed0c06f868b2fa3cff9260c36e /src/lib/util.cc
parent8b07c8131e535579f39c1899f063ccedc425eeb8 (diff)
Compiles.
Diffstat (limited to 'src/lib/util.cc')
-rw-r--r--src/lib/util.cc36
1 files changed, 5 insertions, 31 deletions
diff --git a/src/lib/util.cc b/src/lib/util.cc
index 9896bff60..1bd8f4318 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -281,40 +281,15 @@ dependency_version_summary ()
return s.str ();
}
-#ifdef DVDOMATIC_POSIX
-/** Write some data to a socket.
- * @param fd Socket file descriptor.
- * @param data Data.
- * @param size Amount to write, in bytes.
- */
-void
-socket_write (int fd, uint8_t const * data, int size)
-{
- uint8_t const * p = data;
- while (size) {
- int const n = send (fd, p, size, MSG_NOSIGNAL);
- if (n < 0) {
- stringstream s;
- s << "could not write (" << strerror (errno) << ")";
- throw NetworkError (s.str ());
- }
-
- size -= n;
- p += n;
- }
-}
-#endif
-
double
seconds (struct timeval t)
{
return t.tv_sec + (double (t.tv_usec) / 1e6);
}
-#ifdef DVDOMATIC_POSIX
-/** @param fd File descriptor to read from */
-SocketReader::SocketReader (int fd)
- : _fd (fd)
+/** @param socket Socket to read from */
+SocketReader::SocketReader (shared_ptr<asio::ip::tcp::socket> socket)
+ : _socket (socket)
, _buffer_data (0)
{
@@ -356,7 +331,7 @@ SocketReader::read_definite_and_consume (uint8_t* data, int size)
/* read() the rest */
while (size > 0) {
- int const n = ::read (_fd, data, size);
+ int const n = asio::read (*_socket, asio::buffer (data, size));
if (n <= 0) {
throw NetworkError ("could not read");
}
@@ -379,7 +354,7 @@ SocketReader::read_indefinite (uint8_t* data, int size)
int to_read = size - _buffer_data;
while (to_read > 0) {
/* read as much of it as we can (into our buffer) */
- int const n = ::read (_fd, _buffer + _buffer_data, to_read);
+ int const n = asio::read (*_socket, asio::buffer (_buffer + _buffer_data, to_read));
if (n <= 0) {
throw NetworkError ("could not read");
}
@@ -394,7 +369,6 @@ SocketReader::read_indefinite (uint8_t* data, int size)
assert (size >= _buffer_data);
memcpy (data, _buffer, size);
}
-#endif
#ifdef DVDOMATIC_POSIX
void