File

spec/scansion/vcard_temp.scs @ 11821:a9ad287c3388

core.moduleapi: Filter out unrelated direct replies to module:send_iq This is primarily something that happens with an internal query to mod_mam, which calls origin.send() several times with results, leading to the first such result being treated as the final response and resolving the promise. Now, these responses pass trough to the underlying origin.send(), where they can be caught. Tricky but not impossible. For remote queries, it's even trickier, you would likely need to bind a resource or similar.
author Kim Alvefur <zash@zash.se>
date Fri, 24 Sep 2021 20:12:16 +0200
parent 9524:1f6f3b941eb1
child 12967:53b0730093d8
line wrap: on
line source

# XEP-0054 vCard-temp writable and readable by anyone
# mod_scansion_record on host 'localhost' recording started 2018-10-20T15:00:12Z

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

[Client] Juliet
	jid: juliet@localhost
	password: password

-----

Romeo connects

# Romeo sets his vCard
# FN and N are required by the schema and mod_vcard_legacy will always inject them
Romeo sends:
	<iq id="lx3" type="set">
		<vCard xmlns="vcard-temp">
			<FN>Romeo Montague</FN>
			<N>
				<FAMILY>Montague</FAMILY>
				<GIVEN>Romeo</GIVEN>
				<MIDDLE/>
				<PREFIX/>
				<SUFFIX/>
			</N>
		</vCard>
	</iq>

Romeo receives:
	<iq type="result" id="lx3" to="${Romeo's full JID}"/>

Romeo sends:
	<iq id="lx4" type="get">
		<vCard xmlns="vcard-temp"/>
	</iq>

Romeo receives:
	<iq type="result" id="lx4" to="${Romeo's full JID}">
		<vCard xmlns="vcard-temp">
			<FN>Romeo Montague</FN>
			<N>
				<FAMILY>Montague</FAMILY>
				<GIVEN>Romeo</GIVEN>
				<MIDDLE/>
				<PREFIX/>
				<SUFFIX/>
			</N>
		</vCard>
	</iq>

Romeo disconnects

Juliet connects

Juliet sends:
	<iq type="get" id="lx3" to="romeo@localhost">
		<vCard xmlns="vcard-temp"/>
	</iq>

# Juliet can see Romeo's vCard since it's public
Juliet receives:
	<iq type="result" from="romeo@localhost" id="lx3" to="${Juliet's full JID}">
		<vCard xmlns="vcard-temp">
			<FN>Romeo Montague</FN>
			<N>
				<FAMILY>Montague</FAMILY>
				<GIVEN>Romeo</GIVEN>
				<MIDDLE/>
				<PREFIX/>
				<SUFFIX/>
			</N>
		</vCard>
	</iq>

Juliet disconnects

# recording ended on 2018-10-20T15:02:14Z