Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2016-08-15 21:24:43 +0300
committerHolger Weiss <holger@zedat.fu-berlin.de>2016-08-15 21:24:43 +0300
commite7217e63207ebf311042dceed6e1a1be97b46ea5 (patch)
tree30ca6d2225f2b83ef3ced99e4b402ecc9c90dfa2 /src/ejabberd_c2s.erl
parent5b4f347da8d3931d62ce4f6d94b4d71e62f1ab34 (diff)
Add functions to get/set some c2s state elements
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 270ef1dc5..02e873be4 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -52,6 +52,11 @@
set_aux_field/3,
del_aux_field/2,
get_subscription/2,
+ get_queued_stanzas/1,
+ get_csi_state/1,
+ set_csi_state/2,
+ get_resume_timeout/1,
+ set_resume_timeout/2,
send_filtered/5,
broadcast/4,
get_subscribed/1,
@@ -244,6 +249,27 @@ get_subscription(LFrom, StateData) ->
true -> none
end.
+get_queued_stanzas(#state{mgmt_queue = Queue} = StateData) ->
+ lists:map(fun({_N, Time, El}) ->
+ add_resent_delay_info(StateData, El, Time)
+ end, queue:to_list(Queue)).
+
+get_csi_state(#state{csi_state = CsiState}) ->
+ CsiState.
+
+set_csi_state(#state{} = StateData, CsiState) ->
+ StateData#state{csi_state = CsiState};
+set_csi_state(FsmRef, CsiState) ->
+ FsmRef ! {set_csi_state, CsiState}.
+
+get_resume_timeout(#state{mgmt_timeout = Timeout}) ->
+ Timeout.
+
+set_resume_timeout(#state{} = StateData, Timeout) ->
+ StateData#state{mgmt_timeout = Timeout};
+set_resume_timeout(FsmRef, Timeout) ->
+ FsmRef ! {set_resume_timeout, Timeout}.
+
send_filtered(FsmRef, Feature, From, To, Packet) ->
FsmRef ! {send_filtered, Feature, From, To, Packet}.
@@ -1743,6 +1769,10 @@ handle_info({broadcast, Type, From, Packet}, StateName, StateData) ->
From, jid:make(USR), Packet)
end, lists:usort(Recipients)),
fsm_next_state(StateName, StateData);
+handle_info({set_csi_state, CsiState}, StateName, StateData) ->
+ fsm_next_state(StateName, StateData#state{csi_state = CsiState});
+handle_info({set_resume_timeout, Timeout}, StateName, StateData) ->
+ fsm_next_state(StateName, StateData#state{mgmt_timeout = Timeout});
handle_info(dont_ask_offline, StateName, StateData) ->
fsm_next_state(StateName, StateData#state{ask_offline = false});
handle_info({_Ref, {resume, OldStateData}}, StateName, StateData) ->