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

Ensure HTTP/1.1 Websocket resets the trap_exit flag

While we are identified as a supervisor in the tree,
we no longer manage children processes at that point,
so do not need to trap exit signals. Users can still
enable trap_exit if they prefer to.
This commit is contained in:
Loïc Hoguin 2024-01-08 11:44:34 +01:00
parent 9784179498
commit c1490d7d55
No known key found for this signature in database
GPG key ID: 8A9DF795F6FED764
5 changed files with 17 additions and 2 deletions

View file

@ -50,6 +50,7 @@ init_dispatch(Name) ->
{"/init", ws_init_commands_h, RunOrHibernate},
{"/handle", ws_handle_commands_h, RunOrHibernate},
{"/info", ws_info_commands_h, RunOrHibernate},
{"/trap_exit", ws_init_h, RunOrHibernate},
{"/active", ws_active_commands_h, RunOrHibernate},
{"/deflate", ws_deflate_commands_h, RunOrHibernate},
{"/set_options", ws_set_options_commands_h, RunOrHibernate},
@ -211,6 +212,13 @@ do_many_frames_then_close_frame(Config, Path) ->
{ok, close} = receive_ws(ConnPid, StreamRef),
gun_down(ConnPid).
websocket_init_trap_exit_false(Config) ->
doc("The trap_exit process flag must be set back to false before "
"the connection is taken over by Websocket."),
{ok, ConnPid, StreamRef} = gun_open_ws(Config, "/trap_exit?reply_trap_exit", []),
{ok, {text, <<"trap_exit: false">>}} = receive_ws(ConnPid, StreamRef),
ok.
websocket_active_false(Config) ->
doc("The {active, false} command stops receiving data from the socket. "
"The {active, true} command reenables it."),