summaryrefslogtreecommitdiff
path: root/src/ejabberd_c2s.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-01-23 13:51:05 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-01-23 13:51:05 +0300
commit435e5e62634b542c2a42673bea7f81e9cc2a5c04 (patch)
treeb927d972c426ca5ea4ce20343e4eb981848934e8 /src/ejabberd_c2s.erl
parentMake a message is not bounced if it's archived (diff)
Make test suite working again
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 6350e41f..fd265563 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -368,11 +368,15 @@ bind(R, #{user := U, server := S, access := Access, lang := Lang,
allow ->
State1 = open_session(State#{resource => Resource,
sid => ejabberd_sm:make_sid()}),
- State2 = ejabberd_hooks:run_fold(
- c2s_session_opened, LServer, State1, []),
+ LBJID = jid:remove_resource(jid:tolower(JID)),
+ PresF = ?SETS:add_element(LBJID, maps:get(pres_f, State1)),
+ PresT = ?SETS:add_element(LBJID, maps:get(pres_t, State1)),
+ State2 = State1#{pres_f => PresF, pres_t => PresT},
+ State3 = ejabberd_hooks:run_fold(
+ c2s_session_opened, LServer, State2, []),
?INFO_MSG("(~s) Opened c2s session for ~s",
[SockMod:pp(Socket), jid:to_string(JID)]),
- {ok, State2};
+ {ok, State3};
deny ->
ejabberd_hooks:run(forbidden_session_hook, LServer, [JID]),
?INFO_MSG("(~s) Forbidden c2s session for ~s",