diff options
author | Viktor Söderqvist <[email protected]> | 2022-08-25 14:29:35 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2022-08-30 14:21:00 +0200 |
commit | ad6302f51092009de5b1d4481ef2bfcd4091a257 (patch) | |
tree | 7938a0e63a3688a455a252ca5ca3113f2c6622f9 /src/gun_tunnel.erl | |
parent | 5a175dc6d5c0beddb78900b2d4ad817c9be7c2df (diff) | |
download | gun-ad6302f51092009de5b1d4481ef2bfcd4091a257.tar.gz gun-ad6302f51092009de5b1d4481ef2bfcd4091a257.tar.bz2 gun-ad6302f51092009de5b1d4481ef2bfcd4091a257.zip |
Make Protocol:init/4 return an ok-tuple
This is a preparation for allowing init/4 to return an ok or an
error tuple.
Diffstat (limited to 'src/gun_tunnel.erl')
-rw-r--r-- | src/gun_tunnel.erl | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gun_tunnel.erl b/src/gun_tunnel.erl index 40addf6..169fd6f 100644 --- a/src/gun_tunnel.erl +++ b/src/gun_tunnel.erl @@ -113,7 +113,8 @@ init(ReplyTo, OriginSocket, OriginTransport, Opts=#{stream_ref := StreamRef, tun %% Initialize the protocol. #{new_protocol := NewProtocol} -> {Proto, ProtoOpts} = gun_protocols:handler_and_opts(NewProtocol, Opts), - {_, ProtoState} = Proto:init(ReplyTo, OriginSocket, OriginTransport, + %% @todo Handle error result from Proto:init/4 + {ok, _, ProtoState} = Proto:init(ReplyTo, OriginSocket, OriginTransport, ProtoOpts#{stream_ref => StreamRef, tunnel_transport => tcp}), EvHandlerState = EvHandler:protocol_changed(#{ stream_ref => StreamRef, @@ -195,7 +196,8 @@ handle_continue(ContinueStreamRef, {gun_tls_proxy, ProxyPid, {ok, Negotiated}, reply_to => ReplyTo, stream_ref => StreamRef }, - {_, ProtoState} = Proto:init(ReplyTo, OriginSocket, gun_tcp_proxy, + %% @todo Handle error result from Proto:init/4 + {ok, _, ProtoState} = Proto:init(ReplyTo, OriginSocket, gun_tcp_proxy, ProtoOpts#{stream_ref => StreamRef, tunnel_transport => tls}), ReplyTo ! {gun_tunnel_up, self(), StreamRef, Proto:name()}, {{state, State#tunnel_state{protocol=Proto, protocol_state=ProtoState}}, @@ -476,7 +478,8 @@ commands([{switch_protocol, NewProtocol, ReplyTo}|Tail], EvHandler, EvHandlerState0) -> {Proto, ProtoOpts} = gun_protocols:handler_and_opts(NewProtocol, Opts), %% This should only apply to Websocket for the time being. - {connected_ws_only, ProtoState} = Proto:init(ReplyTo, Socket, Transport, ProtoOpts), + %% @todo Handle error result from Proto:init/4 + {ok, connected_ws_only, ProtoState} = Proto:init(ReplyTo, Socket, Transport, ProtoOpts), #{stream_ref := StreamRef} = ProtoOpts, EvHandlerState = EvHandler:protocol_changed(#{ stream_ref => StreamRef, |