From 8033850ab81ca0639489636bb8760d93900d4a80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 18 Sep 2020 17:01:25 +0200 Subject: Initial success for h2 CONNECT -> https CONNECT -> https --- src/gun_tcp_proxy.erl | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/gun_tcp_proxy.erl') diff --git a/src/gun_tcp_proxy.erl b/src/gun_tcp_proxy.erl index b4236f4..0107ac1 100644 --- a/src/gun_tcp_proxy.erl +++ b/src/gun_tcp_proxy.erl @@ -24,8 +24,14 @@ -export([close/1]). -type socket() :: #{ + %% The pid of the Gun connection. + gun_pid := pid(), + + %% The pid of the process that gets replies for this tunnel. reply_to := pid(), - stream_ref := reference() | [reference()] + + %% The full stream reference for this tunnel. + stream_ref := gun:stream_ref() }. name() -> tcp_proxy. @@ -41,10 +47,17 @@ connect(_, _, _, _) -> error(not_implemented). -spec send(socket(), iodata()) -> ok. +send(#{gun_pid := GunPid, reply_to := ReplyTo, stream_ref := StreamRef, + handle_continue_stream_ref := ContinueStreamRef}, Data) -> + GunPid ! {handle_continue, ContinueStreamRef, {data, ReplyTo, StreamRef, nofin, Data}}, + ok; send(#{reply_to := ReplyTo, stream_ref := StreamRef}, Data) -> gen_statem:cast(self(), {data, ReplyTo, StreamRef, nofin, Data}). -spec setopts(_, _) -> no_return(). +setopts(#{handle_continue_stream_ref := _}, _) -> + %% We send messages automatically regardless of active mode. + ok; setopts(_, _) -> error(not_implemented). -- cgit v1.2.3