summaryrefslogtreecommitdiffstats
path: root/base/sync_socket_nacl.cc
diff options
context:
space:
mode:
authordalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-21 20:09:52 +0000
committerdalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-21 20:09:52 +0000
commitc124bdbd7e9d0420046984828cc121a209d44da5 (patch)
tree978d9ba8620492a9e69b227e6f9683b10837234b /base/sync_socket_nacl.cc
parent98501238ffde5025cee7025eec17e8e1b57b13fe (diff)
downloadchromium_src-c124bdbd7e9d0420046984828cc121a209d44da5.zip
chromium_src-c124bdbd7e9d0420046984828cc121a209d44da5.tar.gz
chromium_src-c124bdbd7e9d0420046984828cc121a209d44da5.tar.bz2
Add write() impl to SyncSocket for NaCl. Fix shutdown leaks.
Necessary for https://codereview.chromium.org/22886005/ Also fixes return codes from size_t methods to avoid signed values from being returned. BUG=289124 TEST=build nacl, audio still works. Review URL: https://codereview.chromium.org/27029009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229895 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/sync_socket_nacl.cc')
-rw-r--r--base/sync_socket_nacl.cc18
1 files changed, 10 insertions, 8 deletions
diff --git a/base/sync_socket_nacl.cc b/base/sync_socket_nacl.cc
index db15035..ebe4c9af 100644
--- a/base/sync_socket_nacl.cc
+++ b/base/sync_socket_nacl.cc
@@ -11,7 +11,6 @@
#include "base/logging.h"
-
namespace base {
const SyncSocket::Handle SyncSocket::kInvalidHandle = -1;
@@ -20,6 +19,7 @@ SyncSocket::SyncSocket() : handle_(kInvalidHandle) {
}
SyncSocket::~SyncSocket() {
+ Close();
}
// static
@@ -31,18 +31,19 @@ bool SyncSocket::Close() {
if (handle_ != kInvalidHandle) {
if (close(handle_) < 0)
DPLOG(ERROR) << "close";
- handle_ = -1;
+ handle_ = kInvalidHandle;
}
return true;
}
size_t SyncSocket::Send(const void* buffer, size_t length) {
- // Not implemented since it's not needed by any client code yet.
- return -1;
+ const ssize_t bytes_written = write(handle_, buffer, length);
+ return bytes_written > 0 ? bytes_written : 0;
}
size_t SyncSocket::Receive(void* buffer, size_t length) {
- return read(handle_, buffer, length);
+ const ssize_t bytes_read = read(handle_, buffer, length);
+ return bytes_read > 0 ? bytes_read : 0;
}
size_t SyncSocket::ReceiveWithTimeout(void* buffer, size_t length, TimeDelta) {
@@ -51,7 +52,8 @@ size_t SyncSocket::ReceiveWithTimeout(void* buffer, size_t length, TimeDelta) {
}
size_t SyncSocket::Peek() {
- return -1;
+ NOTIMPLEMENTED();
+ return 0;
}
CancelableSyncSocket::CancelableSyncSocket() {
@@ -62,11 +64,11 @@ CancelableSyncSocket::CancelableSyncSocket(Handle handle)
}
size_t CancelableSyncSocket::Send(const void* buffer, size_t length) {
- return -1;
+ return Send(buffer, length);
}
bool CancelableSyncSocket::Shutdown() {
- return false;
+ return Close();
}
// static