0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 12:20:24 +00:00
Commit graph

161 commits

Author SHA1 Message Date
Loïc Hoguin
48f417ac8f
Fix and optimize sending of WINDOW_UPDATE frames
For long-running connections it was possible for the connection
window to become larger than allowed by the protocol because the
window increases claimed by stream handlers were never reclaimed
even if no data was consumed.

The new code applies heuristics to fix this and reduce the number
of WINDOW_UPDATE frames that are sent. It includes six new options
to control that behavior: margin, max and threshold for both the
connection and stream windows. The margin is some extra space
added on top of the requested read size. The max is the maximum
window size at any given time. The threshold is a minimum window
size that must be reached before we even consider sending more
WINDOW_UPDATE frames. We also avoid sending WINDOW_UPDATE frames
when there is already enough space in the window, or when the
read size is 0.

Cowlib is set to master until a new tag is done.
2019-09-05 14:07:38 +02:00
Loïc Hoguin
aedf6379cc
Update CI to only test on OTP-20+ 2019-08-29 16:59:03 +02:00
Loïc Hoguin
d846827b2a
Cowboy 2.6.3 2019-04-05 11:09:55 +02:00
Loïc Hoguin
39a0bf4bee
Add a prepare_tag target to help with releasing 2019-04-05 11:08:33 +02:00
Loïc Hoguin
d5489b4c73
Cowboy 2.6.2
Updates Cowlib to 2.7.2.
2019-04-04 11:23:50 +02:00
Loïc Hoguin
6f68d7d2d6
Use Gun 1.2.0 for tests to avoid OTP-19 issues
And temporarily depend on Cowlib master to confirm everything
works as intended.
2019-04-03 15:53:51 +02:00
Loïc Hoguin
867ca66fab
Cowlib 2.7.1 2019-04-01 15:04:33 +02:00
Loïc Hoguin
b9d329c026
Don't error out when h2spec can't be compiled 2019-03-10 11:21:51 +01:00
Loïc Hoguin
4918e271bd
Use Gun 1.3.0 instead of master for tests 2019-03-08 16:04:55 +01:00
Loïc Hoguin
e0254cdcb0
Cowboy 2.6.1 2018-11-28 12:15:17 +01:00
Loïc Hoguin
291d493c21
Update Ranch to 1.7.1 2018-11-28 12:11:08 +01:00
Loïc Hoguin
7b5da29019
Don't run long test suites by default
The examples test suite is only useful once in a while
in order to know whether examples were broken, for example
before issuing a release.

The new ws_autobahn test suite isolates the autobahn test
suite so that it can be ignored by default. It's only
useful to run it when working on the Websocket code or
before issuing a release.
2018-11-20 13:23:59 +01:00
Loïc Hoguin
417032a445
Prepare the Cowboy 2.6 release 2018-11-17 13:36:14 +01:00
Loïc Hoguin
1e2d59ed26
Ranch 1.7.0 2018-11-14 12:33:43 +01:00
Loïc Hoguin
a8335c63df
Always dialyze tests and fix some cowboy_req specs 2018-10-31 10:50:57 +01:00
Loïc Hoguin
122faedc25
Initial support for the PROXY protocol header
Depend on Ranch master for now since it isn't in any release yet.
2018-10-30 23:30:54 +01:00
Loïc Hoguin
e1d970b5eb
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.
2018-10-26 10:23:28 +02:00
Loïc Hoguin
a428b10abf
Shorten a command in the Makefile 2018-10-02 09:36:07 +02:00
getong
4493afbba0
Update Ranch to 1.6.2 2018-09-23 14:24:37 +02:00
Loïc Hoguin
9901a3b568
Update Cowlib to 2.6.0 2018-09-21 15:12:58 +02:00
Loïc Hoguin
26bc4afad4
Prepare the 2.5.0 release 2018-09-12 15:00:48 +02:00
Loïc Hoguin
7a36bc7488
Update Cowlib to 2.5.1 2018-09-12 15:00:48 +02:00
Loïc Hoguin
8d634d0ff4
See if recompiling ct_helper every time fixes ci builds 2018-08-13 22:23:05 +02:00
Loïc Hoguin
06a3a93de0
Update Ranch to 1.6.1 2018-08-13 15:07:59 +02:00
Loïc Hoguin
db8e713a86
Don't fail when copying erl_make_certs 2018-05-23 17:07:18 +02:00
Loïc Hoguin
93e8744e22
Move cowboy_iolists to Cowlib as cow_iolists
Depend on Cowlib master for the moment.
2018-05-07 15:33:11 +02:00
Loïc Hoguin
5d5f3f8461
Update Cowboy to 2.4.0 2018-04-30 15:12:09 +02:00
Loïc Hoguin
42439b93db
Update Cowlib to 2.3.0 2018-04-30 15:11:06 +02:00
Loïc Hoguin
b2f16d462a
Fix building of h2spec on FreeBSD 2018-04-26 13:05:40 +02:00
Loïc Hoguin
8bd55941aa
Fix the h2spec git URL 2018-04-25 18:21:56 +02:00
Loïc Hoguin
bc79529b4d
Build h2spec automatically when running tests 2018-04-25 12:07:44 +02:00
Loïc Hoguin
7c366986d5
Update Ranch to 1.5.0 2018-04-10 13:43:50 +02:00
Loïc Hoguin
ac349120f6
Depend on Cowlib master for now 2018-04-06 17:39:48 +02:00
Loïc Hoguin
a7b06f2e13
Tentatively update Cowboy to 2.3.0 2018-03-28 18:15:40 +02:00
Loïc Hoguin
28f8b0f29a
Update Cowlib to 2.2.1 2018-03-28 18:12:37 +02:00
Loïc Hoguin
e4f1c332a3
Add a test suite for RFC7538; update Cowlib to 2.2.0
This adds the 308 status code and fixes a few small
parsing bugs.
2018-03-05 16:48:56 +01:00
Loïc Hoguin
b47b511cbe
Enable ci.erlang.mk only when CI_ERLANG_MK=1 is set
This will avoid issues with other people's build systems.
2018-02-28 17:44:23 +01:00
Loïc Hoguin
8d49ae3dda
Update Cowboy to 2.2.2 2018-01-24 11:50:07 +01:00
Loïc Hoguin
d329ca4b60
Update Cowboy to 2.2.1 2018-01-23 17:01:17 +01:00
Loïc Hoguin
482de55a96
Fix a miscount of output flow control window for HTTP/2
The miscount occurred because of a faulty iolist split function.
The bug should now be corrected, a PropEr test has been added
and a regression test has also been added.
2018-01-23 16:14:18 +01:00
Loïc Hoguin
388a68fc2e
Update Cowboy to 2.2.0 2017-12-11 14:17:38 +01:00
Loïc Hoguin
344cec95b4
Add AUTO_CI_WINDOWS variable 2017-11-19 13:25:54 +01:00
Loïc Hoguin
435c541810
Move ci.erlang.mk to TEST_DEPS 2017-11-17 22:57:44 +01:00
Loïc Hoguin
52d869128b
Tweak the Makefile 2017-11-17 13:18:13 +01:00
Loïc Hoguin
39baed6c80
Add preliminary support for trailers in responses
This depends on changes in Cowlib that are only available on
master.
2017-11-15 14:58:49 +01:00
Loïc Hoguin
56dc5673d0
Use my new ci.erlang.mk plugin
Instead of tracking Erlang/OTP versions manually in each project,
I can just say OTP-19+ and let the plugin fill in the most recent
patch releases for each version. In addition I will configure the
CI commands to cleanup unneeded versions automatically.
2017-11-12 22:31:02 +01:00
Loïc Hoguin
1e88324864
Update Cowboy to 2.1.0
Also add OTP-20.1.4 to CI.
2017-11-08 14:05:30 +00:00
Loïc Hoguin
5e88a9b394
Update Cowlib to 2.0.1 and fix OTP 20.1+ Websocket compression
Unfortunately compression will be disabled for 20.1, 20.1.1
and 20.1.2. In additiona I do not recommend 20.1.3 due to
issues inflating some specific sizes.
2017-11-01 15:41:52 +00:00
Loïc Hoguin
d43bcb5cb3
Add OTP-20.1.2 to CI 2017-10-13 23:21:27 +02:00
Loïc Hoguin
716a052b15
Update version, CI and Cowlib dependency version
Hello 2.0.0!
2017-10-03 17:10:16 +02:00