summaryrefslogtreecommitdiffstats
path: root/net/base
diff options
context:
space:
mode:
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-05 14:30:16 +0000
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-05 14:30:16 +0000
commit97cf302c2ab7903de946a7bcc2a26f7c02b2e073 (patch)
tree60ae842094d86b9383f884d3d2e47b201636c0c5 /net/base
parent58f2878ce0784383088ba71a83a4c3c681a760a2 (diff)
downloadchromium_src-97cf302c2ab7903de946a7bcc2a26f7c02b2e073.zip
chromium_src-97cf302c2ab7903de946a7bcc2a26f7c02b2e073.tar.gz
chromium_src-97cf302c2ab7903de946a7bcc2a26f7c02b2e073.tar.bz2
Land Recent QUIC changes.
This is the first part of the code to allow faster stats/future compression stuff to register for a notification when a block of data has been fully ACKed by the peer. The idea is as follows: Someone who wants to be notified when their data is ACKed calls SendStreamDataAndNotifyWhenAcked instead of SendStreamData, and provides a Closure. The QuicConnection stores the Closure in a QuicAckNotifier, and maintains a vector of these. On every ACK frame received, the OnAck(acked_seqnums) method of each QuicAckNotifier is called. The QuicAckNotifier keeps track of the sequence numbers it is waiting to see, and after being notified of all of them it calls the Closure's Run() method. Merge internal change: 51476134 Changed SourceAddressToken's code not to include port number while performing crypto handshake (found in EndToEnd unit tests). Use IPAddressToPackedString for source address token comparison. Add CryptoServerConfig::set_strike_register_no_startup_period() to allow a QuicServer to start accepting 0-RTT handshakes without waiting a startup period. Add an end-to-end test for a successful 0-RTT handshake. Merge internal change: 51419595 Copying the overly-lenient SPDY workarounds to handling priority blocked streams for idle timeout logic. Merge internal change: 51406984 For this CL, the only chromium side change is to add QuicConnectionPeer::SetPeerAddress. Log packet retransmissions to DLOG(INFO). Use the standard format for the log messages for crypto handshake messages on the client side. Merge internal change: 51336227 New frame ID scheme to eliminate conflict between STREAM and PADDING frames. PADDING frames are now stream type 0. Description of the new scheme is in quic_framer.cc. Merge internal change: 51271708 Fixing a bug in implicitly created streams which results in early packet loss causing all streams to hang. Merge internal change: 51248632 R=rch@chromium.org Review URL: https://chromiumcodereview.appspot.com/23464033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221419 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base')
-rw-r--r--net/base/net_util.cc5
-rw-r--r--net/base/net_util.h3
2 files changed, 8 insertions, 0 deletions
diff --git a/net/base/net_util.cc b/net/base/net_util.cc
index c4f00be..2dd92c1 100644
--- a/net/base/net_util.cc
+++ b/net/base/net_util.cc
@@ -1606,6 +1606,11 @@ std::string IPAddressToStringWithPort(const IPAddressNumber& addr,
return IPAddressToStringWithPort(&addr.front(), addr.size(), port);
}
+std::string IPAddressToPackedString(const IPAddressNumber& addr) {
+ return std::string(reinterpret_cast<const char *>(&addr.front()),
+ addr.size());
+}
+
std::string GetHostName() {
#if defined(OS_WIN)
EnsureWinsockInit();
diff --git a/net/base/net_util.h b/net/base/net_util.h
index ecd7400..113c8e8 100644
--- a/net/base/net_util.h
+++ b/net/base/net_util.h
@@ -166,6 +166,9 @@ NET_EXPORT std::string IPAddressToString(const IPAddressNumber& addr);
NET_EXPORT std::string IPAddressToStringWithPort(
const IPAddressNumber& addr, uint16 port);
+// Returns the address as a sequence of bytes in network-byte-order.
+NET_EXPORT std::string IPAddressToPackedString(const IPAddressNumber& addr);
+
// Returns the hostname of the current system. Returns empty string on failure.
NET_EXPORT std::string GetHostName();