diff --git a/adb/sysdeps.h b/adb/sysdeps.h index f2911e045..0c2e45cb4 100644 --- a/adb/sysdeps.h +++ b/adb/sysdeps.h @@ -493,21 +493,7 @@ inline int network_local_server(const char* name, int namespace_id, int type, st return _fd_set_error_str(socket_local_server(name, namespace_id, type), error); } -inline int network_connect(const std::string& host, int port, int type, - int timeout, std::string* error) { - int getaddrinfo_error = 0; - int fd = socket_network_client_timeout(host.c_str(), port, type, timeout, - &getaddrinfo_error); - if (fd != -1) { - return fd; - } - if (getaddrinfo_error != 0) { - *error = gai_strerror(getaddrinfo_error); - } else { - *error = strerror(errno); - } - return -1; -} +int network_connect(const std::string& host, int port, int type, int timeout, std::string* error); static __inline__ int adb_socket_accept(int serverfd, struct sockaddr* addr, socklen_t *addrlen) { diff --git a/adb/sysdeps/posix/network.cpp b/adb/sysdeps/posix/network.cpp index ecd1fd24e..33ddb4e81 100644 --- a/adb/sysdeps/posix/network.cpp +++ b/adb/sysdeps/posix/network.cpp @@ -17,11 +17,15 @@ #include "sysdeps/network.h" #include +#include #include #include #include +#include +#include + #include "adb_unique_fd.h" static void set_error(std::string* error) { @@ -124,3 +128,19 @@ int network_loopback_server(int port, int type, std::string* error) { } return rc; } + +int network_connect(const std::string& host, int port, int type, int timeout, std::string* error) { + int getaddrinfo_error = 0; + int fd = socket_network_client_timeout(host.c_str(), port, type, timeout, &getaddrinfo_error); + if (fd != -1) { + return fd; + } + if (getaddrinfo_error != 0) { + *error = gai_strerror(getaddrinfo_error); + LOG(WARNING) << "failed to resolve host '" << host << "': " << *error; + } else { + *error = strerror(errno); + LOG(WARNING) << "failed to connect to '" << host << "': " << *error; + } + return -1; +} diff --git a/adb/transport_local.cpp b/adb/transport_local.cpp index 143125289..8b8fd5187 100644 --- a/adb/transport_local.cpp +++ b/adb/transport_local.cpp @@ -74,6 +74,7 @@ std::tuple tcp_connect(const std::string& address, std::string host; int port = DEFAULT_ADB_LOCAL_TRANSPORT_PORT; if (!android::base::ParseNetAddress(address, &host, &port, &serial, response)) { + D("failed to parse address: '%s'", address.c_str()); return std::make_tuple(unique_fd(), port, serial); } @@ -103,6 +104,7 @@ void connect_device(const std::string& address, std::string* response) { return; } + D("connection requested to '%s'", address.c_str()); unique_fd fd; int port; std::string serial;