<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 13 Apr 2020 at 01:34, Ivan Ristic <<a href="mailto:ivan.ristic@gmail.com">ivan.ristic@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hello list,<div><br></div><div>Is there any interest in getting HTTP CONNECT over HTTP/2 to work? I spent some time on it, but although I fixed two small issues, I hit a third that was beyond my undertow knowledge. I was left feeling that getting this to work only requires a few connecting pieces, although naturally I could be wrong.</div></div></div></div></div></div></div></div></div></div></div></blockquote><div><br></div><div>It's a cool idea, but it's unlikely we will have time to look at it in the short term. If you wanted to look into it we should be able to give you some tips.</div><div><br></div><div>Stuart</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>Here's what I discovered:</div><div><br></div>- In Http2ReceiveListener, there's code that refuses requests that don't have path set (with "No :path header sent in HTTP/2 request"). However, path must be omitted with CONNECT per <a href="https://tools.ietf.org/html/rfc7540#page-64" target="_blank">https://tools.ietf.org/html/rfc7540#page-64</a> <br><br>- Later on, ConnectHandler doesn't expect the path to be null.</div>- The acceptConnectRequest handler from <a href="https://github.com/undertow-io/undertow/blob/master/core/src/main/java/io/undertow/server/handlers/ConnectHandler.java" target="_blank">https://github.com/undertow-io/undertow/blob/master/core/src/main/java/io/undertow/server/handlers/ConnectHandler.java</a> is not getting called and the connection is thus not setup. This is because Http2ServerConnection#setConnectListener doesn't do anything, unlike its counterpart HttpServerConnection.<div dir="ltr"><br></div><div>For context, I was playing with the idea of building a general-purpose forward TCP proxy based on undertow. HTTP/2 is of interest here because of multiplexing, which would eliminate connection setup costs [of both TCP and TLS] between the client and proxy and substantially improve performance when many connections are needed.</div><div><br></div><div>If it matters, I used Jetty's HTTP/2 client library to connect to Undertow, although I had to patch it to not send path and scheme when method is CONNECT.</div><div dir="ltr"><div><br></div>-- <br><div dir="ltr">Ivan</div></div></div></div></div></div></div></div></div></div></div>
_______________________________________________<br>
undertow-dev mailing list<br>
<a href="mailto:undertow-dev@lists.jboss.org" target="_blank">undertow-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/undertow-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/undertow-dev</a></blockquote></div></div>