diff options
author | Frank Diebolt <frank.diebolt@al-enterprise.com> | 2019-01-30 09:57:17 +0100 |
---|---|---|
committer | Paweł Chmielowski <pchmielowski@process-one.net> | 2019-07-29 14:54:25 +0200 |
commit | cd88d342b99fdc710e3ef91313e54321b908237a (patch) | |
tree | 6e732aed55b590d0fffe51e040f1fbde0c8c060e /src/ejabberd_http_ws.erl | |
parent | Improve hooks validator and fix bugs related to hooks registration (diff) |
Apply shaping to websocket connections
Diffstat (limited to 'src/ejabberd_http_ws.erl')
-rw-r--r-- | src/ejabberd_http_ws.erl | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/ejabberd_http_ws.erl b/src/ejabberd_http_ws.erl index 6e7a0901..768a284c 100644 --- a/src/ejabberd_http_ws.erl +++ b/src/ejabberd_http_ws.erl @@ -104,9 +104,8 @@ close({http_ws, FsmRef, _IP}) -> reset_stream({http_ws, _FsmRef, _IP} = Socket) -> Socket. -change_shaper({http_ws, _FsmRef, _IP}, _Shaper) -> - %% TODO??? - ok. +change_shaper({http_ws, FsmRef, _IP}, Shaper) -> + p1_fsm:send_all_state_event(FsmRef, {new_shaper, Shaper}). get_transport(_Socket) -> websocket. @@ -161,7 +160,10 @@ handle_event({activate, From}, StateName, State) -> end, Input), State#state{active = false, input = []} end, - {next_state, StateName, State1#state{c2s_pid = From}}. + {next_state, StateName, State1#state{c2s_pid = From}}; +handle_event({new_shaper, Shaper}, StateName, #state{ws = {_, WsPid}} = StateData) -> + WsPid ! {new_shaper, Shaper}, + {next_state, StateName, StateData}. handle_sync_event({send_xml, Packet}, _From, StateName, #state{ws = {_, WsPid}, rfc_compilant = R} = StateData) -> |