diff options
author | Ashish Sharma <ashishsharma@google.com> | 2011-07-08 13:59:58 -0700 |
---|---|---|
committer | Ashish Sharma <ashishsharma@google.com> | 2011-08-09 04:32:52 -0700 |
commit | e14dcc5a172cad1c4716af7ab94121a73c0c698e (patch) | |
tree | 0c237f8f94ee348c717901e7f43cc6f0dcdacac5 /net/socket/tcp_client_socket_pool.cc | |
parent | 59ef0e2497e0662fe4a4044c2c50dab449bfcb87 (diff) | |
download | external_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.cc | 33 |
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 ); } |