This has the following advantages:
- Works while all resources are offline (persistent channels)
- Helps with combating duplicate messages when sent to different
resources, resources going offline, carbon-copying etc. etc.
As a side effect, this also makes the MUC PMs not be MUC PMs and
always be emitted from the server-wide JID of the sending user.
Fixes#3313.
In cases where the DNS server does not respond “domain not found” but
“domain found, but no IP for that record type”, we just say “domain not
found” too (instead of nothing, previously).
When an identd query happens, we check all the connected sockets for their
local and remote ports, to compare them with the query. But we MUST only
consider the connected ones because:
- It doesn’t make sense to answer for a connection that has just been closed
- A non-connected sockets is not in a valid state for this (specifically
here: its ::port attribute is empty)
fix#3421
If the user sends a directed presence to an unjoined MUC without a <x/>
element, send a presence error back instead of attempting to join it
again, as this is almost never what the user wants.
Fixes#3415.
Because it's much much simpler than to track if we changed the nick that
was requested in the join request. And client will probably not get confused,
I hope.
In cases where the DNS server does not respond “domain not found” but
“domain found, but no IP for that record type”, we just say “domain not
found” too (instead of nothing, previously).
fix#3382
It still needs to be fixed properly by cleaning the way we send the messages
in all direction etc. And this is ugly because, with just one message, we do
a conversion in one direction, and then re-convert in the other
direction. But at least it works and users will be happy, even if I’m not
entirely satisfied with the code.
XEP-0410 demands that. This changes the error condition for all
pings to the room, even those which aren’t self-pings, if the
sender is not joined.
The conditions of XEP-0410 were based on observing existing
implementations.
This prevents the ping from round-tripping through IRC and
possibly a random other client of the user. Please see XEP-0410
for the rationale.
Fixes#3385.