Chromium Code Reviews| Index: net/socket/tcp_socket_libevent.cc |
| diff --git a/net/socket/tcp_socket_libevent.cc b/net/socket/tcp_socket_libevent.cc |
| index 6a6417b1ba12151a291b896312b93b9d27aeaa16..db339e2ced7f58b87a814954289ec4c68796377b 100644 |
| --- a/net/socket/tcp_socket_libevent.cc |
| +++ b/net/socket/tcp_socket_libevent.cc |
| @@ -746,4 +746,25 @@ void TCPSocketLibevent::UpdateTCPFastOpenStatusAfterRead() { |
| } |
| } |
| +bool TCPSocketLibevent::GetEstimatedRoundTripTime(base::TimeDelta* out_rtt) { |
|
mmenke
2015/07/07 19:53:50
How do you intend to use this to inform future cod
Bryan McQuade
2015/07/07 21:03:33
I'm mostly interested in understanding TCP RTT in
|
| + DCHECK(out_rtt); |
| + if (!socket_ || !socket_->IsConnected()) { |
|
mmenke
2015/07/07 19:53:50
The IsConnected() check seems concerning - if the
Bryan McQuade
2015/07/07 21:03:32
Yes, good point. I had added that to prevent loggi
|
| + return false; |
| + } |
|
mmenke
2015/07/07 19:53:49
nit: Remove braces.
Bryan McQuade
2015/07/07 21:03:33
Done.
|
| + |
| + bool success = false; |
| +#if defined(TCP_INFO) |
| + tcp_info info; |
| + socklen_t info_len = sizeof(tcp_info); |
| + success = getsockopt(socket_->socket_fd(), IPPROTO_TCP, TCP_INFO, &info, |
| + &info_len) == 0 && |
| + info_len == sizeof(tcp_info); |
| + if (success) { |
| + *out_rtt = base::TimeDelta::FromMicroseconds(info.tcpi_rtt); |
|
mmenke
2015/07/07 19:53:49
Suggest getting rid of success variable, and just
Bryan McQuade
2015/07/07 21:03:33
Done.
|
| + } |
|
mmenke
2015/07/07 19:53:50
nit: Remove braces.
Bryan McQuade
2015/07/07 21:03:32
Done.
|
| +#endif |
|
mmenke
2015/07/07 19:53:49
nit: #endif // defined(TCP_INFO)
(Not done in m
Bryan McQuade
2015/07/07 21:03:32
Done.
|
| + |
| + return success; |
| +} |
| + |
| } // namespace net |