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/tools/flip_server/spdy_interface.h" | 5 #include "net/tools/flip_server/spdy_interface.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
| 9 #include <utility> |
9 | 10 |
10 #include "net/spdy/spdy_framer.h" | 11 #include "net/spdy/spdy_framer.h" |
11 #include "net/spdy/spdy_protocol.h" | 12 #include "net/spdy/spdy_protocol.h" |
12 #include "net/tools/flip_server/constants.h" | 13 #include "net/tools/flip_server/constants.h" |
13 #include "net/tools/flip_server/flip_config.h" | 14 #include "net/tools/flip_server/flip_config.h" |
14 #include "net/tools/flip_server/http_interface.h" | 15 #include "net/tools/flip_server/http_interface.h" |
15 #include "net/tools/flip_server/spdy_util.h" | 16 #include "net/tools/flip_server/spdy_util.h" |
16 #include "net/tools/flip_server/url_utilities.h" | 17 #include "net/tools/flip_server/url_utilities.h" |
17 | 18 |
18 namespace net { | 19 namespace net { |
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
465 } else { | 466 } else { |
466 block[":path"] = headers.request_uri().as_string(); | 467 block[":path"] = headers.request_uri().as_string(); |
467 if (block.find("host") != block.end()) { | 468 if (block.find("host") != block.end()) { |
468 block[":host"] = headers.GetHeader("Host").as_string(); | 469 block[":host"] = headers.GetHeader("Host").as_string(); |
469 block.erase("host"); | 470 block.erase("host"); |
470 } | 471 } |
471 } | 472 } |
472 | 473 |
473 DCHECK(buffered_spdy_framer_); | 474 DCHECK(buffered_spdy_framer_); |
474 SpdySerializedFrame* fsrcf = buffered_spdy_framer_->CreateSynStream( | 475 SpdySerializedFrame* fsrcf = buffered_spdy_framer_->CreateSynStream( |
475 stream_id, 0, 0, CONTROL_FLAG_NONE, block); | 476 stream_id, 0, 0, CONTROL_FLAG_NONE, std::move(block)); |
476 size_t df_size = fsrcf->size(); | 477 size_t df_size = fsrcf->size(); |
477 EnqueueDataFrame(new SpdyFrameDataFrame(fsrcf)); | 478 EnqueueDataFrame(new SpdyFrameDataFrame(fsrcf)); |
478 | 479 |
479 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: Sending SynStreamheader " | 480 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: Sending SynStreamheader " |
480 << stream_id; | 481 << stream_id; |
481 return df_size; | 482 return df_size; |
482 } | 483 } |
483 | 484 |
484 size_t SpdySM::SendSynReplyImpl(uint32_t stream_id, | 485 size_t SpdySM::SendSynReplyImpl(uint32_t stream_id, |
485 const BalsaHeaders& headers) { | 486 const BalsaHeaders& headers) { |
486 SpdyHeaderBlock block; | 487 SpdyHeaderBlock block; |
487 CopyHeaders(block, headers); | 488 CopyHeaders(block, headers); |
488 block[":status"] = headers.response_code().as_string() + " " + | 489 block[":status"] = headers.response_code().as_string() + " " + |
489 headers.response_reason_phrase().as_string(); | 490 headers.response_reason_phrase().as_string(); |
490 block[":version"] = headers.response_version().as_string(); | 491 block[":version"] = headers.response_version().as_string(); |
491 | 492 |
492 DCHECK(buffered_spdy_framer_); | 493 DCHECK(buffered_spdy_framer_); |
493 SpdySerializedFrame* fsrcf = buffered_spdy_framer_->CreateSynReply( | 494 SpdySerializedFrame* fsrcf = buffered_spdy_framer_->CreateSynReply( |
494 stream_id, CONTROL_FLAG_NONE, block); | 495 stream_id, CONTROL_FLAG_NONE, std::move(block)); |
495 size_t df_size = fsrcf->size(); | 496 size_t df_size = fsrcf->size(); |
496 EnqueueDataFrame(new SpdyFrameDataFrame(fsrcf)); | 497 EnqueueDataFrame(new SpdyFrameDataFrame(fsrcf)); |
497 | 498 |
498 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: Sending SynReplyheader " | 499 VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: Sending SynReplyheader " |
499 << stream_id; | 500 << stream_id; |
500 return df_size; | 501 return df_size; |
501 } | 502 } |
502 | 503 |
503 void SpdySM::SendDataFrameImpl(uint32_t stream_id, | 504 void SpdySM::SendDataFrameImpl(uint32_t stream_id, |
504 const char* data, | 505 const char* data, |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
606 } | 607 } |
607 } | 608 } |
608 | 609 |
609 void SpdySM::CreateFramer(SpdyMajorVersion spdy_version) { | 610 void SpdySM::CreateFramer(SpdyMajorVersion spdy_version) { |
610 DCHECK(!buffered_spdy_framer_); | 611 DCHECK(!buffered_spdy_framer_); |
611 buffered_spdy_framer_.reset(new BufferedSpdyFramer(spdy_version)); | 612 buffered_spdy_framer_.reset(new BufferedSpdyFramer(spdy_version)); |
612 buffered_spdy_framer_->set_visitor(this); | 613 buffered_spdy_framer_->set_visitor(this); |
613 } | 614 } |
614 | 615 |
615 } // namespace net | 616 } // namespace net |
OLD | NEW |