summaryrefslogtreecommitdiff
path: root/src/ejabberd_http_ws.erl
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2015-09-04 12:42:53 +0200
committerPaweł Chmielowski <pchmielowski@process-one.net>2015-09-04 12:42:53 +0200
commitf56a9e400dd1857484c9898f0b746f0a44ad2ac8 (patch)
tree686acb299b0d67528fa11d531c9538b544ac9fa3 /src/ejabberd_http_ws.erl
parentNew XEP-0198 option: "max_resume_timeout" (diff)
Pass stream management options defined in http listener to http-bind and websocket
Diffstat (limited to 'src/ejabberd_http_ws.erl')
-rw-r--r--src/ejabberd_http_ws.erl10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/ejabberd_http_ws.erl b/src/ejabberd_http_ws.erl
index 902c32f2..dd6854f8 100644
--- a/src/ejabberd_http_ws.erl
+++ b/src/ejabberd_http_ws.erl
@@ -111,8 +111,14 @@ socket_handoff(LocalPath, Request, Socket, SockMod, Buf, Opts) ->
%%% Internal
-init([{#ws{ip = IP}, _} = WS]) ->
- Opts = [{xml_socket, true} | ejabberd_c2s_config:get_c2s_limits()],
+init([{#ws{ip = IP, http_opts = HOpts}, _} = WS]) ->
+ SOpts = lists:filtermap(fun({stream_managment, _}) -> true;
+ ({max_ack_queue, _}) -> true;
+ ({resume_timeout, _}) -> true;
+ ({resend_on_timeout, _}) -> true;
+ (_) -> false
+ end, HOpts),
+ Opts = [{xml_socket, true} | ejabberd_c2s_config:get_c2s_limits() ++ SOpts],
PingInterval = ejabberd_config:get_option(
{websocket_ping_interval, ?MYNAME},
fun(I) when is_integer(I), I>=0 -> I end,