#918 Sending a get/set iq to an invalid JID makes Prosody send two error iqs back
Reporter
Link Mauve
Owner
Nobody
Created
Updated
Stars
★ (1)
Tags
Priority-Medium
Type-Defect
Status-Accepted
Link Mauve
on
What steps will reproduce the problem?
1. Send an iq to a JID whose domain is invalid, for example containing an underscore.
What is the expected output? What do you see instead?
Only one iq error is received, saying the domain is invalid or something.
Instead I get two of them, answering the same iq.
What version of the product are you using? On what operating system?
Prosody 0.10 cb605fb60e32, on ALARM.
Please provide any additional information below.
04:00:57 OUT <iq id="ac783f7a-2813-46aa-a408-ec7ce90a1eaa-24874" type="get" to="test_coucou"><query xmlns="jabber:iq:version" /></iq>
04:00:57 IN <iq id="ac783f7a-2813-46aa-a408-ec7ce90a1eaa-24874" type="error" to="linkmauve@linkmauve.fr/7b8171f9-6fb4-431d-8491-b2635b367275" from="test_coucou"><error type="cancel"><remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /></error></iq>
04:00:57 IN <iq id="ac783f7a-2813-46aa-a408-ec7ce90a1eaa-24874" type="error" to="linkmauve@linkmauve.fr/7b8171f9-6fb4-431d-8491-b2635b367275" from="test_coucou"><error type="cancel"><not-allowed xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Communication with remote domains is not enabled</text></error></iq>
Zash
on
What I've gathered so far is that the s2sout state machine gets past the bit where it sets up a sendq, then somewhere it fails and bounces the sendq. Then it gets to the code that is supposed to bounce stanzas when s2s is disabled <https://hg.prosody.im/0.10/annotate/897ec7dcdaa6/core/stanza_router.lua#l195>
What steps will reproduce the problem? 1. Send an iq to a JID whose domain is invalid, for example containing an underscore. What is the expected output? What do you see instead? Only one iq error is received, saying the domain is invalid or something. Instead I get two of them, answering the same iq. What version of the product are you using? On what operating system? Prosody 0.10 cb605fb60e32, on ALARM. Please provide any additional information below. 04:00:57 OUT <iq id="ac783f7a-2813-46aa-a408-ec7ce90a1eaa-24874" type="get" to="test_coucou"><query xmlns="jabber:iq:version" /></iq> 04:00:57 IN <iq id="ac783f7a-2813-46aa-a408-ec7ce90a1eaa-24874" type="error" to="linkmauve@linkmauve.fr/7b8171f9-6fb4-431d-8491-b2635b367275" from="test_coucou"><error type="cancel"><remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /></error></iq> 04:00:57 IN <iq id="ac783f7a-2813-46aa-a408-ec7ce90a1eaa-24874" type="error" to="linkmauve@linkmauve.fr/7b8171f9-6fb4-431d-8491-b2635b367275" from="test_coucou"><error type="cancel"><not-allowed xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Communication with remote domains is not enabled</text></error></iq>
What I've gathered so far is that the s2sout state machine gets past the bit where it sets up a sendq, then somewhere it fails and bounces the sendq. Then it gets to the code that is supposed to bounce stanzas when s2s is disabled <https://hg.prosody.im/0.10/annotate/897ec7dcdaa6/core/stanza_router.lua#l195>
Changes