File

spec/scansion/tombstones.scs @ 12586:4c8941b5b05e 0.12

core.s2smanager: Don't remove unrelated session on close of bidi session Normally with bidi, any outgoing connection should be the same as the incoming, hence when closing a bidi connection it should be removed as a route to the remote server. However it is not guaranteed, a remote bidi-capable server might have decided to open a new connection for some reason. This can lead to a situation where there are two bidi connections, and the s2sout route is a locally initiated s2sout connection. In this case, such a s2sout connection should be kept. Noticed in a rare case where bidi has just been enabled on a running server, and something establishes new connections immediately when a connection is closed.
author Kim Alvefur <zash@zash.se>
date Mon, 27 Jun 2022 01:22:36 +0200
parent 12116:efcf25ad5406
line wrap: on
line source

# Tombstones

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

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

---------

Romeo connects

Juliet connects

Juliet sends:
	<iq type="set" id="bye">
		<query xmlns="jabber:iq:register">
			<remove/>
		</query>
	</iq>

# Scansion gets disconnected right after this with a stream error makes
# scansion itself abort, so we preemptively disconnect to avoid that
# Juliet receives:
#	<iq type="result" id="bye"/>

Juliet disconnects

Romeo sends:
	<presence type="probe" to="${Juliet's JID}"/>

Romeo receives:
	<presence type="error" from="${Juliet's JID}"/>

Romeo receives:
	<presence type="unsubscribed" from="${Juliet's JID}"/>