Chromium Code Reviews| 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()); |