Software /
code /
prosody
File
spec/scansion/pep_nickname.scs @ 10851:6cf16abd0976
net.server_select: Ensure onconnect is always called before onincoming
This changes the code to call onconnect when the first data is sucessfully
read or written, instead of simply when the socket first becomes writable.
A writable socket can mean a connection error, and if the client already
sent some data it may get passed to onincoming before processing writable
sockets. This fixes the issue.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 01 Jun 2020 13:38:47 +0100 |
parent | 9339:a35a636481c6 |
child | 11714:d783716103c1 |
line wrap: on
line source
# Publishing a nickname in PEP and receiving a notification [Client] Romeo jid: romeo@localhost/nJi7BeTR password: password ----- Romeo connects Romeo sends: <iq id="4" type="set"> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <publish node="http://jabber.org/protocol/nick"> <item id="current"> <nickname xmlns="http://jabber.org/protocol/nick"/> </item> </publish> </pubsub> </iq> Romeo receives: <iq id="4" to="romeo@localhost/nJi7BeTR" type="result"> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <publish node="http://jabber.org/protocol/nick"> <item id="current"/> </publish> </pubsub> </iq> Romeo sends: <presence> <c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://code.matthewwild.co.uk/clix/" ver="jC32N+FhQoLrZ7nNQtZK3aqR0Fk="/> </presence> Romeo receives: <iq id="disco" to="romeo@localhost/nJi7BeTR" from="romeo@localhost" type="get"> <query xmlns="http://jabber.org/protocol/disco#info" node="http://code.matthewwild.co.uk/clix/#jC32N+FhQoLrZ7nNQtZK3aqR0Fk="/> </iq> Romeo receives: <presence from="romeo@localhost/nJi7BeTR"> <c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://code.matthewwild.co.uk/clix/" ver="jC32N+FhQoLrZ7nNQtZK3aqR0Fk="/> </presence> Romeo sends: <iq id="disco" type="result" to="romeo@localhost"> <query xmlns="http://jabber.org/protocol/disco#info" node="http://code.matthewwild.co.uk/clix/#jC32N+FhQoLrZ7nNQtZK3aqR0Fk="> <identity type="console" name="clix" category="client"/> <feature var="http://jabber.org/protocol/disco#items"/> <feature var="http://jabber.org/protocol/disco#info"/> <feature var="http://jabber.org/protocol/caps"/> <feature var="http://jabber.org/protocol/nick+notify"/> </query> </iq> Romeo receives: <message type="headline" from="romeo@localhost" to="romeo@localhost/nJi7BeTR"> <event xmlns="http://jabber.org/protocol/pubsub#event"> <items node="http://jabber.org/protocol/nick"> <item id="current"> <nickname xmlns="http://jabber.org/protocol/nick"/> </item> </items> </event> </message> Romeo sends: <presence type="unavailable"/> Romeo disconnects