aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2022-05-01 17:51:07 +0200
committerHolger Weiss <holger@zedat.fu-berlin.de>2022-05-01 17:51:07 +0200
commitc148ab4430688666d45fb3b3b56d29d67426c1cd (patch)
treef8da041b7d26bc825874ae4976ea42021c8a9802 /src
parentmod_push: Rename "timestamp" to "push session ID" (diff)
Adapt mod_push_keepalive to mod_push changes
Adjust mod_push_keepalive to work with the mod_push changes applied by commit 11574f0a43ff5dbdd297815c6c48fc8d976f1631.
Diffstat (limited to 'src')
-rw-r--r--src/mod_push.erl17
-rw-r--r--src/mod_push_keepalive.erl2
2 files changed, 12 insertions, 7 deletions
diff --git a/src/mod_push.erl b/src/mod_push.erl
index dc541bd3c..a09e8d392 100644
--- a/src/mod_push.erl
+++ b/src/mod_push.erl
@@ -405,7 +405,7 @@ disable(#jid{luser = LUser, lserver = LServer, lresource = LResource} = JID,
-spec c2s_stanza(c2s_state(), xmpp_element() | xmlel(), term()) -> c2s_state().
c2s_stanza(State, #stream_error{}, _SendResult) ->
State;
-c2s_stanza(#{push_session_id := _ID, mgmt_state := pending} = State,
+c2s_stanza(#{push_enabled := true, mgmt_state := pending} = State,
Pkt, _SendResult) ->
?DEBUG("Notifying client of stanza", []),
notify(State, Pkt, get_direction(Pkt)),
@@ -450,7 +450,7 @@ offline_message(Acc) ->
Acc.
-spec c2s_session_pending(c2s_state()) -> c2s_state().
-c2s_session_pending(#{push_session_id := _ID, mgmt_queue := Queue} = State) ->
+c2s_session_pending(#{push_enabled := true, mgmt_queue := Queue} = State) ->
case p1_queue:len(Queue) of
Len when Len > 0 ->
?DEBUG("Notifying client of unacknowledged stanza(s)", []),
@@ -468,16 +468,21 @@ c2s_session_pending(State) ->
State.
-spec c2s_copy_session(c2s_state(), c2s_state()) -> c2s_state().
-c2s_copy_session(State, #{push_session_id := ID}) ->
- State#{push_session_id => ID};
+c2s_copy_session(State, #{push_enabled := true,
+ push_session_id := ID}) ->
+ State#{push_enabled => true,
+ push_session_id => ID};
c2s_copy_session(State, _) ->
State.
-spec c2s_handle_cast(c2s_state(), any()) -> c2s_state() | {stop, c2s_state()}.
c2s_handle_cast(State, {push_enable, ID}) ->
- {stop, State#{push_session_id => ID}};
+ {stop, State#{push_enabled => true,
+ push_session_id => ID}};
c2s_handle_cast(State, push_disable) ->
- {stop, maps:remove(push_session_id, State)};
+ State1 = maps:remove(push_disable, State),
+ State2 = maps:remove(push_session_id, State1),
+ {stop, State2};
c2s_handle_cast(State, _Msg) ->
State.
diff --git a/src/mod_push_keepalive.erl b/src/mod_push_keepalive.erl
index 1ced2690f..8a816aef1 100644
--- a/src/mod_push_keepalive.erl
+++ b/src/mod_push_keepalive.erl
@@ -213,7 +213,7 @@ c2s_copy_session(State, _) ->
State.
-spec c2s_handle_cast(c2s_state(), any()) -> c2s_state().
-c2s_handle_cast(#{lserver := LServer} = State, push_enable) ->
+c2s_handle_cast(#{lserver := LServer} = State, {push_enable, _ID}) ->
ResumeTimeout = mod_push_keepalive_opt:resume_timeout(LServer),
WakeOnTimeout = mod_push_keepalive_opt:wake_on_timeout(LServer),
State#{push_resume_timeout => ResumeTimeout,