| Index: net/tools/quic/quic_socket_utils.cc
|
| diff --git a/net/tools/quic/quic_socket_utils.cc b/net/tools/quic/quic_socket_utils.cc
|
| index 28a6f2588b5bb4302e5cdc0e9a9a4127d4a45623..a6bc4c0c49642dee758371de8087ab35a7dee866 100644
|
| --- a/net/tools/quic/quic_socket_utils.cc
|
| +++ b/net/tools/quic/quic_socket_utils.cc
|
| @@ -27,9 +27,7 @@ namespace net {
|
| void QuicSocketUtils::GetAddressAndTimestampFromMsghdr(
|
| struct msghdr* hdr,
|
| IPAddress* address,
|
| - QuicTime* timestamp,
|
| - QuicWallTime* walltimestamp,
|
| - bool latched_walltimestamps) {
|
| + QuicWallTime* walltimestamp) {
|
| if (hdr->msg_controllen > 0) {
|
| for (cmsghdr* cmsg = CMSG_FIRSTHDR(hdr); cmsg != nullptr;
|
| cmsg = CMSG_NXTHDR(hdr, cmsg)) {
|
| @@ -52,12 +50,7 @@ void QuicSocketUtils::GetAddressAndTimestampFromMsghdr(
|
| timespec* ts = <s->systime;
|
| int64_t usec = (static_cast<int64_t>(ts->tv_sec) * 1000 * 1000) +
|
| (static_cast<int64_t>(ts->tv_nsec) / 1000);
|
| - if (latched_walltimestamps) {
|
| - *walltimestamp = QuicWallTime::FromUNIXMicroseconds(usec);
|
| - } else {
|
| - *timestamp =
|
| - QuicTime::Zero() + QuicTime::Delta::FromMicroseconds(usec);
|
| - }
|
| + *walltimestamp = QuicWallTime::FromUNIXMicroseconds(usec);
|
| }
|
| }
|
| }
|
| @@ -80,6 +73,23 @@ bool QuicSocketUtils::GetOverflowFromMsghdr(struct msghdr* hdr,
|
| }
|
|
|
| // static
|
| +bool QuicSocketUtils::GetTtlFromMsghdr(struct msghdr* hdr, int* ttl) {
|
| + if (hdr->msg_controllen > 0) {
|
| + struct cmsghdr* cmsg;
|
| + for (cmsg = CMSG_FIRSTHDR(hdr); cmsg != nullptr;
|
| + cmsg = CMSG_NXTHDR(hdr, cmsg)) {
|
| + if ((cmsg->cmsg_level == IPPROTO_IP && cmsg->cmsg_type == IP_TTL) ||
|
| + (cmsg->cmsg_level == IPPROTO_IPV6 &&
|
| + cmsg->cmsg_type == IPV6_HOPLIMIT)) {
|
| + *ttl = *(reinterpret_cast<int*>(CMSG_DATA(cmsg)));
|
| + return true;
|
| + }
|
| + }
|
| + }
|
| + return false;
|
| +}
|
| +
|
| +// static
|
| int QuicSocketUtils::SetGetAddressInfo(int fd, int address_family) {
|
| int get_local_ip = 1;
|
| int rc = setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &get_local_ip,
|
| @@ -122,9 +132,7 @@ int QuicSocketUtils::ReadPacket(int fd,
|
| size_t buf_len,
|
| QuicPacketCount* dropped_packets,
|
| IPAddress* self_address,
|
| - QuicTime* timestamp,
|
| QuicWallTime* walltimestamp,
|
| - bool latched_walltimestamps,
|
| IPEndPoint* peer_address) {
|
| DCHECK(peer_address != nullptr);
|
| char cbuf[kSpaceForCmsg];
|
| @@ -176,13 +184,7 @@ int QuicSocketUtils::ReadPacket(int fd,
|
| walltimestamp = &stack_walltimestamp;
|
| }
|
|
|
| - QuicTime stack_timestamp = QuicTime::Zero();
|
| - if (timestamp == nullptr) {
|
| - timestamp = &stack_timestamp;
|
| - }
|
| -
|
| - GetAddressAndTimestampFromMsghdr(&hdr, self_address, timestamp, walltimestamp,
|
| - latched_walltimestamps);
|
| + GetAddressAndTimestampFromMsghdr(&hdr, self_address, walltimestamp);
|
|
|
| if (raw_address.ss_family == AF_INET) {
|
| CHECK(peer_address->FromSockAddr(
|
|
|