0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-15 20:50:24 +00:00

Add max_frame_size option for websocket handlers

Option allows to limit a frame by size before decoding its payload.

LH: I have added a test for when the limit is reached on a nofin
fragmented frame (the last commit addressed that case but it had
no test). I have fixed formatting and other, and changed the
default value to infinity since it might otherwise be incompatible
with existing code. I also added documentation and a bunch of other
minor changes.
This commit is contained in:
Kirill Kinduk 2017-08-25 12:08:26 +03:00 committed by Loïc Hoguin
parent 288deb5b88
commit 4c34774b7e
No known key found for this signature in database
GPG key ID: 8A9DF795F6FED764
5 changed files with 105 additions and 8 deletions

View file

@ -153,6 +153,7 @@ Cowboy does it automatically for you.
opts() :: #{
compress => boolean(),
idle_timeout => timeout(),
max_frame_size => non_neg_integer() | infinity,
req_filter => fun((cowboy_req:req()) -> map())
}
----
@ -181,6 +182,13 @@ idle_timeout (60000)::
connection open without receiving anything from
the client.
max_frame_size (infinity)::
Maximum frame size allowed by this Websocket
handler. Cowboy will close the connection when
a client attempts to send a frame that goes over
this limit. For fragmented frames this applies
to the size of the reconstituted frame.
req_filter::
A function applied to the Req to compact it and
only keep required information. The Req is only