Merge "Revert "adb: check our socketpair ends in our win32 emulation."" am: c1314c8b13

am: 83b3c0817f

Change-Id: I316e666330a3e9ae7ff4cf8fca43fdf803d5612c
This commit is contained in:
Josh Gao 2017-03-30 23:59:17 +00:00 committed by android-build-merger
commit cf476c9360
2 changed files with 2 additions and 31 deletions

View file

@ -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);

View file

@ -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,
@ -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());
@ -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;