Skip to content
This repository has been archived by the owner on Nov 8, 2023. It is now read-only.

Commit

Permalink
Revert "adb: check our socketpair ends in our win32 emulation."
Browse files Browse the repository at this point in the history
This reverts commit 5990191.

Some Windows users are seeing mismatches between the two ends.

Bug: https://code.google.com/p/android/issues/detail?id=258400
Test: mma
Change-Id: Ie3a121a2754332608ff64b3b016adcb4258d41f3
  • Loading branch information
jmgao committed Mar 30, 2017
1 parent 6fb2ef1 commit 3726a01
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 31 deletions.
4 changes: 0 additions & 4 deletions adb/sysdeps.h
Expand Up @@ -268,10 +268,6 @@ extern int adb_socket_accept(int serverfd, struct sockaddr* addr, socklen_t
#undef accept
#define accept ___xxx_accept

int adb_getsockname(int fd, struct sockaddr* sockaddr, socklen_t* optlen);
#undef getsockname
#define getsockname(...) ___xxx_getsockname(__VA__ARGS__)

// Returns the local port number of a bound socket, or -1 on failure.
int adb_socket_get_local_port(int fd);

Expand Down
29 changes: 2 additions & 27 deletions adb/sysdeps_win32.cpp
Expand Up @@ -984,7 +984,7 @@ int adb_getsockname(int fd, struct sockaddr* sockaddr, socklen_t* optlen) {
return -1;
}

int result = (getsockname)(fh->fh_socket, sockaddr, optlen);
int result = getsockname(fh->fh_socket, sockaddr, optlen);
if (result == SOCKET_ERROR) {
const DWORD err = WSAGetLastError();
D("adb_getsockname: setsockopt on fd %d failed: %s\n", fd,
Expand Down Expand Up @@ -1042,11 +1042,6 @@ int adb_socketpair(int sv[2]) {
int local_port = -1;
std::string error;

struct sockaddr_storage peer_addr = {};
struct sockaddr_storage client_addr = {};
socklen_t peer_socklen = sizeof(peer_addr);
socklen_t client_socklen = sizeof(client_addr);

server = network_loopback_server(0, SOCK_STREAM, &error);
if (server < 0) {
D("adb_socketpair: failed to create server: %s", error.c_str());
Expand All @@ -1066,32 +1061,12 @@ int adb_socketpair(int sv[2]) {
goto fail;
}

// Make sure that the peer that connected to us and the client are the same.
accepted = adb_socket_accept(server, reinterpret_cast<sockaddr*>(&peer_addr), &peer_socklen);
accepted = adb_socket_accept(server, nullptr, nullptr);
if (accepted < 0) {
D("adb_socketpair: failed to accept: %s", strerror(errno));
goto fail;
}

if (adb_getsockname(client, reinterpret_cast<sockaddr*>(&client_addr), &client_socklen) != 0) {
D("adb_socketpair: failed to getpeername: %s", strerror(errno));
goto fail;
}

if (peer_socklen != client_socklen) {
D("adb_socketpair: client and peer sockaddrs have different lengths");
errno = EIO;
goto fail;
}

if (memcmp(&peer_addr, &client_addr, peer_socklen) != 0) {
D("adb_socketpair: client and peer sockaddrs don't match");
errno = EIO;
goto fail;
}

adb_close(server);

sv[0] = client;
sv[1] = accepted;
return 0;
Expand Down

0 comments on commit 3726a01

Please sign in to comment.