File

spec/scansion/muc_nickname_robotface.scs @ 13575:750ff9f579e2

mod_c2s, mod_s2s: Support for queuing callbacks to run in session thread This allows certain session-specific code that needs to run in the async context, but is itself triggered outside of that context (e.g. timers), to be queued. An example of this is the session destruction code of mod_smacks, when the hibernation timeout is reached.
author Matthew Wild <mwild1@gmail.com>
date Thu, 21 Nov 2024 17:02:07 +0000
parent 11411:f1fe37916501
line wrap: on
line source

# MUC: Prevent nicknames failing strict resourceprep

[Client] Romeo
	jid: user@localhost
	password: password

[Client] Roboteo
	jid: bot@localhost
	password: password

-----

Romeo connects

Romeo sends:
	<presence to="nobots@conference.localhost/Romeo">
		<x xmlns="http://jabber.org/protocol/muc"/>
	</presence>

Romeo receives:
	<presence from='nobots@conference.localhost/Romeo'>
		<x xmlns='http://jabber.org/protocol/muc#user'>
			<status code='201'/>
			<item jid="${Romeo's full JID}" affiliation='owner' role='moderator'/>
			<status code='110'/>
		</x>
	</presence>

Romeo receives:
	<message type='groupchat' from='nobots@conference.localhost'><subject/></message>

Roboteo connects

Roboteo sends:
	<presence to="nobots@conference.localhost/🤖️">
		<x xmlns="http://jabber.org/protocol/muc"/>
	</presence>

Roboteo receives:
	<presence type='error' from='nobots@conference.localhost/🤖'>
		<error by='nobots@conference.localhost' type='modify'>
			<jid-malformed xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
			<text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Nickname must pass strict validation</text>
		</error>
	</presence>