summaryrefslogtreecommitdiffstats
path: root/tools/android/common
diff options
context:
space:
mode:
authorwangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-16 18:32:48 +0000
committerwangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-16 18:32:48 +0000
commitfd211e7d8d66666df39884f89597ec78feea0675 (patch)
tree592be704d2f1a2d54473b2acecd097dd3603a40a /tools/android/common
parent4ca52d0d99e511d0c1fd8e7766d9dfad359af64b (diff)
downloadchromium_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.cc11
-rw-r--r--tools/android/common/net.cc15
-rw-r--r--tools/android/common/net.h5
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_