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 |