diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2014-11-15 22:35:56 +0100 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2014-11-15 22:35:56 +0100 |
commit | 3b965255506de513bc869a7e80becf8fe35d85b9 (patch) | |
tree | e8fb248fad099833a8609504fe81c66c74a0867f /src | |
parent | Merge pull request #345 from weiss/last-pep-items (diff) |
Support floating point message/presence intervals
Let mod_muc support floating point values for "min_message_interval" and
"min_presence_interval", as documented in the guide.
Diffstat (limited to 'src')
-rw-r--r-- | src/mod_muc_room.erl | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index 6a2a91d21..0974950b7 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -174,7 +174,7 @@ normal_state({route, From, <<"">>, Now = now_to_usec(now()), MinMessageInterval = trunc(gen_mod:get_module_opt(StateData#state.server_host, - mod_muc, min_message_interval, fun(MMI) when is_integer(MMI) -> MMI end, 0) + mod_muc, min_message_interval, fun(MMI) when is_number(MMI) -> MMI end, 0) * 1000000), Size = element_size(Packet), {MessageShaper, MessageShaperInterval} = @@ -1517,15 +1517,17 @@ get_user_activity(JID, StateData) -> store_user_activity(JID, UserActivity, StateData) -> MinMessageInterval = - gen_mod:get_module_opt(StateData#state.server_host, - mod_muc, min_message_interval, - fun(I) when is_integer(I), I>=0 -> I end, - 0), + trunc(gen_mod:get_module_opt(StateData#state.server_host, + mod_muc, min_message_interval, + fun(I) when is_number(I), I>=0 -> I end, + 0) + * 1000), MinPresenceInterval = - gen_mod:get_module_opt(StateData#state.server_host, - mod_muc, min_presence_interval, - fun(I) when is_integer(I), I>=0 -> I end, - 0), + trunc(gen_mod:get_module_opt(StateData#state.server_host, + mod_muc, min_presence_interval, + fun(I) when is_number(I), I>=0 -> I end, + 0) + * 1000), Key = jlib:jid_tolower(JID), Now = now_to_usec(now()), Activity1 = clean_treap(StateData#state.activity, @@ -1556,8 +1558,8 @@ store_user_activity(JID, UserActivity, StateData) -> 100000), Delay = lists:max([MessageShaperInterval, PresenceShaperInterval, - MinMessageInterval * 1000, - MinPresenceInterval * 1000]) + MinMessageInterval, + MinPresenceInterval]) * 1000, Priority = {1, -(Now + Delay)}, StateData#state{activity = |