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

Unified Diff: runtime/bin/socket.cc

Issue 2780063002: Pulled a significant portion of Socket implementation into BaseSocket in order to prepare for the s… (Closed)
Patch Set: Minor change to socket_common_unsupported.cc 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.cc
diff --git a/runtime/bin/socket.cc b/runtime/bin/socket.cc
index 500252487edf67b8a9766a6683d96ae65d04b51b..1a8a1fa341edf5a009a65761d849b5cfb03ad7c8 100644
--- a/runtime/bin/socket.cc
+++ b/runtime/bin/socket.cc
@@ -24,12 +24,12 @@ namespace bin {
static const int kSocketIdNativeField = 0;
-ListeningSocketRegistry* globalTcpListeningSocketRegistry = NULL;
-
bool short_socket_read = false;
bool short_socket_write = false;
+ListeningSocketRegistry* globalTcpListeningSocketRegistry = NULL;
zra 2017/03/30 19:59:44 Why move this?
bkonyi 2017/04/01 23:41:18 I had moved it before I had decided to refactor, m
+
void ListeningSocketRegistry::Initialize() {
ASSERT(globalTcpListeningSocketRegistry == NULL);
globalTcpListeningSocketRegistry = new ListeningSocketRegistry();
@@ -148,7 +148,6 @@ Dart_Handle ListeningSocketRegistry::CreateBindListen(Dart_Handle socket_object,
// socket_object.
Socket::ReuseSocketIdNativeField(socket_object, os_socket->socketfd,
true);
-
return Dart_True();
}
}
@@ -168,7 +167,7 @@ Dart_Handle ListeningSocketRegistry::CreateBindListen(Dart_Handle socket_object,
OSError os_error(-1, "Failed to start accept", OSError::kUnknown);
return DartUtils::NewDartOSError(&os_error);
}
- intptr_t allocated_port = Socket::GetPort(fd);
+ intptr_t allocated_port = BaseSocket::GetPort(fd);
ASSERT(allocated_port > 0);
if (allocated_port != port) {
@@ -268,33 +267,6 @@ bool ListeningSocketRegistry::CloseSafe(Socket* socketfd) {
}
-void FUNCTION_NAME(InternetAddress_Parse)(Dart_NativeArguments args) {
- const char* address =
- DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0));
- ASSERT(address != NULL);
- RawAddr raw;
- memset(&raw, 0, sizeof(raw));
- int type = strchr(address, ':') == NULL ? SocketAddress::TYPE_IPV4
- : SocketAddress::TYPE_IPV6;
- if (type == SocketAddress::TYPE_IPV4) {
- raw.addr.sa_family = AF_INET;
- } else {
- raw.addr.sa_family = AF_INET6;
- }
- bool ok = Socket::ParseAddress(type, address, &raw);
- if (!ok) {
- Dart_SetReturnValue(args, Dart_Null());
- } else {
- Dart_SetReturnValue(args, SocketAddress::ToTypedData(raw));
- }
-}
-
-
-void FUNCTION_NAME(NetworkInterface_ListSupported)(Dart_NativeArguments args) {
- Dart_SetReturnValue(args, Dart_NewBoolean(Socket::ListInterfacesSupported()));
-}
-
-
void FUNCTION_NAME(Socket_CreateConnect)(Dart_NativeArguments args) {
RawAddr addr;
SocketAddress::GetSockAddr(Dart_GetNativeArgument(args, 1), &addr);
@@ -332,12 +304,6 @@ void FUNCTION_NAME(Socket_CreateBindConnect)(Dart_NativeArguments args) {
}
}
-void FUNCTION_NAME(Socket_IsBindError)(Dart_NativeArguments args) {
- intptr_t error_number =
- DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 1));
- bool is_bind_error = Socket::IsBindError(error_number);
- Dart_SetReturnValue(args, is_bind_error ? Dart_True() : Dart_False());
-}
void FUNCTION_NAME(Socket_CreateBindDatagram)(Dart_NativeArguments args) {
RawAddr addr;
@@ -361,7 +327,7 @@ void FUNCTION_NAME(Socket_CreateBindDatagram)(Dart_NativeArguments args) {
void FUNCTION_NAME(Socket_Available)(Dart_NativeArguments args) {
Socket* socket =
Socket::GetSocketIdNativeField(Dart_GetNativeArgument(args, 0));
- intptr_t available = Socket::Available(socket->fd());
+ intptr_t available = BaseSocket::Available(socket->fd());
if (available >= 0) {
Dart_SetReturnValue(args, Dart_NewInteger(available));
} else {
@@ -386,7 +352,7 @@ void FUNCTION_NAME(Socket_Read)(Dart_NativeArguments args) {
Dart_PropagateError(result);
}
ASSERT(buffer != NULL);
- intptr_t bytes_read = Socket::Read(socket->fd(), buffer, length);
+ intptr_t bytes_read = BaseSocket::Read(socket->fd(), buffer, length);
if (bytes_read == length) {
Dart_SetReturnValue(args, result);
} else if (bytes_read > 0) {
@@ -426,7 +392,7 @@ void FUNCTION_NAME(Socket_RecvFrom)(Dart_NativeArguments args) {
reinterpret_cast<uint8_t*>(malloc(65536));
}
RawAddr addr;
- intptr_t bytes_read = Socket::RecvFrom(
+ intptr_t bytes_read = BaseSocket::RecvFrom(
socket->fd(), isolate_data->udp_receive_buffer, 65536, &addr);
if (bytes_read == 0) {
Dart_SetReturnValue(args, Dart_Null());
@@ -457,7 +423,7 @@ void FUNCTION_NAME(Socket_RecvFrom)(Dart_NativeArguments args) {
}
// Format the address to a string using the numeric format.
char numeric_address[INET6_ADDRSTRLEN];
- Socket::FormatNumericAddress(addr, numeric_address, INET6_ADDRSTRLEN);
+ BaseSocket::FormatNumericAddress(addr, numeric_address, INET6_ADDRSTRLEN);
// Create a Datagram object with the data and sender address and port.
const int kNumArgs = 4;
@@ -507,7 +473,7 @@ void FUNCTION_NAME(Socket_WriteList)(Dart_NativeArguments args) {
}
ASSERT((offset + length) <= len);
buffer += offset;
- intptr_t bytes_written = Socket::Write(socket->fd(), buffer, length);
+ intptr_t bytes_written = BaseSocket::Write(socket->fd(), buffer, length);
if (bytes_written >= 0) {
Dart_TypedDataReleaseData(buffer_obj);
if (short_write) {
@@ -549,7 +515,8 @@ void FUNCTION_NAME(Socket_SendTo)(Dart_NativeArguments args) {
}
ASSERT((offset + length) <= len);
buffer += offset;
- intptr_t bytes_written = Socket::SendTo(socket->fd(), buffer, length, addr);
+ intptr_t bytes_written =
+ BaseSocket::SendTo(socket->fd(), buffer, length, addr);
if (bytes_written >= 0) {
Dart_TypedDataReleaseData(buffer_obj);
Dart_SetReturnValue(args, Dart_NewInteger(bytes_written));
@@ -566,7 +533,7 @@ void FUNCTION_NAME(Socket_GetPort)(Dart_NativeArguments args) {
Socket* socket =
Socket::GetSocketIdNativeField(Dart_GetNativeArgument(args, 0));
OSError os_error;
- intptr_t port = Socket::GetPort(socket->fd());
+ intptr_t port = BaseSocket::GetPort(socket->fd());
if (port > 0) {
Dart_SetReturnValue(args, Dart_NewInteger(port));
} else {
@@ -580,7 +547,7 @@ void FUNCTION_NAME(Socket_GetRemotePeer)(Dart_NativeArguments args) {
Socket::GetSocketIdNativeField(Dart_GetNativeArgument(args, 0));
OSError os_error;
intptr_t port = 0;
- SocketAddress* addr = Socket::GetRemotePeer(socket->fd(), &port);
+ SocketAddress* addr = BaseSocket::GetRemotePeer(socket->fd(), &port);
if (addr != NULL) {
Dart_Handle list = Dart_NewList(2);
@@ -605,7 +572,7 @@ void FUNCTION_NAME(Socket_GetError)(Dart_NativeArguments args) {
Socket* socket =
Socket::GetSocketIdNativeField(Dart_GetNativeArgument(args, 0));
OSError os_error;
- Socket::GetError(socket->fd(), &os_error);
+ BaseSocket::GetError(socket->fd(), &os_error);
Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error));
}
@@ -614,7 +581,7 @@ void FUNCTION_NAME(Socket_GetType)(Dart_NativeArguments args) {
Socket* socket =
Socket::GetSocketIdNativeField(Dart_GetNativeArgument(args, 0));
OSError os_error;
- intptr_t type = Socket::GetType(socket->fd());
+ intptr_t type = BaseSocket::GetType(socket->fd());
if (type >= 0) {
Dart_SetReturnValue(args, Dart_NewInteger(type));
} else {
@@ -626,7 +593,7 @@ void FUNCTION_NAME(Socket_GetType)(Dart_NativeArguments args) {
void FUNCTION_NAME(Socket_GetStdioHandle)(Dart_NativeArguments args) {
int64_t num =
DartUtils::GetInt64ValueCheckRange(Dart_GetNativeArgument(args, 1), 0, 2);
- intptr_t socket = Socket::GetStdioHandle(num);
+ intptr_t socket = BaseSocket::GetStdioHandle(num);
Socket::SetSocketIdNativeField(Dart_GetNativeArgument(args, 0), socket,
false);
Dart_SetReturnValue(args, Dart_NewBoolean(socket >= 0));
@@ -689,7 +656,7 @@ CObject* Socket::LookupRequest(const CObjectArray& request) {
CObject* result = NULL;
OSError* os_error = NULL;
AddressList<SocketAddress>* addresses =
- Socket::LookupAddress(host.CString(), type.Value(), &os_error);
+ BaseSocket::LookupAddress(host.CString(), type.Value(), &os_error);
if (addresses != NULL) {
CObjectArray* array =
new CObjectArray(CObject::NewArray(addresses->count() + 1));
@@ -744,7 +711,7 @@ CObject* Socket::ReverseLookupRequest(const CObjectArray& request) {
OSError* os_error = NULL;
const intptr_t kMaxHostLength = 1025;
char host[kMaxHostLength];
- if (Socket::ReverseLookup(addr, host, kMaxHostLength, &os_error)) {
+ if (BaseSocket::ReverseLookup(addr, host, kMaxHostLength, &os_error)) {
return new CObjectString(CObject::NewString(host));
} else {
CObject* result = CObject::NewOSError(os_error);
@@ -762,7 +729,7 @@ CObject* Socket::ListInterfacesRequest(const CObjectArray& request) {
CObject* result = NULL;
OSError* os_error = NULL;
AddressList<InterfaceSocketAddress>* addresses =
- Socket::ListInterfaces(type.Value(), &os_error);
+ BaseSocket::ListInterfaces(type.Value(), &os_error);
if (addresses != NULL) {
CObjectArray* array =
new CObjectArray(CObject::NewArray(addresses->count() + 1));
@@ -816,7 +783,7 @@ void FUNCTION_NAME(Socket_GetOption)(Dart_NativeArguments args) {
switch (option) {
case 0: { // TCP_NODELAY.
bool enabled;
- ok = Socket::GetNoDelay(socket->fd(), &enabled);
+ ok = BaseSocket::GetNoDelay(socket->fd(), &enabled);
if (ok) {
Dart_SetReturnValue(args, enabled ? Dart_True() : Dart_False());
}
@@ -824,7 +791,7 @@ void FUNCTION_NAME(Socket_GetOption)(Dart_NativeArguments args) {
}
case 1: { // IP_MULTICAST_LOOP.
bool enabled;
- ok = Socket::GetMulticastLoop(socket->fd(), protocol, &enabled);
+ ok = BaseSocket::GetMulticastLoop(socket->fd(), protocol, &enabled);
if (ok) {
Dart_SetReturnValue(args, enabled ? Dart_True() : Dart_False());
}
@@ -832,7 +799,7 @@ void FUNCTION_NAME(Socket_GetOption)(Dart_NativeArguments args) {
}
case 2: { // IP_MULTICAST_TTL.
int value;
- ok = Socket::GetMulticastHops(socket->fd(), protocol, &value);
+ ok = BaseSocket::GetMulticastHops(socket->fd(), protocol, &value);
if (ok) {
Dart_SetReturnValue(args, Dart_NewInteger(value));
}
@@ -844,7 +811,7 @@ void FUNCTION_NAME(Socket_GetOption)(Dart_NativeArguments args) {
}
case 4: { // IP_BROADCAST.
bool enabled;
- ok = Socket::GetBroadcast(socket->fd(), &enabled);
+ ok = BaseSocket::GetBroadcast(socket->fd(), &enabled);
if (ok) {
Dart_SetReturnValue(args, enabled ? Dart_True() : Dart_False());
}
@@ -871,17 +838,17 @@ void FUNCTION_NAME(Socket_SetOption)(Dart_NativeArguments args) {
SocketAddress::TYPE_IPV6);
switch (option) {
case 0: // TCP_NODELAY.
- result = Socket::SetNoDelay(
+ result = BaseSocket::SetNoDelay(
socket->fd(),
DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 3)));
break;
case 1: // IP_MULTICAST_LOOP.
- result = Socket::SetMulticastLoop(
+ result = BaseSocket::SetMulticastLoop(
socket->fd(), protocol,
DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 3)));
break;
case 2: // IP_MULTICAST_TTL.
- result = Socket::SetMulticastHops(
+ result = BaseSocket::SetMulticastHops(
socket->fd(), protocol,
DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 3)));
break;
@@ -890,7 +857,7 @@ void FUNCTION_NAME(Socket_SetOption)(Dart_NativeArguments args) {
break;
}
case 4: // IP_BROADCAST.
- result = Socket::SetBroadcast(
+ result = BaseSocket::SetBroadcast(
socket->fd(),
DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 3)));
break;
@@ -917,7 +884,8 @@ void FUNCTION_NAME(Socket_JoinMulticast)(Dart_NativeArguments args) {
}
int interfaceIndex =
DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 3));
- if (Socket::JoinMulticast(socket->fd(), addr, interface, interfaceIndex)) {
+ if (BaseSocket::JoinMulticast(socket->fd(), addr, interface,
+ interfaceIndex)) {
Dart_SetReturnValue(args, Dart_Null());
} else {
Dart_SetReturnValue(args, DartUtils::NewDartOSError());
@@ -936,7 +904,8 @@ void FUNCTION_NAME(Socket_LeaveMulticast)(Dart_NativeArguments args) {
}
int interfaceIndex =
DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 3));
- if (Socket::LeaveMulticast(socket->fd(), addr, interface, interfaceIndex)) {
+ if (BaseSocket::LeaveMulticast(socket->fd(), addr, interface,
+ interfaceIndex)) {
Dart_SetReturnValue(args, Dart_Null());
} else {
Dart_SetReturnValue(args, DartUtils::NewDartOSError());

Powered by Google App Engine
This is Rietveld 408576698