From 07e79aa3a70546fe4419b94cbf41c38a6eb039a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 20 Sep 2019 16:22:53 +0200 Subject: Always switch_protocol When doing a CONNECT from http to http or from socks to socks we may want to use different configuration options. Switching the protocol explicitly helps us achieve that. It will also signal through events that a protocol switch occurred. --- src/gun_http.erl | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'src/gun_http.erl') diff --git a/src/gun_http.erl b/src/gun_http.erl index 85fd2c4..44575bf 100644 --- a/src/gun_http.erl +++ b/src/gun_http.erl @@ -313,14 +313,9 @@ handle_head(Data, State=#http_state{version=ClientVersion, content_handlers=Hand {[{origin, <<"https">>, NewHost, NewPort, connect}, {tls_handshake, HandshakeEvent, Protocols}], EvHandlerState1}; _ -> - case Protocols of - [http] -> - {[{state, State2}, - {origin, <<"http">>, NewHost, NewPort, connect}], EvHandlerState1}; - [http2] -> - {[{origin, <<"http">>, NewHost, NewPort, connect}, - {switch_protocol, http2}], EvHandlerState1} - end + [Protocol] = Protocols, + {[{origin, <<"http">>, NewHost, NewPort, connect}, + {switch_protocol, Protocol}], EvHandlerState1} end; {_, _} when Status >= 100, Status =< 199 -> ReplyTo ! {gun_inform, self(), stream_ref(StreamRef), Status, Headers}, -- cgit v1.2.3