Software /
code /
prosody
File
spec/scansion/mam_prefs_prep.scs @ 11972:520ce76440ad
net.server_epoll: Prevent loop attempting to send last data after close
If the connection is closed by the peer, any buffered data is given a
last chance to be sent (see f27b9319e0da). If the connection is Really
closed, no attempt to write will occur, instead epoll will raise the
error flag and :onreadable() will be invoked again, where it will try to
:close() again for the same reason, thus looping until the connection
somehow gets destroyed.
By clearing the _connected flag, the second time it passes :onreadable()
it should go directly to :destroy(), breaking the loop.
Thanks Link Mauve for reporting
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 30 Nov 2021 18:19:40 +0100 |
parent | 11727:f3aee8a825cc |
line wrap: on
line source
# mod_mam should apply JIDprep in prefs [Client] Romeo jid: romeo@localhost password: password ----- Romeo connects Romeo sends: <iq id="lx2" type="set"> <prefs xmlns="urn:xmpp:mam:2" default="roster"> <always> <jid>JULIET@MONTAGUE.LIT</jid> </always> <never> <jid>MONTAGUE@MONTAGUE.LIT</jid> </never> </prefs> </iq> Romeo receives: <iq id="lx2" type="result"> <prefs xmlns="urn:xmpp:mam:2" default="roster"> <always> <jid>juliet@montague.lit</jid> </always> <never> <jid>montague@montague.lit</jid> </never> </prefs> </iq> Romeo disconnects