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