]> granicus.if.org Git - ejabberd/commitdiff
Fix set_presence command (ejabberd-contrib#61)
authorBadlop <badlop@process-one.net>
Fri, 27 Mar 2015 10:43:39 +0000 (11:43 +0100)
committerBadlop <badlop@process-one.net>
Fri, 27 Mar 2015 10:43:56 +0000 (11:43 +0100)
src/ejabberd_c2s.erl
src/mod_admin_extra.erl

index 0e3f856cae4203627ec3947d798fb9b8ef63d3ec..1d4d9a270094839a0805feca67764fcefef17222 100644 (file)
@@ -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
index 5ae0cb96a213fbe3bc33cfddb30ee91d1c180318..b0cb9be999e10598c5f844781803ace5bdb3842e 100644 (file)
@@ -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}],