summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mod_caps.erl4
-rw-r--r--src/mod_pubsub.erl3
2 files changed, 6 insertions, 1 deletions
diff --git a/src/mod_caps.erl b/src/mod_caps.erl
index edc93bbf..6021da25 100644
--- a/src/mod_caps.erl
+++ b/src/mod_caps.erl
@@ -206,8 +206,10 @@ c2s_presence_in(C2SState,
{Subscription, _} = ejabberd_hooks:run_fold(
roster_get_jid_info, To#jid.lserver,
{none, []}, [To#jid.luser, To#jid.lserver, From]),
+ ToSelf = (From#jid.luser == To#jid.luser)
+ and (From#jid.lserver == To#jid.lserver),
Insert = (Type == available)
- and ((Subscription == both) or (Subscription == to)),
+ and ((Subscription == both) or (Subscription == to) or ToSelf),
Delete = (Type == unavailable) or (Type == error),
if Insert or Delete ->
LFrom = jid:tolower(From),
diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl
index efa22305..bedbd349 100644
--- a/src/mod_pubsub.erl
+++ b/src/mod_pubsub.erl
@@ -550,6 +550,9 @@ disco_items(Host, Node, From) ->
%%
-spec caps_add(jid(), jid(), [binary()]) -> ok.
+caps_add(JID, JID, _Features) ->
+ %% Send the owner his last PEP items.
+ send_last_pep(JID, JID);
caps_add(#jid{lserver = S1} = From, #jid{lserver = S2} = To, _Features)
when S1 =/= S2 ->
%% When a remote contact goes online while the local user is offline, the