Process on_user_offline only from valid sessions
authorChristophe Romain <christophe.romain@process-one.net>
Fri, 11 Aug 2017 10:05:14 +0000 (12:05 +0200)
committerChristophe Romain <christophe.romain@process-one.net>
Fri, 11 Aug 2017 10:05:14 +0000 (12:05 +0200)
src/mod_pubsub.erl

index 2d340cbdfebb522c66ac0e4129d8635b8ac5ade2..ae43627ff0b214e4cc360a304b937e91be1f1364 100644 (file)
@@ -593,9 +593,10 @@ on_user_online(C2SState) ->
     C2SState.
 
 -spec on_user_offline(ejabberd_c2s:state(), atom()) -> ejabberd_c2s:state().
-on_user_offline(C2SState, _Reason) ->
-    JID = maps:get(jid, C2SState),
+on_user_offline(#{jid := JID} = C2SState, _Reason) ->
     purge_offline(jid:tolower(JID)),
+    C2SState;
+on_user_offline(C2SState, _Reason) ->
     C2SState.
 
 %% -------