| Index: runtime/bin/socket_win.cc
|
| diff --git a/runtime/bin/socket_win.cc b/runtime/bin/socket_win.cc
|
| index fc48ecfe3eb00872e78f6b32536a72ababe4cca0..7be145822927f0c6dbc0de870138835c7245eb24 100644
|
| --- a/runtime/bin/socket_win.cc
|
| +++ b/runtime/bin/socket_win.cc
|
| @@ -54,7 +54,8 @@ intptr_t Socket::GetPort(intptr_t fd) {
|
| }
|
|
|
|
|
| -intptr_t Socket::GetRemotePort(intptr_t fd) {
|
| +bool Socket::GetRemotePeer(intptr_t fd, char *host, intptr_t *port) {
|
| + ASSERT(DART_INET_ADDRSTRLEN >= INET_ADDRSTRLEN);
|
| ASSERT(reinterpret_cast<Handle*>(fd)->is_socket());
|
| SocketHandle* socket_handle = reinterpret_cast<SocketHandle*>(fd);
|
| struct sockaddr_in socket_address;
|
| @@ -63,10 +64,17 @@ intptr_t Socket::GetRemotePort(intptr_t fd) {
|
| reinterpret_cast<struct sockaddr *>(&socket_address),
|
| &size)) {
|
| fprintf(stderr, "Error getpeername: %s\n", strerror(errno));
|
| - return 0;
|
| + return false;
|
| }
|
| - return ntohs(socket_address.sin_port);
|
| -}
|
| + if (inet_ntop(socket_address.sin_family,
|
| + reinterpret_cast<const void *>(&socket_address.sin_addr),
|
| + host,
|
| + INET_ADDRSTRLEN) == NULL) {
|
| + fprintf(stderr, "Error inet_ntop: %s\n", strerror(errno));
|
| + return false;
|
| + }
|
| + *port = ntohs(socket_address.sin_port);
|
| + return true;
|
|
|
|
|
| intptr_t Socket::CreateConnect(const char* host, const intptr_t port) {
|
|
|