On IRC it is confusing when an XMPP user "corrects" a message, but on
the other side a new message is sent. To prevent spam and confusion, do
not allow message corrections at all, and instead return an error if
attempted.
Fixes: #3436Fixes: #3480
RFC 2812 specifies in §1.3 that “Channels names are strings (beginning
with a '&', '#', '+' or '!' character) of length up to fifty (50)
characters.”
We previously only allowed the first two prefix characters, or any other
one if the server overrides the list with ISUPPORT.
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.
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.
Also simplify how we did the whole “limit + 1”
And fix one bad interpretation of the XEP for the case where the query has
no after or before restriction.
fix#3349
PLEASE backup your database before testing this commit, and report any
migration issue.
In postgresql, we use timestamp with timezone.
In sqlite3 we use REAL (the date is expressed as julianday)
This requires a migration of the muclogline_ table:
In postgresql it’s pretty simple, we convert all the integer into timestamps
With sqlite3, we actually rename the table, create the new one with the
correct type, then copy everything to the new table, with a conversion
function for the Date_ column, and then we delete the old table.
fix#3343
From XEP 0045:
“Note: the requirement to reflect the 'id' attribute was added in version
1.31 of this XEP. Servers following the new specification SHOULD advertise
that with a disco info feature of 'http://jabber.org/protocol/muc#stable_id'
on both the service domain and on individual MUCs, so that clients can check
for support.”
Instead of irc.example.com@biboumi, because that’s actually user named
“irc.example.com”, in that case.
And that fixes the raw messages in fixed mode.
fix#3286