diff options
author | Badlop <badlop@process-one.net> | 2011-08-23 21:53:19 +0200 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2011-08-23 21:53:19 +0200 |
commit | c76bbdf16f9eb9f0ee4afeb1fb86bfbfd4b17ce1 (patch) | |
tree | 096cf9002c3c26d435abcbda0dd043d4dc98f528 /src/mod_muc/mod_muc_room.erl | |
parent | Allow multiple entry with same nick to MUC rooms (thanks to Magnus Henoch)(EJ... (diff) |
Don't send unavailable presence when leaving occupant has other nicks in the room (EJAB-305)
Diffstat (limited to 'src/mod_muc/mod_muc_room.erl')
-rw-r--r-- | src/mod_muc/mod_muc_room.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl index f81611e1..e7a9ba71 100644 --- a/src/mod_muc/mod_muc_room.erl +++ b/src/mod_muc/mod_muc_room.erl @@ -893,7 +893,10 @@ process_presence(From, Nick, {xmlelement, "presence", Attrs, _Els} = Packet, end, NewState = add_user_presence_un(From, NewPacket, StateData), - send_new_presence(From, NewState), + case ?DICT:find(Nick, StateData#state.nicks) of + {ok, [_, _ | _]} -> ok; + _ -> send_new_presence(From, NewState) + end, Reason = case xml:get_subtag(NewPacket, "status") of false -> ""; Status_el -> xml:get_tag_cdata(Status_el) |