Software /
code /
prosody
File
spec/scansion/blocking.scs @ 12206:77ac0d96ac24
mod_s2s: Enable outgoing Direct TLS connections
Makes it faster by cutting out the roundtrips involved in <starttls/>,
at the cost of making an additional SRV lookup.
Since we already ignore a missing <starttls/> offer and try anyway there
is not much difference in security. The fact that XMPP is used and the
hostnames involved might still be visible until the future Encrypted
ClientHello extension allows hiding those too.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 21 Jan 2022 17:59:19 +0100 |
parent | 10812:3bd846c76701 |
line wrap: on
line source
# XEP-0191: Blocking Command [Client] Romeo jid: blocker@localhost password: password [Client] Juliet jid: blockee@localhost password: password ----- # The parties connect Romeo connects Romeo sends: <presence/> Romeo receives: <presence from="${Romeo's full JID}"/> Juliet connects Juliet sends: <presence/> Juliet receives: <presence from="${Juliet's full JID}"/> # They add each other Romeo sends: <presence type="subscribe" to="${Juliet's JID}"/> Romeo receives: <presence from="${Juliet's JID}" to="${Romeo's JID}" type="unavailable"/> Juliet receives: <presence type="subscribe" to="${Juliet's JID}" from="${Romeo's JID}"/> Juliet sends: <presence type="subscribed" to="${Romeo's JID}"/> Romeo receives: <presence from="${Juliet's full JID}" to="${Romeo's JID}"> <delay xmlns="urn:xmpp:delay" stamp="{scansion:any}" from="localhost"/> </presence> Juliet sends: <presence type="subscribe" to="${Romeo's JID}"/> Juliet receives: <presence from="${Romeo's JID}" to="${Juliet's JID}" type="unavailable"/> Romeo receives: <presence type="subscribe" to="${Romeo's JID}" from="${Juliet's JID}"/> Romeo sends: <presence type="subscribed" to="${Juliet's JID}"/> Juliet receives: <presence from="${Romeo's full JID}" to="${Juliet's JID}"> <delay xmlns="urn:xmpp:delay" stamp="{scansion:any}" from="localhost"/> </presence> Romeo receives: <presence from="${Juliet's full JID}" to="${Romeo's JID}"> <delay xmlns="urn:xmpp:delay" stamp="{scansion:any}" from="localhost"/> </presence> # They can now talk Juliet sends: <message type="chat" to="${Romeo's JID}"> <body>ohai</body> </message> Romeo receives: <message type="chat" to="${Romeo's JID}" from="${Juliet's full JID}"> <body>ohai</body> </message> # And now to the blockining Romeo sends: <iq type="set" id="lx2"> <block xmlns="urn:xmpp:blocking"> <item jid="${Juliet's JID}"/> </block> </iq> Romeo receives: <iq type="result" id="lx2"/> Juliet receives: <presence type="unavailable" to="${Juliet's JID}" from="${Romeo's full JID}"/> # Can"t talk anymore Romeo sends: <message type="chat" to="${Juliet's JID}"> <body>hello?</body> </message> Romeo receives: <message type="error" from="${Juliet's JID}"> <error type="cancel"> <not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/> <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">You have blocked this JID</text> <blocked xmlns="urn:xmpp:blocking:errors"/> </error> </message> Juliet sends: <message type="chat" to="${Romeo's JID}"/> Juliet receives: <message type="error" from="${Romeo's JID}"> <error type="cancel"> <service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/> </error> </message> Romeo sends: <iq type="set" id="lx3"> <unblock xmlns="urn:xmpp:blocking"> <item jid="${Juliet's JID}"/> </unblock> </iq> Juliet receives: <presence to="${Juliet's JID}" from="${Romeo's full JID}"> <delay xmlns="urn:xmpp:delay" stamp="{scansion:any}" from="localhost"/> </presence> Romeo receives: <iq type="result" id="lx3"/> # Can talk again Romeo sends: <message type="chat" to="${Juliet's JID}"> <body>hello!</body> </message> Juliet receives: <message type="chat" to="${Juliet's JID}" from="${Romeo's full JID}"> <body>hello!</body> </message> # Bye Juliet sends: <presence type="unavailable"/> Juliet disconnects Romeo receives: <presence from="${Juliet's full JID}" to="${Romeo's JID}" type="unavailable"/> Romeo sends: <presence type="unavailable"/> Romeo disconnects