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

1932 commits

Author SHA1 Message Date
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
3310849115
Simplify a case clause 2018-10-26 10:16:15 +02:00
Loïc Hoguin
497e9d459e
Add yet another RFC to the list 2018-10-26 10:15:41 +02:00
Loïc Hoguin
c998673eb0
Fix Cowboy version in the getting started chapter 2018-10-02 10:05:40 +02:00
Loïc Hoguin
d394eb7256
Fix ranch:start_tls when transport options are a map 2018-10-02 10:03:09 +02:00
Loïc Hoguin
a428b10abf
Shorten a command in the Makefile 2018-10-02 09:36:07 +02:00
Loïc Hoguin
3c8e6cf819
Use gun:info instead of hacks for test socket operations 2018-09-26 17:17:25 +02:00
getong
4493afbba0
Update Ranch to 1.6.2 2018-09-23 14:24:37 +02:00
Herman Singh
86cb105679
Rename handler modules to _h 2018-09-23 14:12:38 +02:00
Loïc Hoguin
8045f7a998
Add a spec to the list 2018-09-23 14:11:28 +02:00
Loïc Hoguin
bc43fca9e6
Fix stream_handler_SUITE test failures due to compression
We always compress when streaming the body back to the client
regardless of the size actually streamed.
2018-09-23 14:10:04 +02:00
Loïc Hoguin
f63609cb9c
Correct two tests that introspect the Gun state
It has changed in Gun 1.2.
2018-09-23 14:04:47 +02:00
Loïc Hoguin
a0f8d9b8b8
Rename the HTTP/2 Websocket test suite to rfc8441_SUITE 2018-09-21 16:12:19 +02:00
Loïc Hoguin
9901a3b568
Update Cowlib to 2.6.0 2018-09-21 15:12:58 +02:00
Loïc Hoguin
f810d8dd64
Add the {active, boolean()} Websocket command
This command is currently not documented. It allows disabling
the reading of incoming data from the socket, and can be used
as a poor man's flow control.
2018-09-21 15:01:57 +02:00
Loïc Hoguin
6e784f1a45
Remove an outdated note about cowboy_loop timeout 2018-09-20 15:57:15 +02:00
Loïc Hoguin
9f401f8899
Add RFC 8441 to the list 2018-09-19 09:14:58 +02:00
Loïc Hoguin
b56a5a1d60
Do not send a 101 after a final response in switch_protocol 2018-09-12 16:16:29 +02:00
Loïc Hoguin
26bc4afad4
Prepare the 2.5.0 release 2018-09-12 15:00:48 +02:00
Loïc Hoguin
3b173fd42c
Update erlang.mk 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
8390b04f7a
Swap the ws and autobahn test groups to run autobahn last
If there's an error it makes sense to have feedback as early
as possible.
2018-09-11 14:45:41 +02:00
Loïc Hoguin
8404b1c908
Add a commands-based interface to Websocket handlers
This feature is currently experimental. It will become the
preferred way to use Websocket handlers once it becomes
documented.

A commands-based interface enables adding commands without
having to change the interface much. It mirrors the interface
of stream handlers or gen_statem. It will enable adding
commands that have been needed for some time but were not
implemented for fear of making the interface too complex.
2018-09-11 14:33:58 +02:00
Loïc Hoguin
4b385749f2
Add cowboy_req:read_and_match_urlencoded_body/2,3 2018-09-07 13:56:12 +02:00
Loïc Hoguin
dcc6f9326f
Fix some grammatical errors in the manual 2018-09-07 13:53:12 +02:00
Loïc Hoguin
a02d6590c4
Add upcoming Clear Site Data draft to the list 2018-09-07 13:51:25 +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
0a5fadc60b
Improve errors for when the ProvideCallback is missing 2018-08-13 17:23:48 +02:00
Loïc Hoguin
06a3a93de0
Update Ranch to 1.6.1 2018-08-13 15:07:59 +02:00
Loïc Hoguin
3bda790901
Clarify the DEP_PLUGINS line in the Getting Started 2018-08-13 11:14:53 +02:00
Loïc Hoguin
ef426e0ff4
Fix the infinity timeout tests
Make sure the test fails when the code is incorrect.
2018-08-13 11:10:49 +02:00
Loïc Hoguin
b0774f7069
Move some test functions off to ct_helper 2018-08-13 11:10:49 +02:00
Bing Han
e9fd2925ae
Fix cancelling undefined settings timer
when settings_timeout is infinity
2018-08-13 11:10:49 +02:00
Loïc Hoguin
aee40d5bb5
Update Erlang.mk 2018-08-13 08:38:49 +02:00
Loïc Hoguin
4b65a307f8
Add missing log command to the commands() type 2018-08-06 13:31:44 +02:00
Loïc Hoguin
2577068bf2
Remove an incorrect statement from the guide 2018-08-06 13:31:09 +02:00
Loïc Hoguin
5bece31775
Add missing logger spec for cowboy_http2 opts 2018-07-09 10:08:48 +02:00
Loïc Hoguin
a76c32db5e
Introduce undocumented option logger
This commit reworks the logging that Cowboy does via
error_logger to make the module that will do the actual
logging configurable.

The logger module interface must be the same as logger
and lager: a separate function per log level with the
same log levels they support.

The default behavior remains to call error_logger,
although some messages were downgraded to warnings
instead of errors. Since error_logger only supports
three different log levels, some messages may get
downgraded/upgraded depending on what the original
log level was to make them compatible with error_logger.

The {log, Level, Format, Args} command was also
added to stream handlers. Stream handlers should
use this command to log messages because it allows
writing a stream handler to intercept some of those
messages and extract information or block them as
necessary.

The logger option only applies to Cowboy itself,
not to the messages Ranch logs, so more work remains
to be done in that area.
2018-06-28 17:10:18 +02:00
Loïc Hoguin
1614335436
Remove a stream handlers related todo not worth doing 2018-06-27 18:08:29 +02:00
Loïc Hoguin
34f57ebbd3
Make sure cowboy_stream_h calls subsequent stream handlers 2018-06-27 18:07:58 +02:00
Loïc Hoguin
68ede9cfe4
Disable warnings for erlang:get_stacktrace/0 in OTP-21+ 2018-06-27 17:52:25 +02:00
Loïc Hoguin
6b1db885d1
Use cowboy_req:stream_events in the eventsource example 2018-06-27 13:50:37 +02:00
Loïc Hoguin
0fb68ec07f
Add test cases for cowboy_req:stream_events 2018-06-27 13:40:11 +02:00
Loïc Hoguin
faefb634de
Document cowboy_req:stream_events/3 2018-06-27 10:29:49 +02:00
Loïc Hoguin
5001fcbc34
Add missing frame types to websocket_handle specs/docs
Thanks Artem.
2018-06-26 10:59:22 +02:00
Loïc Hoguin
7867e435fe
Fix tests for most recent Gun 2018-06-26 10:32:33 +02:00
Loïc Hoguin
b2b5e3a01a
Add an undocumented stream_events function
I will test it on a private project before settling on it.
2018-06-25 15:56:29 +02:00
Eric Meadows-Jönsson
f08f4610a0
Add streaming without chunking for HTTP/1.1
If content-length is set in the response headers
we can skip chunked transfer-encoding.
2018-06-25 11:44:38 +02:00
Loïc Hoguin
69451dd98d
The TLS certificate can be accessed directly 2018-06-11 20:51:57 +02:00
Loïc Hoguin
5758336453
Fix an example missing a " in the manual 2018-06-11 15:57:21 +02:00