26
1
mirror of https://github.com/processone/ejabberd.git synced 2024-12-26 17:38:45 +01:00

Strip status when needed in presence-unavailable as well

This commit is contained in:
Evgeniy Khramtsov 2010-11-15 13:47:31 +09:00
parent 325fb8caef
commit 0ccff15599

View File

@ -870,10 +870,17 @@ process_presence(From, Nick, {xmlelement, "presence", Attrs, _Els} = Packet,
"unavailable" -> "unavailable" ->
case is_user_online(From, StateData) of case is_user_online(From, StateData) of
true -> true ->
NewPacket = case {(StateData#state.config)#config.allow_visitor_status,
is_visitor(From, StateData)} of
{false, true} ->
strip_status(Packet);
_ ->
Packet
end,
NewState = NewState =
add_user_presence_un(From, Packet, StateData), add_user_presence_un(From, NewPacket, StateData),
send_new_presence(From, NewState), send_new_presence(From, NewState),
Reason = case xml:get_subtag(Packet, "status") of Reason = case xml:get_subtag(NewPacket, "status") of
false -> ""; false -> "";
Status_el -> xml:get_tag_cdata(Status_el) Status_el -> xml:get_tag_cdata(Status_el)
end, end,