Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1066)

Unified Diff: runtime/bin/socket_common_fuchsia.cc

Issue 2780063002: Pulled a significant portion of Socket implementation into BaseSocket in order to prepare for the s… (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/bin/socket_common_fuchsia.cc
diff --git a/runtime/bin/socket_fuchsia.cc b/runtime/bin/socket_common_fuchsia.cc
similarity index 71%
rename from runtime/bin/socket_fuchsia.cc
rename to runtime/bin/socket_common_fuchsia.cc
index b82b723aa77a961544900f6d3ddc24018cb03267..44d267e6e35b20570d9e143590211b23419845f6 100644
--- a/runtime/bin/socket_fuchsia.cc
+++ b/runtime/bin/socket_common_fuchsia.cc
@@ -8,7 +8,7 @@
#if defined(TARGET_OS_FUCHSIA)
#include "bin/socket.h"
-#include "bin/socket_fuchsia.h"
+#include "bin/socket_common_fuchsia.h"
#include <errno.h> // NOLINT
#include <fcntl.h> // NOLINT
@@ -55,8 +55,8 @@ namespace bin {
SocketAddress::SocketAddress(struct sockaddr* sa) {
ASSERT(INET6_ADDRSTRLEN >= INET_ADDRSTRLEN);
- if (!Socket::FormatNumericAddress(*reinterpret_cast<RawAddr*>(sa), as_string_,
- INET6_ADDRSTRLEN)) {
+ if (!BaseSocket::FormatNumericAddress(*reinterpret_cast<RawAddr*>(sa),
+ as_string_, INET6_ADDRSTRLEN)) {
as_string_[0] = 0;
}
socklen_t salen = GetAddrLength(*reinterpret_cast<RawAddr*>(sa));
@@ -64,15 +64,17 @@ SocketAddress::SocketAddress(struct sockaddr* sa) {
}
-bool Socket::FormatNumericAddress(const RawAddr& addr, char* address, int len) {
+bool BaseSocket::FormatNumericAddress(const RawAddr& addr,
+ char* address,
+ int len) {
socklen_t salen = SocketAddress::GetAddrLength(addr);
- LOG_INFO("Socket::FormatNumericAddress: calling getnameinfo\n");
+ LOG_INFO("BaseSocket::FormatNumericAddress: calling getnameinfo\n");
return (NO_RETRY_EXPECTED(getnameinfo(&addr.addr, salen, address, len, NULL,
0, NI_NUMERICHOST) == 0));
}
-bool Socket::Initialize() {
+bool BaseSocket::Initialize() {
// Nothing to do on Fuchsia.
return true;
}
@@ -124,28 +126,29 @@ intptr_t Socket::CreateConnect(const RawAddr& addr) {
intptr_t Socket::CreateBindConnect(const RawAddr& addr,
const RawAddr& source_addr) {
- LOG_ERR("Socket::CreateBindConnect is unimplemented\n");
+ LOG_ERR("BaseSocket::CreateBindConnect is unimplemented\n");
UNIMPLEMENTED();
return -1;
}
-bool Socket::IsBindError(intptr_t error_number) {
+bool BaseSocket::IsBindError(intptr_t error_number) {
return error_number == EADDRINUSE || error_number == EADDRNOTAVAIL ||
error_number == EINVAL;
}
-intptr_t Socket::Available(intptr_t fd) {
+intptr_t BaseSocket::Available(intptr_t fd) {
intptr_t available = FDUtils::AvailableBytes(fd);
- LOG_INFO("Socket::Available(%ld) = %ld\n", fd, available);
+ LOG_INFO("BaseSocket::Available(%ld) = %ld\n", fd, available);
return available;
}
-intptr_t Socket::Read(intptr_t fd, void* buffer, intptr_t num_bytes) {
+intptr_t BaseSocket::Read(intptr_t fd, void* buffer, intptr_t num_bytes) {
ASSERT(fd >= 0);
- LOG_INFO("Socket::Read: calling read(%ld, %p, %ld)\n", fd, buffer, num_bytes);
+ LOG_INFO("BaseSocket::Read: calling read(%ld, %p, %ld)\n", fd, buffer,
+ num_bytes);
ssize_t read_bytes = NO_RETRY_EXPECTED(read(fd, buffer, num_bytes));
ASSERT(EAGAIN == EWOULDBLOCK);
if ((read_bytes == -1) && (errno == EWOULDBLOCK)) {
@@ -153,28 +156,31 @@ intptr_t Socket::Read(intptr_t fd, void* buffer, intptr_t num_bytes) {
// as the number of bytes written.
read_bytes = 0;
} else if (read_bytes == -1) {
- LOG_ERR("Socket::Read: read(%ld, %p, %ld) failed\n", fd, buffer, num_bytes);
+ LOG_ERR("BaseSocket::Read: read(%ld, %p, %ld) failed\n", fd, buffer,
+ num_bytes);
} else {
- LOG_INFO("Socket::Read: read(%ld, %p, %ld) succeeded\n", fd, buffer,
+ LOG_INFO("BaseSocket::Read: read(%ld, %p, %ld) succeeded\n", fd, buffer,
num_bytes);
}
return read_bytes;
}
-intptr_t Socket::RecvFrom(intptr_t fd,
- void* buffer,
- intptr_t num_bytes,
- RawAddr* addr) {
- LOG_ERR("Socket::RecvFrom is unimplemented\n");
+intptr_t BaseSocket::RecvFrom(intptr_t fd,
+ void* buffer,
+ intptr_t num_bytes,
+ RawAddr* addr) {
+ LOG_ERR("BaseSocket::RecvFrom is unimplemented\n");
UNIMPLEMENTED();
return -1;
}
-intptr_t Socket::Write(intptr_t fd, const void* buffer, intptr_t num_bytes) {
+intptr_t BaseSocket::Write(intptr_t fd,
+ const void* buffer,
+ intptr_t num_bytes) {
ASSERT(fd >= 0);
- LOG_INFO("Socket::Write: calling write(%ld, %p, %ld)\n", fd, buffer,
+ LOG_INFO("BaseSocket::Write: calling write(%ld, %p, %ld)\n", fd, buffer,
num_bytes);
ssize_t written_bytes = NO_RETRY_EXPECTED(write(fd, buffer, num_bytes));
ASSERT(EAGAIN == EWOULDBLOCK);
@@ -183,31 +189,31 @@ intptr_t Socket::Write(intptr_t fd, const void* buffer, intptr_t num_bytes) {
// the number of bytes written.
written_bytes = 0;
} else if (written_bytes == -1) {
- LOG_ERR("Socket::Write: write(%ld, %p, %ld) failed\n", fd, buffer,
+ LOG_ERR("BaseSocket::Write: write(%ld, %p, %ld) failed\n", fd, buffer,
num_bytes);
} else {
- LOG_INFO("Socket::Write: write(%ld, %p, %ld) succeeded\n", fd, buffer,
+ LOG_INFO("BaseSocket::Write: write(%ld, %p, %ld) succeeded\n", fd, buffer,
num_bytes);
}
return written_bytes;
}
-intptr_t Socket::SendTo(intptr_t fd,
- const void* buffer,
- intptr_t num_bytes,
- const RawAddr& addr) {
- LOG_ERR("Socket::SendTo is unimplemented\n");
+intptr_t BaseSocket::SendTo(intptr_t fd,
+ const void* buffer,
+ intptr_t num_bytes,
+ const RawAddr& addr) {
+ LOG_ERR("BaseSocket::SendTo is unimplemented\n");
UNIMPLEMENTED();
return -1;
}
-intptr_t Socket::GetPort(intptr_t fd) {
+intptr_t BaseSocket::GetPort(intptr_t fd) {
ASSERT(fd >= 0);
RawAddr raw;
socklen_t size = sizeof(raw);
- LOG_INFO("Socket::GetPort: calling getsockname(%ld)\n", fd);
+ LOG_INFO("BaseSocket::GetPort: calling getsockname(%ld)\n", fd);
if (NO_RETRY_EXPECTED(getsockname(fd, &raw.addr, &size))) {
return 0;
}
@@ -215,7 +221,7 @@ intptr_t Socket::GetPort(intptr_t fd) {
}
-SocketAddress* Socket::GetRemotePeer(intptr_t fd, intptr_t* port) {
+SocketAddress* BaseSocket::GetRemotePeer(intptr_t fd, intptr_t* port) {
ASSERT(fd >= 0);
RawAddr raw;
socklen_t size = sizeof(raw);
@@ -227,29 +233,29 @@ SocketAddress* Socket::GetRemotePeer(intptr_t fd, intptr_t* port) {
}
-void Socket::GetError(intptr_t fd, OSError* os_error) {
- LOG_ERR("Socket::GetError is unimplemented\n");
+void BaseSocket::GetError(intptr_t fd, OSError* os_error) {
+ LOG_ERR("BaseSocket::GetError is unimplemented\n");
UNIMPLEMENTED();
}
-int Socket::GetType(intptr_t fd) {
- LOG_ERR("Socket::GetType is unimplemented\n");
+int BaseSocket::GetType(intptr_t fd) {
+ LOG_ERR("BaseSocket::GetType is unimplemented\n");
UNIMPLEMENTED();
return File::kOther;
}
-intptr_t Socket::GetStdioHandle(intptr_t num) {
- LOG_ERR("Socket::GetStdioHandle is unimplemented\n");
+intptr_t BaseSocket::GetStdioHandle(intptr_t num) {
+ LOG_ERR("BaseSocket::GetStdioHandle is unimplemented\n");
UNIMPLEMENTED();
return num;
}
-AddressList<SocketAddress>* Socket::LookupAddress(const char* host,
- int type,
- OSError** os_error) {
+AddressList<SocketAddress>* BaseSocket::LookupAddress(const char* host,
+ int type,
+ OSError** os_error) {
// Perform a name lookup for a host name.
struct addrinfo hints;
memset(&hints, 0, sizeof(hints));
@@ -258,13 +264,13 @@ AddressList<SocketAddress>* Socket::LookupAddress(const char* host,
hints.ai_flags = AI_ADDRCONFIG;
hints.ai_protocol = IPPROTO_TCP;
struct addrinfo* info = NULL;
- LOG_INFO("Socket::LookupAddress: calling getaddrinfo\n");
+ LOG_INFO("BaseSocket::LookupAddress: calling getaddrinfo\n");
int status = NO_RETRY_EXPECTED(getaddrinfo(host, 0, &hints, &info));
if (status != 0) {
// We failed, try without AI_ADDRCONFIG. This can happen when looking up
// e.g. '::1', when there are no global IPv6 addresses.
hints.ai_flags = 0;
- LOG_INFO("Socket::LookupAddress: calling getaddrinfo again\n");
+ LOG_INFO("BaseSocket::LookupAddress: calling getaddrinfo again\n");
status = NO_RETRY_EXPECTED(getaddrinfo(host, 0, &hints, &info));
if (status != 0) {
ASSERT(*os_error == NULL);
@@ -292,17 +298,17 @@ AddressList<SocketAddress>* Socket::LookupAddress(const char* host,
}
-bool Socket::ReverseLookup(const RawAddr& addr,
- char* host,
- intptr_t host_len,
- OSError** os_error) {
- LOG_ERR("Socket::ReverseLookup is unimplemented\n");
+bool BaseSocket::ReverseLookup(const RawAddr& addr,
+ char* host,
+ intptr_t host_len,
+ OSError** os_error) {
+ LOG_ERR("BaseSocket::ReverseLookup is unimplemented\n");
UNIMPLEMENTED();
return false;
}
-bool Socket::ParseAddress(int type, const char* address, RawAddr* addr) {
+bool BaseSocket::ParseAddress(int type, const char* address, RawAddr* addr) {
int result;
if (type == SocketAddress::TYPE_IPV4) {
result = NO_RETRY_EXPECTED(inet_pton(AF_INET, address, &addr->in.sin_addr));
@@ -316,18 +322,18 @@ bool Socket::ParseAddress(int type, const char* address, RawAddr* addr) {
intptr_t Socket::CreateBindDatagram(const RawAddr& addr, bool reuseAddress) {
- LOG_ERR("Socket::CreateBindDatagram is unimplemented\n");
+ LOG_ERR("BaseSocket::CreateBindDatagram is unimplemented\n");
UNIMPLEMENTED();
return -1;
}
-bool Socket::ListInterfacesSupported() {
+bool BaseSocket::ListInterfacesSupported() {
return false;
}
-AddressList<InterfaceSocketAddress>* Socket::ListInterfaces(
+AddressList<InterfaceSocketAddress>* BaseSocket::ListInterfaces(
int type,
OSError** os_error) {
UNIMPLEMENTED();
@@ -375,7 +381,7 @@ intptr_t ServerSocket::CreateBindListen(const RawAddr& addr,
// Test for invalid socket port 65535 (some browsers disallow it).
if ((SocketAddress::GetAddrPort(addr) == 0) &&
- (Socket::GetPort(fd) == 65535)) {
+ (BaseSocket::GetPort(fd) == 65535)) {
// Don't close the socket until we have created a new socket, ensuring
// that we do not get the bad port number again.
intptr_t new_fd = CreateBindListen(addr, backlog, v6_only);
@@ -449,20 +455,20 @@ intptr_t ServerSocket::Accept(intptr_t fd) {
}
-void Socket::Close(intptr_t fd) {
+void BaseSocket::Close(intptr_t fd) {
ASSERT(fd >= 0);
NO_RETRY_EXPECTED(close(fd));
}
-bool Socket::GetNoDelay(intptr_t fd, bool* enabled) {
- LOG_ERR("Socket::GetNoDelay is unimplemented\n");
+bool BaseSocket::GetNoDelay(intptr_t fd, bool* enabled) {
+ LOG_ERR("BaseSocket::GetNoDelay is unimplemented\n");
UNIMPLEMENTED();
return false;
}
-bool Socket::SetNoDelay(intptr_t fd, bool enabled) {
+bool BaseSocket::SetNoDelay(intptr_t fd, bool enabled) {
int on = enabled ? 1 : 0;
return NO_RETRY_EXPECTED(setsockopt(fd, IPPROTO_TCP, TCP_NODELAY,
reinterpret_cast<char*>(&on),
@@ -470,63 +476,67 @@ bool Socket::SetNoDelay(intptr_t fd, bool enabled) {
}
-bool Socket::GetMulticastLoop(intptr_t fd, intptr_t protocol, bool* enabled) {
- LOG_ERR("Socket::GetMulticastLoop is unimplemented\n");
+bool BaseSocket::GetMulticastLoop(intptr_t fd,
+ intptr_t protocol,
+ bool* enabled) {
+ LOG_ERR("BaseSocket::GetMulticastLoop is unimplemented\n");
UNIMPLEMENTED();
return false;
}
-bool Socket::SetMulticastLoop(intptr_t fd, intptr_t protocol, bool enabled) {
- LOG_ERR("Socket::SetMulticastLoop is unimplemented\n");
+bool BaseSocket::SetMulticastLoop(intptr_t fd,
+ intptr_t protocol,
+ bool enabled) {
+ LOG_ERR("BaseSocket::SetMulticastLoop is unimplemented\n");
UNIMPLEMENTED();
return false;
}
-bool Socket::GetMulticastHops(intptr_t fd, intptr_t protocol, int* value) {
- LOG_ERR("Socket::GetMulticastHops is unimplemented\n");
+bool BaseSocket::GetMulticastHops(intptr_t fd, intptr_t protocol, int* value) {
+ LOG_ERR("BaseSocket::GetMulticastHops is unimplemented\n");
UNIMPLEMENTED();
return false;
}
-bool Socket::SetMulticastHops(intptr_t fd, intptr_t protocol, int value) {
- LOG_ERR("Socket::SetMulticastHops is unimplemented\n");
+bool BaseSocket::SetMulticastHops(intptr_t fd, intptr_t protocol, int value) {
+ LOG_ERR("BaseSocket::SetMulticastHops is unimplemented\n");
UNIMPLEMENTED();
return false;
}
-bool Socket::GetBroadcast(intptr_t fd, bool* enabled) {
- LOG_ERR("Socket::GetBroadcast is unimplemented\n");
+bool BaseSocket::GetBroadcast(intptr_t fd, bool* enabled) {
+ LOG_ERR("BaseSocket::GetBroadcast is unimplemented\n");
UNIMPLEMENTED();
return false;
}
-bool Socket::SetBroadcast(intptr_t fd, bool enabled) {
- LOG_ERR("Socket::SetBroadcast is unimplemented\n");
+bool BaseSocket::SetBroadcast(intptr_t fd, bool enabled) {
+ LOG_ERR("BaseSocket::SetBroadcast is unimplemented\n");
UNIMPLEMENTED();
return false;
}
-bool Socket::JoinMulticast(intptr_t fd,
- const RawAddr& addr,
- const RawAddr&,
- int interfaceIndex) {
- LOG_ERR("Socket::JoinMulticast is unimplemented\n");
+bool BaseSocket::JoinMulticast(intptr_t fd,
+ const RawAddr& addr,
+ const RawAddr&,
+ int interfaceIndex) {
+ LOG_ERR("BaseSocket::JoinMulticast is unimplemented\n");
UNIMPLEMENTED();
return false;
}
-bool Socket::LeaveMulticast(intptr_t fd,
- const RawAddr& addr,
- const RawAddr&,
- int interfaceIndex) {
- LOG_ERR("Socket::LeaveMulticast is unimplemented\n");
+bool BaseSocket::LeaveMulticast(intptr_t fd,
+ const RawAddr& addr,
+ const RawAddr&,
+ int interfaceIndex) {
+ LOG_ERR("BaseSocket::LeaveMulticast is unimplemented\n");
UNIMPLEMENTED();
return false;
}

Powered by Google App Engine
This is Rietveld 408576698