File

spec/scansion/presence_preapproval.scs @ 11710:26a8cc9d9eb7

net.resolvers.service: Only do DANE with secure SRV records If this seems backwards, that' because it is but the API isn't really designed to easily pass along details from each resolution step onto the next.
author Kim Alvefur <zash@zash.se>
date Sun, 18 Jul 2021 23:25:45 +0200
parent 10515:35bf3b80480f
line wrap: on
line source

# server supports contact subscription pre-approval (RFC 6121 3.4)

[Client] Alice
	jid: preappove-a@localhost
	password: password

[Client] Bob
	jid: preapprove-b@localhost
	password: password

---------

Alice connects

Alice sends:
	<presence/>

Alice receives:
	<presence/>

Alice sends:
	<presence to="${Bob's JID}" type="subscribed"/>

Bob connects

Bob sends:
	<iq type="get" id="roster1">
		<query xmlns="jabber:iq:roster"/>
	</iq>

Bob receives:
	<iq type="result" id="roster1">
		<query xmlns="jabber:iq:roster" ver="{scansion:any}">
		</query>
	</iq>

Bob sends:
	<presence/>

Bob receives:
	<presence from="${Bob's full JID}"/>

Bob sends:
	<presence to="${Alice's JID}" type="subscribe" />

Bob receives:
	<iq type='set' id='{scansion:any}'>
		<query ver='1' xmlns='jabber:iq:roster'>
			<item jid="${Alice's JID}" subscription='none' ask='subscribe' />
		</query>
	</iq>



Bob receives:
	<presence from="${Alice's JID}" type="subscribed" />

Bob disconnects

Alice sends:
	<iq type="get" id="roster1">
		<query xmlns="jabber:iq:roster"/>
	</iq>

Alice receives:
	<iq type="result" id="roster1">
		<query xmlns="jabber:iq:roster" ver="{scansion:any}">
			<item jid="${Bob's JID}" subscription="from" />
		</query>
	</iq>

Alice disconnects

Bob disconnects