[ 
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)

Reply via email to