OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/tools/flip_server/spdy_interface.h" | 5 #include "net/tools/flip_server/spdy_interface.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "net/spdy/spdy_framer.h" | 9 #include "net/spdy/spdy_framer.h" |
10 #include "net/spdy/spdy_protocol.h" | 10 #include "net/spdy/spdy_protocol.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 // static | 42 // static |
43 bool SpdySM::disable_data_compression_ = true; | 43 bool SpdySM::disable_data_compression_ = true; |
44 // static | 44 // static |
45 std::string SpdySM::forward_ip_header_; | 45 std::string SpdySM::forward_ip_header_; |
46 | 46 |
47 class SpdyFrameDataFrame : public DataFrame { | 47 class SpdyFrameDataFrame : public DataFrame { |
48 public: | 48 public: |
49 SpdyFrameDataFrame(SpdyFrame* spdy_frame) | 49 SpdyFrameDataFrame(SpdyFrame* spdy_frame) |
50 : frame(spdy_frame) { | 50 : frame(spdy_frame) { |
51 data = spdy_frame->data(); | 51 data = spdy_frame->data(); |
52 size = spdy_frame->length() + SpdyFrame::size(); | 52 size = spdy_frame->length() + SpdyFrame::kHeaderSize; |
53 } | 53 } |
54 | 54 |
55 virtual ~SpdyFrameDataFrame() { | 55 virtual ~SpdyFrameDataFrame() { |
56 delete frame; | 56 delete frame; |
57 } | 57 } |
58 | 58 |
59 const SpdyFrame* frame; | 59 const SpdyFrame* frame; |
60 }; | 60 }; |
61 | 61 |
62 SpdySM::SpdySM(SMConnection* connection, | 62 SpdySM::SpdySM(SMConnection* connection, |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
472 std::string original_url = headers.GetHeader("X-Original-Url").as_string(); | 472 std::string original_url = headers.GetHeader("X-Original-Url").as_string(); |
473 block["path"] = UrlUtilities::GetUrlPath(original_url); | 473 block["path"] = UrlUtilities::GetUrlPath(original_url); |
474 } else { | 474 } else { |
475 block["path"] = headers.request_uri().as_string(); | 475 block["path"] = headers.request_uri().as_string(); |
476 } | 476 } |
477 CopyHeaders(block, headers); | 477 CopyHeaders(block, headers); |
478 | 478 |
479 SpdySynStreamControlFrame* fsrcf = | 479 SpdySynStreamControlFrame* fsrcf = |
480 spdy_framer_->CreateSynStream(stream_id, 0, 0, CONTROL_FLAG_NONE, true, | 480 spdy_framer_->CreateSynStream(stream_id, 0, 0, CONTROL_FLAG_NONE, true, |
481 &block); | 481 &block); |
482 size_t df_size = fsrcf->length() + SpdyFrame::size(); | 482 size_t df_size = fsrcf->length() + SpdyFrame::kHeaderSize; |
483 EnqueueDataFrame(new SpdyFrameDataFrame(fsrcf)); | 483 EnqueueDataFrame(new SpdyFrameDataFrame(fsrcf)); |
484 | 484 |
485 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: Sending SynStreamheader " | 485 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: Sending SynStreamheader " |
486 << stream_id; | 486 << stream_id; |
487 return df_size; | 487 return df_size; |
488 } | 488 } |
489 | 489 |
490 size_t SpdySM::SendSynReplyImpl(uint32 stream_id, const BalsaHeaders& headers) { | 490 size_t SpdySM::SendSynReplyImpl(uint32 stream_id, const BalsaHeaders& headers) { |
491 SpdyHeaderBlock block; | 491 SpdyHeaderBlock block; |
492 CopyHeaders(block, headers); | 492 CopyHeaders(block, headers); |
493 block["status"] = headers.response_code().as_string() + " " + | 493 block["status"] = headers.response_code().as_string() + " " + |
494 headers.response_reason_phrase().as_string(); | 494 headers.response_reason_phrase().as_string(); |
495 block["version"] = headers.response_version().as_string(); | 495 block["version"] = headers.response_version().as_string(); |
496 | 496 |
497 SpdySynReplyControlFrame* fsrcf = | 497 SpdySynReplyControlFrame* fsrcf = |
498 spdy_framer_->CreateSynReply(stream_id, CONTROL_FLAG_NONE, true, &block); | 498 spdy_framer_->CreateSynReply(stream_id, CONTROL_FLAG_NONE, true, &block); |
499 size_t df_size = fsrcf->length() + SpdyFrame::size(); | 499 size_t df_size = fsrcf->length() + SpdyFrame::kHeaderSize; |
500 EnqueueDataFrame(new SpdyFrameDataFrame(fsrcf)); | 500 EnqueueDataFrame(new SpdyFrameDataFrame(fsrcf)); |
501 | 501 |
502 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: Sending SynReplyheader " | 502 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: Sending SynReplyheader " |
503 << stream_id; | 503 << stream_id; |
504 return df_size; | 504 return df_size; |
505 } | 505 } |
506 | 506 |
507 void SpdySM::SendDataFrameImpl(uint32 stream_id, const char* data, int64 len, | 507 void SpdySM::SendDataFrameImpl(uint32 stream_id, const char* data, int64 len, |
508 SpdyDataFlags flags, bool compress) { | 508 SpdyDataFlags flags, bool compress) { |
509 // Force compression off if disabled via command line. | 509 // Force compression off if disabled via command line. |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
604 num_to_write, 0, should_compress); | 604 num_to_write, 0, should_compress); |
605 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: GetOutput SendDataFrame[" | 605 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: GetOutput SendDataFrame[" |
606 << mci->stream_id << "]: " << num_to_write; | 606 << mci->stream_id << "]: " << num_to_write; |
607 mci->body_bytes_consumed += num_to_write; | 607 mci->body_bytes_consumed += num_to_write; |
608 mci->bytes_sent += num_to_write; | 608 mci->bytes_sent += num_to_write; |
609 } | 609 } |
610 } | 610 } |
611 | 611 |
612 } // namespace net | 612 } // namespace net |
613 | 613 |
OLD | NEW |