From e1d970b5eb02dbd68c249ae1c7bd8acaf6a938a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 26 Oct 2018 10:18:57 +0200 Subject: Switch cowboy_http2 to the new cow_http2_machine The new module is a merge of the Cowboy and Gun HTTP/2 state machines. Using a common code will help future developments rather than duplicating the work. A notable change is in how streams are terminated when the handler stops before the body is sent. The cowboy_stream:terminate function is now called only after the body has been sent fully (or the stream is reset in-between), not when the stop command is returned. This will most likely have an impact on metrics but will be closer to reality. I had to comment a broken test in rfc7231_SUITE that was cheating, cheating is no longer possible. This depends on Cowlib master for the time being. A new Cowlib version will be released once both Cowboy and Gun are ported to use cow_http2_machine and I'm satisfied with it. --- test/rfc7231_SUITE.erl | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'test') diff --git a/test/rfc7231_SUITE.erl b/test/rfc7231_SUITE.erl index fac9903..2bd5bb1 100644 --- a/test/rfc7231_SUITE.erl +++ b/test/rfc7231_SUITE.erl @@ -150,14 +150,16 @@ method_delete(Config) -> {ok, <<"DELETE">>} = gun:await_body(ConnPid, Ref), ok. -method_connect(Config) -> - doc("The CONNECT method is currently not implemented. (RFC7231 4.3.6)"), - ConnPid = gun_open(Config), - Ref = gun:request(ConnPid, <<"CONNECT">>, "localhost:8080", [ - {<<"accept-encoding">>, <<"gzip">>} - ]), - {response, fin, 501, _} = gun:await(ConnPid, Ref), - ok. +%% @todo This test is currently broken because Gun does not +%% send a proper CONNECT request. +%method_connect(Config) -> +% doc("The CONNECT method is currently not implemented. (RFC7231 4.3.6)"), +% ConnPid = gun_open(Config), +% Ref = gun:request(ConnPid, <<"CONNECT">>, "localhost:8080", [ +% {<<"accept-encoding">>, <<"gzip">>} +% ]), +% {response, fin, 501, _} = gun:await(ConnPid, Ref), +% ok. % A client sending a CONNECT request MUST send the authority form of % request-target (Section 5.3 of [RFC7230]); i.e., the request-target -- cgit v1.2.3