From a8a26897274c798cb95d3a2e9e8da1215c2da78a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 1 Apr 2020 18:02:59 +0200 Subject: Fix h2spec "invalid preface sequence" test Introduce a currently undocumented option to allow disabling cowboy_http when using a clear listener. --- src/cowboy_clear.erl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/cowboy_clear.erl b/src/cowboy_clear.erl index 0af734f..4f3a234 100644 --- a/src/cowboy_clear.erl +++ b/src/cowboy_clear.erl @@ -41,7 +41,16 @@ connection_process(Parent, Ref, Transport, Opts) -> undefined end, {ok, Socket} = ranch:handshake(Ref), - init(Parent, Ref, Socket, Transport, ProxyInfo, Opts, cowboy_http). + %% Use cowboy_http2 directly only when 'http' is missing. + %% Otherwise switch to cowboy_http2 from cowboy_http. + %% + %% @todo Extend this option to cowboy_tls and allow disabling + %% the switch to cowboy_http2 in cowboy_http. Also document it. + Protocol = case maps:get(protocols, Opts, [http2, http]) of + [http2] -> cowboy_http2; + [_|_] -> cowboy_http + end, + init(Parent, Ref, Socket, Transport, ProxyInfo, Opts, Protocol). init(Parent, Ref, Socket, Transport, ProxyInfo, Opts, Protocol) -> _ = case maps:get(connection_type, Opts, supervisor) of -- cgit v1.2.3