[
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14311790#comment-14311790
]
Leif Hedstrom commented on TS-2729:
-----------------------------------
Playing with this again, starting to look good! I get one warning when
compiling:
{code}
In file included from HttpClientSession.cc:35:0:
HttpClientSession.h: In constructor ‘HttpClientSession::HttpClientSession()’:
HttpClientSession.h:128:8: warning: ‘HttpClientSession::slave_ka_vio’ will be
initialized after [-Wreorder]
VIO *slave_ka_vio;
^
HttpClientSession.h:118:8: warning: ‘bool HttpClientSession::upgrade_to_h2c’
[-Wreorder]
bool upgrade_to_h2c; // Switching to HTTP/2 with upgrade mechanism
^
HttpClientSession.cc:62:1: warning: when initialized here [-Wreorder]
HttpClientSession::HttpClientSession()
^
{code}
I also can't seem to get it to negotiate over ALPN. I installed OpenSSL 1.0.2
(latest stable), and my config.log shows:
{code}
use_tls_alpn='1'
#define HAVE_SSL_CTX_SET_ALPN_PROTOS 1
#define HAVE_SSL_CTX_SET_ALPN_SELECT_CB 1
#define HAVE_SSL_GET0_ALPN_SELECTED 1
{code}
But, nghttp -s -v shows
{code}
[ 0.031] Connected
[ 0.073][NPN] server offers:
* spdy/3.1
* spdy/3
* h2-14
* http/1.1
* http/1.0
The negotiated protocol: h2-14
{code}
But, browsers like Chrome Canary does not want to negotiate H2 over NPN. Any
ideas?
> Add HTTP/2 support to ATS
> -------------------------
>
> Key: TS-2729
> URL: https://issues.apache.org/jira/browse/TS-2729
> Project: Traffic Server
> Issue Type: New Feature
> Components: HTTP/2
> Reporter: Ryo Okubo
> Assignee: James Peach
> Labels: review
> Fix For: 6.0.0
>
> Attachments: 0003-h2-prototype.patch, h2c_upgrade.patch, hpack.patch,
> http2-0004.patch
>
>
> h2. Overview
> Support HTTP/2 as a client side L7 protocol. This feature is implemented into
> ATS core.
> Now, it supports the latest HTTP/2 draft version, h2-16.
> https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
> h2. How to test
> # Build ATS codes normally. you need neither any build option nor external
> HTTP/2 library.
> # Configure settings to use https.
> # Add settings to records.config to use http2.
> {noformat}
> CONFIG proxy.config.http2.enabled INT 1
> {noformat}
> # Access to ATS by HTTP/2 client.
> h2. Descriptions of current attached patches.
> * 0003-h2-prototype.patch
> ** For experiment. Please don't merge it. It enables to interpret HTTP/2
> requests and respond for it. But now this code is unsafe and dirty. More
> refactoring is required.
> h2. DONE
> * Fundamental HTTP/2 frame handling
> * Flow control
> * Some error handlings
> h2. TODO
> * Refactoring
> * More debugging
> * Write documents
> * Add test tools for HPACK, HTTP/2 frames
> h2. No plan
> * [Server
> Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2]
> * [Stream
> Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
> * [Alternative
> Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)