diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 0e3f856ca..1d4d9a270 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -1743,6 +1743,9 @@ handle_info(system_shutdown, StateName, StateData) -> ok end, {stop, normal, StateData}; +handle_info({route_xmlstreamelement, El}, StateName, StateData) -> + session_established({xmlstreamelement, El}, StateData), + fsm_next_state(StateName, StateData); handle_info({force_update_presence, LUser}, StateName, #state{user = LUser, server = LServer} = StateData) -> NewStateData = case StateData#state.pres_last of diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index 5ae0cb96a..b0cb9be99 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -881,8 +881,8 @@ stringize(String) -> set_presence(User, Host, Resource, Type, Show, Status, Priority) -> Pid = ejabberd_sm:get_session_pid(User, Host, Resource), - USR = jlib:make_jid(User, Host, Resource), - US = jlib:make_jid(User, Host, <<>>), + USR = jlib:jid_to_string(jlib:make_jid(User, Host, Resource)), + US = jlib:jid_to_string(jlib:make_jid(User, Host, <<>>)), Message = {route_xmlstreamelement, {xmlel, <<"presence">>, [{<<"from">>, USR}, {<<"to">>, US}, {<<"type">>, Type}],