daryl herzmann <firstname.lastname@example.org> 686013439337f83b6fbb183c36b4226825f25d09
Guus der Kinderen 3595d0caa99932c6cd23c2642a34e8471757e157 m
OF-2368: Improve MUC ghost user detection
This commit combines approaches introduced by OF-910 and OF-2209 to detect a 'ghost user' in MUC.
Per OF-910, any Presence or Message stanza that contains an error is considered indicative of a ghost.
Per OF-2209, an IQ 'Ping' is used to determine ghosts.
Unlike the original solution for OF-2209, not all IQ error responses should be considered as indicative of a ghost. Firstly, the IQ error must be in response to an IQ Ping that was sent by the service itself. Furthermore, 'service-unavailable' and 'feature-not-implemented' can be considered as responses sent by a client (that does not support the IQ Ping protocol).
Finally, this commit adds a kick of users that have been pinged, but for which no response has been received at all.
- xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/MultiUserChatServiceImpl.java (version 3595d0caa99932c6cd23c2642a34e8471757e157)
- xmppserver/src/main/java/org/jivesoftware/util/cache/CacheFactory.java (version 3595d0caa99932c6cd23c2642a34e8471757e157)