Add a CloseAllSessions method to QuicStreamFactory, and wire it up to HttpNetworkSession::CloseAllConnections().


Review URL: https://chromiumcodereview.appspot.com/11710003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175044 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/quic/quic_reliable_client_stream.cc b/net/quic/quic_reliable_client_stream.cc
index 7c9da7e..d2960f8 100644
--- a/net/quic/quic_reliable_client_stream.cc
+++ b/net/quic/quic_reliable_client_stream.cc
@@ -16,17 +16,16 @@
 }
 
 QuicReliableClientStream::~QuicReliableClientStream() {
-  if (delegate_) {
+  if (delegate_)
     delegate_->OnClose(error());
-  }
 }
 
 uint32 QuicReliableClientStream::ProcessData(const char* data,
                                              uint32 data_len) {
   // TODO(rch): buffer data if we don't have a delegate.
-  if (!delegate_) {
+  if (!delegate_)
     return ERR_ABORTED;
-  }
+
   int rv = delegate_->OnDataReceived(data, data_len);
   if (rv != OK) {
     DLOG(ERROR) << "Delegate refused data, rv: " << rv;
@@ -50,4 +49,12 @@
   delegate_ = delegate;
 }
 
+void QuicReliableClientStream::OnError(int error) {
+  if (delegate_) {
+    QuicReliableClientStream::Delegate* delegate = delegate_;
+    delegate_ = NULL;
+    delegate->OnError(error);
+  }
+}
+
 }  // namespace net