| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/spdy/spdy_session.h" | 5 #include "net/spdy/spdy_session.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 668 buffered_spdy_framer_->CreateCredentialFrame(credential)); | 668 buffered_spdy_framer_->CreateCredentialFrame(credential)); |
| 669 | 669 |
| 670 if (net_log().IsLoggingAllEvents()) { | 670 if (net_log().IsLoggingAllEvents()) { |
| 671 net_log().AddEvent( | 671 net_log().AddEvent( |
| 672 NetLog::TYPE_SPDY_SESSION_SEND_CREDENTIAL, | 672 NetLog::TYPE_SPDY_SESSION_SEND_CREDENTIAL, |
| 673 base::Bind(&NetLogSpdyCredentialCallback, credential.slot, &origin)); | 673 base::Bind(&NetLogSpdyCredentialCallback, credential.slot, &origin)); |
| 674 } | 674 } |
| 675 return credential_frame.release(); | 675 return credential_frame.release(); |
| 676 } | 676 } |
| 677 | 677 |
| 678 SpdyHeadersControlFrame* SpdySession::CreateHeadersFrame( |
| 679 SpdyStreamId stream_id, |
| 680 const SpdyHeaderBlock& headers, |
| 681 SpdyControlFlags flags) { |
| 682 // Find our stream |
| 683 CHECK(IsStreamActive(stream_id)); |
| 684 scoped_refptr<SpdyStream> stream = active_streams_[stream_id]; |
| 685 CHECK_EQ(stream->stream_id(), stream_id); |
| 686 |
| 687 // Create a HEADER frame. |
| 688 scoped_ptr<SpdyHeadersControlFrame> frame( |
| 689 buffered_spdy_framer_->CreateHeaders(stream_id, flags, true, &headers)); |
| 690 |
| 691 if (net_log().IsLoggingAllEvents()) { |
| 692 bool fin = flags & CONTROL_FLAG_FIN; |
| 693 net_log().AddEvent( |
| 694 NetLog::TYPE_SPDY_SESSION_SEND_HEADERS, |
| 695 base::Bind(&NetLogSpdySynCallback, |
| 696 &headers, fin, /*unidirectional=*/false, |
| 697 stream_id, 0)); |
| 698 } |
| 699 return frame.release(); |
| 700 } |
| 701 |
| 678 SpdyDataFrame* SpdySession::CreateDataFrame(SpdyStreamId stream_id, | 702 SpdyDataFrame* SpdySession::CreateDataFrame(SpdyStreamId stream_id, |
| 679 net::IOBuffer* data, int len, | 703 net::IOBuffer* data, int len, |
| 680 SpdyDataFlags flags) { | 704 SpdyDataFlags flags) { |
| 681 // Find our stream | 705 // Find our stream |
| 682 CHECK(IsStreamActive(stream_id)); | 706 CHECK(IsStreamActive(stream_id)); |
| 683 scoped_refptr<SpdyStream> stream = active_streams_[stream_id]; | 707 scoped_refptr<SpdyStream> stream = active_streams_[stream_id]; |
| 684 CHECK_EQ(stream->stream_id(), stream_id); | 708 CHECK_EQ(stream->stream_id(), stream_id); |
| 685 | 709 |
| 686 if (len > kMaxSpdyFrameChunkSize) { | 710 if (len > kMaxSpdyFrameChunkSize) { |
| 687 len = kMaxSpdyFrameChunkSize; | 711 len = kMaxSpdyFrameChunkSize; |
| (...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1516 stream->set_response_received(); | 1540 stream->set_response_received(); |
| 1517 | 1541 |
| 1518 Respond(headers, stream); | 1542 Respond(headers, stream); |
| 1519 } | 1543 } |
| 1520 | 1544 |
| 1521 void SpdySession::OnHeaders(SpdyStreamId stream_id, | 1545 void SpdySession::OnHeaders(SpdyStreamId stream_id, |
| 1522 bool fin, | 1546 bool fin, |
| 1523 const SpdyHeaderBlock& headers) { | 1547 const SpdyHeaderBlock& headers) { |
| 1524 if (net_log().IsLoggingAllEvents()) { | 1548 if (net_log().IsLoggingAllEvents()) { |
| 1525 net_log().AddEvent( | 1549 net_log().AddEvent( |
| 1526 NetLog::TYPE_SPDY_SESSION_HEADERS, | 1550 NetLog::TYPE_SPDY_SESSION_RECV_HEADERS, |
| 1527 base::Bind(&NetLogSpdySynCallback, | 1551 base::Bind(&NetLogSpdySynCallback, |
| 1528 &headers, fin, /*unidirectional=*/false, | 1552 &headers, fin, /*unidirectional=*/false, |
| 1529 stream_id, 0)); | 1553 stream_id, 0)); |
| 1530 } | 1554 } |
| 1531 | 1555 |
| 1532 if (!IsStreamActive(stream_id)) { | 1556 if (!IsStreamActive(stream_id)) { |
| 1533 // NOTE: it may just be that the stream was cancelled. | 1557 // NOTE: it may just be that the stream was cancelled. |
| 1534 LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id; | 1558 LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id; |
| 1535 return; | 1559 return; |
| 1536 } | 1560 } |
| (...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1970 SSLClientSocket* SpdySession::GetSSLClientSocket() const { | 1994 SSLClientSocket* SpdySession::GetSSLClientSocket() const { |
| 1971 if (!is_secure_) | 1995 if (!is_secure_) |
| 1972 return NULL; | 1996 return NULL; |
| 1973 SSLClientSocket* ssl_socket = | 1997 SSLClientSocket* ssl_socket = |
| 1974 reinterpret_cast<SSLClientSocket*>(connection_->socket()); | 1998 reinterpret_cast<SSLClientSocket*>(connection_->socket()); |
| 1975 DCHECK(ssl_socket); | 1999 DCHECK(ssl_socket); |
| 1976 return ssl_socket; | 2000 return ssl_socket; |
| 1977 } | 2001 } |
| 1978 | 2002 |
| 1979 } // namespace net | 2003 } // namespace net |
| OLD | NEW |