Approvals: 0/1
[08:48:01] * ChanServ sets mode: +o temporal_ [09:48:08] * ChanServ sets mode: +o temporalfox
[11:06:34] *** ChanServ sets mode: +o temporalfox
[16:04:39] <AlexLehm> temporalfox: hi Julien, I have implemented a first version of https proxy support based on the proxy support in Netty
[16:05:12] <temporalfox> AlexLehm great, however I would like to know how this can work with HTTP/1 and HTTP/2
[16:05:24] <temporalfox> i.e connect to a proxy via HTTP/1 and then either make HTTP/1 or HTTP/2 requests
[16:05:46] <temporalfox> same with connectin in hTTP/2 then make either HTTP/1 or HTTP/2
[16:05:49] <temporalfox> that's a scenario that should be possible I think
[16:06:03] <AlexLehm> I have almost no knowledge how http 2 works, for starters I have implemented it with the http 1.1 client
[16:06:06] <temporalfox> how does it work via netty ?
[16:06:32] <temporalfox> with HTTP/2 you also make CONNECT
[16:06:42] <temporalfox> the difference I think it's in the setup
[16:06:43] <AlexLehm> netty has a HttpProxyHandler class that does the proxy connection dialogue before doing the sslhandler
[16:06:49] <temporalfox> ok
[16:06:50] <AlexLehm> it might work with http/2 as well
[16:07:12] <temporalfox> can you try to make a test for this ?
[16:07:19] <temporalfox> in HttpTest class
[16:07:38] <temporalfox> I would look after at using the same handler with HTTP/2 protocol directly
[16:07:46] <temporalfox> but I think it would not work because of multiplexing
[16:07:52] <AlexLehm> i have thought some time about how to test that inside the vertx build, for now I am using a squid running on my computer, which doesn't work in general
[16:08:20] <temporalfox> ah I think you would write a test directly with a Netty server ?
[16:08:32] <AlexLehm> I think the easiest way would be to write a mock-proxy that does the connect and ssl, I have written something like that in a test project
[16:08:42] <temporalfox> or with an HttpServer that uses the toNetSocket ?
[16:08:57] <temporalfox> that's why it is for isnt it ?
[16:08:58] <AlexLehm> the test server should work with vert.x, basically its a http request that uses the NetSocket
[16:09:12] <temporalfox> ah yes that's what I meant
[16:09:20] <temporalfox> however it would only be able to test HTTP 1 easily
[16:09:25] <temporalfox> well also for HTTP/2
[16:09:34] <temporalfox> but it is framed protocol
[16:09:38] <temporalfox> not in clear
[16:09:57] <temporalfox> maybe we can have your work in a branch first
[16:10:06] <temporalfox> and see how to improve it for various case
[16:11:03] <temporalfox> and how about doing a real proxy ?
[16:11:12] <temporalfox> with two HTTP servers
[16:11:44] <AlexLehm> a real proxy would be possible as well, that just has to pump the data in both directions to the origin server
[16:11:58] <temporalfox> yes that would be easier for testing HTTP/2
[16:12:12] <AlexLehm> a connect proxy is basically a simple port forwarder anyway
[16:12:18] <temporalfox> yes
[16:12:24] <AlexLehm> https://github.com/alexlehm/vert.x/tree/issues/%231361-https-proxy
[16:13:00] <temporalfox> please provide a tests for http/1 with a proxy and a server
[16:13:14] <temporalfox> then I'll try to make an http 2 test after an http 1 connect
[16:13:25] <temporalfox> and see what is possible for HTTP/2 connect
[16:16:32] <AlexLehm> ok
[16:21:19] <temporalfox> actually the code inside the proxy
[16:21:25] <temporalfox> handler is quite easy
[16:21:40] <temporalfox> well anyway, I think what matters is testing