diff options
author | Loïc Hoguin <[email protected]> | 2019-04-22 13:40:07 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2019-04-22 13:40:07 +0200 |
commit | 5e3a5337a34dcb09418d4f412b11ede4510e3ddc (patch) | |
tree | 294fde46b7b0775ce62c854892ddcf1c4a73ead2 /src/gun_tls_proxy.erl | |
parent | b2aed85a2a8794f0cc23755d1a10c602ab289ff4 (diff) | |
download | gun-5e3a5337a34dcb09418d4f412b11ede4510e3ddc.tar.gz gun-5e3a5337a34dcb09418d4f412b11ede4510e3ddc.tar.bz2 gun-5e3a5337a34dcb09418d4f412b11ede4510e3ddc.zip |
Make gun_tls_proxy work for HTTP/2 connections
Diffstat (limited to 'src/gun_tls_proxy.erl')
-rw-r--r-- | src/gun_tls_proxy.erl | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gun_tls_proxy.erl b/src/gun_tls_proxy.erl index 8adb5b6..123a156 100644 --- a/src/gun_tls_proxy.erl +++ b/src/gun_tls_proxy.erl @@ -222,8 +222,13 @@ not_connected({call, _}, Msg={send, _}, State) -> not_connected(cast, Msg={setopts, _}, State) -> ?DEBUG_LOG("postpone ~0p state ~0p", [Msg, State]), {keep_state_and_data, postpone}; -not_connected(cast, Msg={connect_proc, {ok, Socket}}, State) -> +not_connected(cast, Msg={connect_proc, {ok, Socket}}, State=#state{owner_pid=OwnerPid}) -> ?DEBUG_LOG("msg ~0p state ~0p", [Msg, State]), + Protocol = case ssl:negotiated_protocol(Socket) of + {ok, <<"h2">>} -> gun_http2; + _ -> gun_http + end, + OwnerPid ! {connect_protocol, Protocol}, ok = ssl:setopts(Socket, [{active, true}]), {next_state, connected, State#state{proxy_socket=Socket}}; not_connected(cast, Msg={connect_proc, Error}, State) -> |