Make the global ad-hoc configure command available in fixed mode
mam: Send “fin complete” only when appropriate
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.
Use Config::is_in_list() to allow for multiple admins
Use the Date to find a next page in RSM, not the id
This way, it works, whatever the order of insertion in the database was.
one log_debug -> log_error, also some trivial indent
Use a different Date data type
PLEASE backup your database before testing this commit, and report any
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.
Channel disco-info: use shorter string
Change the nick of the joining user AFTER sending all the join stuff
Properly handle force-join presences by sending everything in return
Advertise the muc#stable_id feature on disco#info results
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
Reflect message IDs in channel MUCs
Remove the virtual channel feature altogether
Support the <before/> element in MAM requests
Do not forget an early return, to return the correct item-not-found error
Send a item-not-found error when the “after” value is not in the archive
Handle the “after” RSM value to page through results
Always return the oldest matching messages from MAM, even if no date is set
Remove the debug logs from previous commit