diff options
Diffstat (limited to 'tools/android/common')
-rw-r--r-- | tools/android/common/adb_connection.cc | 11 | ||||
-rw-r--r-- | tools/android/common/net.cc | 15 | ||||
-rw-r--r-- | tools/android/common/net.h | 5 |
3 files changed, 21 insertions, 10 deletions
diff --git a/tools/android/common/adb_connection.cc b/tools/android/common/adb_connection.cc index c542d16..4739d1d 100644 --- a/tools/android/common/adb_connection.cc +++ b/tools/android/common/adb_connection.cc @@ -83,17 +83,8 @@ int ConnectAdbHostSocket(const char* forward_to) { kBufferMaxLength, 0)); if (response_length < kAdbStatusLength || strncmp("OKAY", response, kAdbStatusLength) != 0) { - char fail_msg_buffer[kBufferMaxLength * 3 + 1]; - char* p = fail_msg_buffer; - for (int i = 0; i < response_length; ++i) { - snprintf(p, 3, "%02x,", static_cast<unsigned char>(response[i])); - p += 3; - } - - if (p > fail_msg_buffer) - *(--p) = 0; // Eliminate the last comma. LOG(ERROR) << "Bad response from ADB: length: " << response_length - << " data: " << fail_msg_buffer; + << " data: " << DumpBinary(response, response_length); HANDLE_EINTR(close(host_socket)); return -1; } diff --git a/tools/android/common/net.cc b/tools/android/common/net.cc index e50a18a..12bca8e 100644 --- a/tools/android/common/net.cc +++ b/tools/android/common/net.cc @@ -9,6 +9,8 @@ #include <sys/socket.h> #include <sys/types.h> +#include "base/stringprintf.h" + namespace tools { int DisableNagle(int socket) { @@ -21,5 +23,18 @@ int DeferAccept(int socket) { return setsockopt(socket, IPPROTO_TCP, TCP_DEFER_ACCEPT, &on, sizeof(on)); } +std::string DumpBinary(const char* buffer, size_t length) { + std::string result = "["; + for (int i = 0; i < length; ++i) { + base::StringAppendF(&result, "%02x,", + static_cast<unsigned char>(buffer[i])); + } + + if (length) + result.erase(result.length() - 1); + + return result + "]"; +} + } // namespace tools diff --git a/tools/android/common/net.h b/tools/android/common/net.h index d17b6f4..091f362 100644 --- a/tools/android/common/net.h +++ b/tools/android/common/net.h @@ -6,6 +6,8 @@ #define TOOLS_ANDROID_COMMON_NET_H_ #pragma once +#include <string> + namespace tools { // DisableNagle can improve TCP transmission performance. Both Chrome net stack @@ -15,6 +17,9 @@ int DisableNagle(int socket); // Wake up listener only when data arrive. int DeferAccept(int socket); +// Dumps a binary buffer into a string in a human-readable format. +std::string DumpBinary(const char* buffer, size_t length); + } // namespace tools #endif // TOOLS_ANDROID_COMMON_NET_H_ |