• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "net/spdy/multiplexed_http_stream.h"
6 
7 #include <utility>
8 
9 #include "base/notreached.h"
10 #include "net/http/http_raw_request_headers.h"
11 
12 namespace net {
13 
MultiplexedHttpStream(std::unique_ptr<MultiplexedSessionHandle> session)14 MultiplexedHttpStream::MultiplexedHttpStream(
15     std::unique_ptr<MultiplexedSessionHandle> session)
16     : session_(std::move(session)) {}
17 
18 MultiplexedHttpStream::~MultiplexedHttpStream() = default;
19 
GetRemoteEndpoint(IPEndPoint * endpoint)20 int MultiplexedHttpStream::GetRemoteEndpoint(IPEndPoint* endpoint) {
21   return session_->GetRemoteEndpoint(endpoint);
22 }
23 
GetSSLInfo(SSLInfo * ssl_info)24 void MultiplexedHttpStream::GetSSLInfo(SSLInfo* ssl_info) {
25   session_->GetSSLInfo(ssl_info);
26 }
27 
SaveSSLInfo()28 void MultiplexedHttpStream::SaveSSLInfo() {
29   session_->SaveSSLInfo();
30 }
31 
Drain(HttpNetworkSession * session)32 void MultiplexedHttpStream::Drain(HttpNetworkSession* session) {
33   NOTREACHED();
34 }
35 
RenewStreamForAuth()36 std::unique_ptr<HttpStream> MultiplexedHttpStream::RenewStreamForAuth() {
37   return nullptr;
38 }
39 
SetConnectionReused()40 void MultiplexedHttpStream::SetConnectionReused() {}
41 
CanReuseConnection() const42 bool MultiplexedHttpStream::CanReuseConnection() const {
43   // Multiplexed streams aren't considered reusable.
44   return false;
45 }
46 
SetRequestHeadersCallback(RequestHeadersCallback callback)47 void MultiplexedHttpStream::SetRequestHeadersCallback(
48     RequestHeadersCallback callback) {
49   request_headers_callback_ = std::move(callback);
50 }
51 
DispatchRequestHeadersCallback(const quiche::HttpHeaderBlock & spdy_headers)52 void MultiplexedHttpStream::DispatchRequestHeadersCallback(
53     const quiche::HttpHeaderBlock& spdy_headers) {
54   if (!request_headers_callback_)
55     return;
56   HttpRawRequestHeaders raw_headers;
57   for (const auto& entry : spdy_headers) {
58     raw_headers.Add(entry.first, entry.second);
59   }
60   request_headers_callback_.Run(std::move(raw_headers));
61 }
62 
63 }  // namespace net
64