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

Unified Diff: runtime/bin/socket_common_win.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_win.cc
diff --git a/runtime/bin/socket_win.cc b/runtime/bin/socket_common_win.cc
similarity index 85%
rename from runtime/bin/socket_win.cc
rename to runtime/bin/socket_common_win.cc
index 55cc107e7125a00d592a425abdc8e41f3e986974..94d02943d0ec177c43c5721c58f55aef874d2a0c 100644
--- a/runtime/bin/socket_win.cc
+++ b/runtime/bin/socket_common_win.cc
@@ -8,7 +8,7 @@
#if defined(TARGET_OS_WINDOWS)
#include "bin/socket.h"
-#include "bin/socket_win.h"
+#include "bin/socket_common_win.h"
#include "bin/builtin.h"
#include "bin/eventhandler.h"
@@ -28,7 +28,8 @@ SocketAddress::SocketAddress(struct sockaddr* sockaddr) {
// Clear the port before calling WSAAddressToString as WSAAddressToString
// includes the port in the formatted string.
- int err = Socket::FormatNumericAddress(*raw, as_string_, INET6_ADDRSTRLEN);
+ int err =
+ BaseSocket::FormatNumericAddress(*raw, as_string_, INET6_ADDRSTRLEN);
if (err != 0) {
as_string_[0] = 0;
@@ -38,7 +39,9 @@ SocketAddress::SocketAddress(struct sockaddr* sockaddr) {
}
-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);
DWORD l = len;
RawAddr& raw = const_cast<RawAddr&>(addr);
@@ -49,7 +52,7 @@ bool Socket::FormatNumericAddress(const RawAddr& addr, char* address, int len) {
static Mutex* init_mutex = new Mutex();
static bool socket_initialized = false;
-bool Socket::Initialize() {
+bool BaseSocket::Initialize() {
MutexLocker lock(init_mutex);
if (socket_initialized) {
return true;
@@ -66,38 +69,40 @@ bool Socket::Initialize() {
return (err == 0);
}
-intptr_t Socket::Available(intptr_t fd) {
+intptr_t BaseSocket::Available(intptr_t fd) {
ClientSocket* client_socket = reinterpret_cast<ClientSocket*>(fd);
return client_socket->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) {
Handle* handle = reinterpret_cast<Handle*>(fd);
return handle->Read(buffer, num_bytes);
}
-intptr_t Socket::RecvFrom(intptr_t fd,
- void* buffer,
- intptr_t num_bytes,
- RawAddr* addr) {
+intptr_t BaseSocket::RecvFrom(intptr_t fd,
+ void* buffer,
+ intptr_t num_bytes,
+ RawAddr* addr) {
Handle* handle = reinterpret_cast<Handle*>(fd);
socklen_t addr_len = sizeof(addr->ss);
return handle->RecvFrom(buffer, num_bytes, &addr->addr, addr_len);
}
-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) {
Handle* handle = reinterpret_cast<Handle*>(fd);
return handle->Write(buffer, num_bytes);
}
-intptr_t Socket::SendTo(intptr_t fd,
- const void* buffer,
- intptr_t num_bytes,
- const RawAddr& addr) {
+intptr_t BaseSocket::SendTo(intptr_t fd,
+ const void* buffer,
+ intptr_t num_bytes,
+ const RawAddr& addr) {
Handle* handle = reinterpret_cast<Handle*>(fd);
RawAddr& raw = const_cast<RawAddr&>(addr);
return handle->SendTo(buffer, num_bytes, &raw.addr,
@@ -105,7 +110,7 @@ intptr_t Socket::SendTo(intptr_t fd,
}
-intptr_t Socket::GetPort(intptr_t fd) {
+intptr_t BaseSocket::GetPort(intptr_t fd) {
ASSERT(reinterpret_cast<Handle*>(fd)->is_socket());
SocketHandle* socket_handle = reinterpret_cast<SocketHandle*>(fd);
RawAddr raw;
@@ -117,7 +122,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(reinterpret_cast<Handle*>(fd)->is_socket());
SocketHandle* socket_handle = reinterpret_cast<SocketHandle*>(fd);
RawAddr raw;
@@ -236,19 +241,19 @@ intptr_t Socket::CreateBindConnect(const RawAddr& addr,
}
-bool Socket::IsBindError(intptr_t error_number) {
+bool BaseSocket::IsBindError(intptr_t error_number) {
return error_number == WSAEADDRINUSE || error_number == WSAEADDRNOTAVAIL ||
error_number == WSAEINVAL;
}
-void Socket::GetError(intptr_t fd, OSError* os_error) {
+void BaseSocket::GetError(intptr_t fd, OSError* os_error) {
Handle* handle = reinterpret_cast<Handle*>(fd);
os_error->SetCodeAndMessage(OSError::kSystem, handle->last_error());
}
-int Socket::GetType(intptr_t fd) {
+int BaseSocket::GetType(intptr_t fd) {
Handle* handle = reinterpret_cast<Handle*>(fd);
switch (GetFileType(handle->handle())) {
case FILE_TYPE_CHAR:
@@ -263,7 +268,7 @@ int Socket::GetType(intptr_t fd) {
}
-intptr_t Socket::GetStdioHandle(intptr_t num) {
+intptr_t BaseSocket::GetStdioHandle(intptr_t num) {
if (num != 0) {
return -1;
}
@@ -289,9 +294,9 @@ intptr_t ServerSocket::Accept(intptr_t fd) {
}
-AddressList<SocketAddress>* Socket::LookupAddress(const char* host,
- int type,
- OSError** os_error) {
+AddressList<SocketAddress>* BaseSocket::LookupAddress(const char* host,
+ int type,
+ OSError** os_error) {
Initialize();
// Perform a name lookup for a host name.
@@ -335,10 +340,10 @@ AddressList<SocketAddress>* Socket::LookupAddress(const char* host,
}
-bool Socket::ReverseLookup(const RawAddr& addr,
- char* host,
- intptr_t host_len,
- OSError** os_error) {
+bool BaseSocket::ReverseLookup(const RawAddr& addr,
+ char* host,
+ intptr_t host_len,
+ OSError** os_error) {
ASSERT(host_len >= NI_MAXHOST);
int status = getnameinfo(&addr.addr, SocketAddress::GetAddrLength(addr), host,
host_len, NULL, 0, NI_NAMEREQD);
@@ -353,7 +358,7 @@ bool Socket::ReverseLookup(const RawAddr& addr,
}
-bool Socket::ParseAddress(int type, const char* address, RawAddr* addr) {
+bool BaseSocket::ParseAddress(int type, const char* address, RawAddr* addr) {
int result;
Utf8ToWideScope system_address(address);
if (type == SocketAddress::TYPE_IPV4) {
@@ -399,12 +404,12 @@ intptr_t Socket::CreateBindDatagram(const RawAddr& addr, bool reuseAddress) {
}
-bool Socket::ListInterfacesSupported() {
+bool BaseSocket::ListInterfacesSupported() {
return true;
}
-AddressList<InterfaceSocketAddress>* Socket::ListInterfaces(
+AddressList<InterfaceSocketAddress>* BaseSocket::ListInterfaces(
int type,
OSError** os_error) {
Initialize();
@@ -491,7 +496,8 @@ intptr_t ServerSocket::CreateBindListen(const RawAddr& addr,
// Test for invalid socket port 65535 (some browsers disallow it).
if ((SocketAddress::GetAddrPort(addr) == 0) &&
- (Socket::GetPort(reinterpret_cast<intptr_t>(listen_socket)) == 65535)) {
+ (BaseSocket::GetPort(reinterpret_cast<intptr_t>(listen_socket)) ==
+ 65535)) {
// Don't close fd until we have created new. By doing that we ensure another
// port.
intptr_t new_s = CreateBindListen(addr, backlog, v6_only);
@@ -536,13 +542,13 @@ bool ServerSocket::StartAccept(intptr_t fd) {
}
-void Socket::Close(intptr_t fd) {
+void BaseSocket::Close(intptr_t fd) {
ClientSocket* client_socket = reinterpret_cast<ClientSocket*>(fd);
client_socket->Close();
}
-bool Socket::GetNoDelay(intptr_t fd, bool* enabled) {
+bool BaseSocket::GetNoDelay(intptr_t fd, bool* enabled) {
SocketHandle* handle = reinterpret_cast<SocketHandle*>(fd);
int on;
socklen_t len = sizeof(on);
@@ -555,7 +561,7 @@ bool Socket::GetNoDelay(intptr_t fd, bool* enabled) {
}
-bool Socket::SetNoDelay(intptr_t fd, bool enabled) {
+bool BaseSocket::SetNoDelay(intptr_t fd, bool enabled) {
SocketHandle* handle = reinterpret_cast<SocketHandle*>(fd);
int on = enabled ? 1 : 0;
return setsockopt(handle->socket(), IPPROTO_TCP, TCP_NODELAY,
@@ -563,7 +569,9 @@ bool Socket::SetNoDelay(intptr_t fd, bool enabled) {
}
-bool Socket::GetMulticastLoop(intptr_t fd, intptr_t protocol, bool* enabled) {
+bool BaseSocket::GetMulticastLoop(intptr_t fd,
+ intptr_t protocol,
+ bool* enabled) {
SocketHandle* handle = reinterpret_cast<SocketHandle*>(fd);
uint8_t on;
socklen_t len = sizeof(on);
@@ -579,7 +587,9 @@ bool Socket::GetMulticastLoop(intptr_t fd, intptr_t protocol, bool* enabled) {
}
-bool Socket::SetMulticastLoop(intptr_t fd, intptr_t protocol, bool enabled) {
+bool BaseSocket::SetMulticastLoop(intptr_t fd,
+ intptr_t protocol,
+ bool enabled) {
SocketHandle* handle = reinterpret_cast<SocketHandle*>(fd);
int on = enabled ? 1 : 0;
int level = protocol == SocketAddress::TYPE_IPV4 ? IPPROTO_IP : IPPROTO_IPV6;
@@ -590,7 +600,7 @@ bool Socket::SetMulticastLoop(intptr_t fd, intptr_t protocol, bool enabled) {
}
-bool Socket::GetMulticastHops(intptr_t fd, intptr_t protocol, int* value) {
+bool BaseSocket::GetMulticastHops(intptr_t fd, intptr_t protocol, int* value) {
SocketHandle* handle = reinterpret_cast<SocketHandle*>(fd);
uint8_t v;
socklen_t len = sizeof(v);
@@ -606,7 +616,7 @@ bool Socket::GetMulticastHops(intptr_t fd, intptr_t protocol, int* value) {
}
-bool Socket::SetMulticastHops(intptr_t fd, intptr_t protocol, int value) {
+bool BaseSocket::SetMulticastHops(intptr_t fd, intptr_t protocol, int value) {
SocketHandle* handle = reinterpret_cast<SocketHandle*>(fd);
int v = value;
int level = protocol == SocketAddress::TYPE_IPV4 ? IPPROTO_IP : IPPROTO_IPV6;
@@ -617,7 +627,7 @@ bool Socket::SetMulticastHops(intptr_t fd, intptr_t protocol, int value) {
}
-bool Socket::GetBroadcast(intptr_t fd, bool* enabled) {
+bool BaseSocket::GetBroadcast(intptr_t fd, bool* enabled) {
SocketHandle* handle = reinterpret_cast<SocketHandle*>(fd);
int on;
socklen_t len = sizeof(on);
@@ -630,7 +640,7 @@ bool Socket::GetBroadcast(intptr_t fd, bool* enabled) {
}
-bool Socket::SetBroadcast(intptr_t fd, bool enabled) {
+bool BaseSocket::SetBroadcast(intptr_t fd, bool enabled) {
SocketHandle* handle = reinterpret_cast<SocketHandle*>(fd);
int on = enabled ? 1 : 0;
return setsockopt(handle->socket(), SOL_SOCKET, SO_BROADCAST,
@@ -638,10 +648,10 @@ bool Socket::SetBroadcast(intptr_t fd, bool enabled) {
}
-bool Socket::JoinMulticast(intptr_t fd,
- const RawAddr& addr,
- const RawAddr&,
- int interfaceIndex) {
+bool BaseSocket::JoinMulticast(intptr_t fd,
+ const RawAddr& addr,
+ const RawAddr&,
+ int interfaceIndex) {
SocketHandle* handle = reinterpret_cast<SocketHandle*>(fd);
int proto = addr.addr.sa_family == AF_INET ? IPPROTO_IP : IPPROTO_IPV6;
struct group_req mreq;
@@ -652,10 +662,10 @@ bool Socket::JoinMulticast(intptr_t fd,
}
-bool Socket::LeaveMulticast(intptr_t fd,
- const RawAddr& addr,
- const RawAddr&,
- int interfaceIndex) {
+bool BaseSocket::LeaveMulticast(intptr_t fd,
+ const RawAddr& addr,
+ const RawAddr&,
+ int interfaceIndex) {
SocketHandle* handle = reinterpret_cast<SocketHandle*>(fd);
int proto = addr.addr.sa_family == AF_INET ? IPPROTO_IP : IPPROTO_IPV6;
struct group_req mreq;

Powered by Google App Engine
This is Rietveld 408576698