aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2009-06-16 17:45:42 +0000
committerBadlop <badlop@process-one.net>2009-06-16 17:45:42 +0000
commit7bfd87bec6f206fc1e84d96693bfa15ebda39896 (patch)
tree6ae15e3feab7a9760bc378a41067e933a6be7cb8 /src
parentSupport pausing sessions (thanks to Stefan Strigler) (thanks to Stefan Strigler) (diff)
Fixes for pausing sessions; did not parse 'pause' attribute to int (thanks to Stefan Strigler)
SVN Revision: 2224
Diffstat (limited to 'src')
-rw-r--r--src/web/ejabberd_http_bind.erl14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/web/ejabberd_http_bind.erl b/src/web/ejabberd_http_bind.erl
index 6cb8ca44d..b092affa4 100644
--- a/src/web/ejabberd_http_bind.erl
+++ b/src/web/ejabberd_http_bind.erl
@@ -4,12 +4,12 @@
%%% Purpose : Implements XMPP over BOSH (XEP-0205) (formerly known as
%%% HTTP Binding)
%%% Created : 21 Sep 2005 by Stefan Strigler <steve@zeank.in-berlin.de>
-%%% Id : $Id: ejabberd_http_bind.erl 280 2007-08-16 13:25:41Z sstrigler $
+%%% Id : $Id: ejabberd_http_bind.erl 282 2007-08-16 14:53:04Z sstrigler $
%%%----------------------------------------------------------------------
-module(ejabberd_http_bind).
-author('steve@zeank.in-berlin.de').
--vsn('$Rev: 280 $').
+-vsn('$Rev: 282 $').
-behaviour(gen_fsm).
@@ -299,8 +299,12 @@ handle_sync_event({http_put, Rid, Attrs, Payload, Hold, StreamTo},
if
(OldRid < Rid) and
(Rid =< (OldRid + Hold + 1)) ->
- case xml:get_attr_s("pause", Attrs) of
+ case catch list_to_integer(
+ xml:get_attr_s("pause", Attrs)) of
+ {'EXIT', _} ->
+ {true, 0};
Pause1 when Pause1 =< ?MAX_PAUSE ->
+ ?DEBUG("got pause: ~p", [Pause1]),
{true, Pause1};
_ ->
{true, 0}
@@ -395,7 +399,7 @@ handle_sync_event({http_put, Rid, Attrs, Payload, Hold, StreamTo},
if
Pause > 0 ->
Timer = erlang:start_timer(
- Pause, self(), []);
+ Pause*1000, self(), []);
true ->
Timer = erlang:start_timer(
?MAX_INACTIVITY, self(), [])
@@ -460,7 +464,7 @@ handle_sync_event({http_get, Rid, Wait, Hold}, _From, StateName, StateData) ->
if
StateData#state.pause > 0 ->
Timer = erlang:start_timer(
- StateData#state.pause, self(), []);
+ StateData#state.pause*1000, self(), []);
true ->
Timer = erlang:start_timer(
?MAX_INACTIVITY, self(), [])