summaryrefslogtreecommitdiff
path: root/src/ejabberd_http_ws.erl
diff options
context:
space:
mode:
authorFrank Diebolt <frank.diebolt@al-enterprise.com>2019-01-30 09:57:17 +0100
committerPaweł Chmielowski <pchmielowski@process-one.net>2019-07-29 14:54:25 +0200
commitcd88d342b99fdc710e3ef91313e54321b908237a (patch)
tree6e732aed55b590d0fffe51e040f1fbde0c8c060e /src/ejabberd_http_ws.erl
parentImprove 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.erl10
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) ->