diff options
author | wangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-16 18:32:48 +0000 |
---|---|---|
committer | wangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-16 18:32:48 +0000 |
commit | fd211e7d8d66666df39884f89597ec78feea0675 (patch) | |
tree | 592be704d2f1a2d54473b2acecd097dd3603a40a /tools/android/common | |
parent | 4ca52d0d99e511d0c1fd8e7766d9dfad359af64b (diff) | |
download | chromium_src-fd211e7d8d66666df39884f89597ec78feea0675.zip chromium_src-fd211e7d8d66666df39884f89597ec78feea0675.tar.gz chromium_src-fd211e7d8d66666df39884f89597ec78feea0675.tar.bz2 |
fake_dns tool for Android.
It runs on device to resolves any host name to 127.0.0.1.
With it and the forwarder, all HTTP requests are redirected to our replay server
running on the host machine.
Review URL: http://codereview.chromium.org/9401014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122320 0039d316-1c4b-4281-b951-d872f2087c98
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_ |