New issue
Advanced search Search tips

Issue 736063 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 689762



Sign in to add a comment

SpdySession should check version support when process QUIC alternative service

Project Member Reported by zhongyi@chromium.org, Jun 22 2017

Issue description

SpdySession currently saves Quic alternative service to HttpServerProperties without checking whether the Quic version advertised by the server is supported by the client. This will lead us to create unnecessary QUIC connections if the version is actually not supported. 

Additionally, HttpStreamFactory::ProcessAlternativeService() does the version check, we should probably consider factory parsing into a single function that could be used in both places.

void SpdySession::OnAltSvc(...) {
  ...

  for (const SpdyAltSvcWireFormat::AlternativeService& altsvc : altsvc_vector) {
    const NextProto protocol = NextProtoFromString(altsvc.protocol_id);
    if (protocol == kProtoUnknown)
      continue;
    const AlternativeService alternative_service(protocol, altsvc.host,
                                                 altsvc.port);
    const base::Time expiration =
        now + base::TimeDelta::FromSeconds(altsvc.max_age);
    alternative_service_info_vector.push_back(                       <------ no filtering on version field
        AlternativeServiceInfo(alternative_service, expiration));
  }
  http_server_properties_->SetAlternativeServices(
      scheme_host_port, alternative_service_info_vector);

  ...
} 
 
Owner: zhongyi@chromium.org
Status: Assigned (was: Untriaged)
We may also consider factoring the QUIC version filtering logic into a single method so that SpdySession and HttpStreamFactor::ProcessAlternativeService could call the same method. 
Status: Fixed (was: Assigned)

Sign in to add a comment