summaryrefslogtreecommitdiffstats
path: root/net/socket/tcp_client_socket_pool.cc
diff options
context:
space:
mode:
authorAshish Sharma <ashishsharma@google.com>2011-07-08 13:59:58 -0700
committerAshish Sharma <ashishsharma@google.com>2011-08-09 04:32:52 -0700
commite14dcc5a172cad1c4716af7ab94121a73c0c698e (patch)
tree0c237f8f94ee348c717901e7f43cc6f0dcdacac5 /net/socket/tcp_client_socket_pool.cc
parent59ef0e2497e0662fe4a4044c2c50dab449bfcb87 (diff)
downloadexternal_chromium-e14dcc5a172cad1c4716af7ab94121a73c0c698e.zip
external_chromium-e14dcc5a172cad1c4716af7ab94121a73c0c698e.tar.gz
external_chromium-e14dcc5a172cad1c4716af7ab94121a73c0c698e.tar.bz2
Network traffic accounting for client applications that use chromium
URLRequest stack. Change-Id: If7821debd1b10b19ebf5a3e7b9f6570efc73c4fc
Diffstat (limited to 'net/socket/tcp_client_socket_pool.cc')
-rw-r--r--net/socket/tcp_client_socket_pool.cc33
1 files changed, 30 insertions, 3 deletions
diff --git a/net/socket/tcp_client_socket_pool.cc b/net/socket/tcp_client_socket_pool.cc
index bc708d6..735f498 100644
--- a/net/socket/tcp_client_socket_pool.cc
+++ b/net/socket/tcp_client_socket_pool.cc
@@ -26,7 +26,9 @@ TCPSocketParams::TCPSocketParams(const HostPortPair& host_port_pair,
bool disable_resolver_cache, bool ignore_limits)
: destination_(host_port_pair)
#ifdef ANDROID
- , ignore_limits_(ignore_limits)
+ , ignore_limits_(ignore_limits),
+ valid_uid_(false),
+ calling_uid_(0)
#endif
{
Initialize(priority, referrer, disable_resolver_cache);
@@ -38,7 +40,9 @@ TCPSocketParams::TCPSocketParams(const std::string& host, int port,
bool disable_resolver_cache)
: destination_(HostPortPair(host, port))
#ifdef ANDROID
- , ignore_limits_(false)
+ , ignore_limits_(false),
+ valid_uid_(false),
+ calling_uid_(0)
#endif
{
Initialize(priority, referrer, disable_resolver_cache);
@@ -58,6 +62,21 @@ void TCPSocketParams::Initialize(RequestPriority priority,
destination_.set_allow_cached_response(false);
}
+#ifdef ANDROID
+bool TCPSocketParams::getUID(uid_t *uid) const {
+ if (!valid_uid_) {
+ return false;
+ }
+ *uid = calling_uid_;
+ return true;
+}
+
+void TCPSocketParams::setUID(uid_t uid) {
+ valid_uid_ = true;
+ calling_uid_ = uid;
+}
+#endif
+
// TCPConnectJobs will time out after this many seconds. Note this is the total
// time, including both host resolution and TCP connect() times.
//
@@ -160,9 +179,17 @@ int TCPConnectJob::DoTCPConnect() {
set_socket(client_socket_factory_->CreateTCPClientSocket(
addresses_, net_log().net_log(), net_log().source()));
connect_start_time_ = base::TimeTicks::Now();
+
+#ifdef ANDROID
+ uid_t calling_uid = 0;
+ bool valid_uid = params_->getUID(&calling_uid);
+#endif
+
return socket()->Connect(&callback_,
#ifdef ANDROID
- params_->ignore_limits()
+ params_->ignore_limits(),
+ valid_uid,
+ calling_uid
#endif
);
}