aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mod_smacks: Patch various self-references on the resumed sessionKim Alvefur2021-12-131-0/+5
| | | | | The number of places where the session is an upvalue to its own methods is too high!
* mod_smacks: Back out a86ae74da96c: Fixed one problem, caused anotherKim Alvefur2021-12-131-4/+2
| | | | | | | | As per a86ae74da96c the 'session' object here is the wrong session, so the attempt to block stanzas from being added to the queue twice did not work causing something of a leak. Instead we have a leak of the previous session.
* mod_smacks: Back out def20683c161Kim Alvefur2021-12-131-1/+0
| | | | The attempted fix completely broke everything after resumption.
* mod_smacks: Update reference to session from send()Kim Alvefur2021-12-131-0/+1
| | | | | | a86ae74da96c caused the stanza queue to double on resumption because session.send() keeps a reference to the session which is what gets passed to filters, so the added flag was not seen in the filter.
* util.format: Optimize most common integer formatKim Alvefur2021-12-131-0/+2
| | | | | | A search for log formats in use points to %s being the most common, followed by %d, so worth having a fast path for that. %g works well with most numbers and is what Lua 5.1 and 5.2 used
* util.format: Ensure metatable __tostring results are also sanitizedKim Alvefur2021-12-133-2/+20
|
* mod_smacks: Include reason for destroying session on hibernation timeoutKim Alvefur2021-12-121-1/+1
| | | | To aid in debugging
* tools/generate_format_spec: Apply lua-format to silence luacheckKim Alvefur2021-12-111-7/+9
|
* util.format: Fix some formats expecting positive numbers in Lua 5.2Kim Alvefur2021-12-112-4/+9
| | | | Amazing how string.format behaves differently under each Lua version
* util.format: Fix Lua 5.1 quirks thanks to ALL THE TESTSKim Alvefur2021-12-111-1/+6
|
* util.format: ALL THE TESTS!!!Kim Alvefur2021-12-112-0/+891
| | | | | | The more tests I made, the more Lua 5.1 quirks I discovered. Tests generated using a tool plus some touch-up.
* util.format: Also handle the %p format added in Lua 5.4Kim Alvefur2021-12-112-3/+27
|
* util.format: Ensure sanitation of strings passed to wrong formatKim Alvefur2021-12-112-21/+38
| | | | | | | | | Ie. log("debug", "%d", "\1\2\3") should not result in garbage. Also optimizing for the common case of ASCII string passed to %s and early returns everywhere. Returning nil from a gsub callback keeps the original substring.
* util.format: Escape invalid UTF-8 by passing trough serializationKim Alvefur2021-12-102-1/+14
| | | | | | Should prevent invalid UTF-8 from making it into the logs, which can cause trouble with terminals or log viewers or other tools, such as when grep determines that log files are binary.
* mod_mam: Avoid storing bounces for messages from the bare account (thanks Ge0rG)Kim Alvefur2021-12-101-2/+12
| | | | | | This should rule out error replies to PEP notifications, which come from the account bare JID, and would be reflected back to it if they can't be delivered for some reason, e.g. s2s problems.
* MUC: Remove <{muc}x> tags in some errorsKim Alvefur2021-12-086-10/+6
| | | | | Including the payload of the stanza that caused the error is optional and we're generally not doing it anywhere else.
* MUC: Fix error origin JID in wrong argument positionKim Alvefur2021-12-081-1/+1
| | | | | Mistake introduced in cbe524ed1a6a. Removing because this is a query to the bare JID where the error origin matches the resulting stanza 'from'.
* MUC: Remove remaining deprecated numeric error codesKim Alvefur2021-12-084-5/+1
| | | | | | The numeric error codes seems to have been removed from the examples in XEP-0045 version 1.24, and were deprecated even by RFC 3920 in 2004, only allowed for backwards compatibility.
* MUC: Return a friendly textual error when trying to speak without voiceKim Alvefur2021-12-081-1/+2
| | | | | | I spend several minutes confused over where the bug was until I remembered I had set myself as visitor in the previous debug session. This would have helped.
* net.resolvers: Report when hostname fails IDNAKim Alvefur2021-12-072-2/+2
| | | | | Not a particularly user-friendly error message, but better than "unable to resolve service" and having no clue where it came from.
* util.sasl.scram: Store username property rather than cached local (#399)Matthew Wild2021-12-071-1/+1
| | | | | This should allow modules to override the username in a profile handler by assigning to self.username.
* mod_admin_shell: Add port as a c2s/s2s:show column definitionKim Alvefur2021-12-071-0/+7
| | | | | Allows inferring whether Direct TLS was used, or perhaps which SRV record was chosen. Not shown by default.
* mod_pep: Set correct jid attr on node disco itemsKim Alvefur2021-12-071-0/+1
| | | | | It was previously set to the hostname, not the users bare JID which would be correct.
* mod_pubsub: Allow specifying the JID of the pubsub serviceKim Alvefur2021-12-072-1/+2
| | | | | This allows overriding it in cases where it is not equal to module.host, like say, in mod_pep
* core.usermanager: Implement noop role writes on global authz providerKim Alvefur2021-12-061-0/+2
| | | | So that the methods are there and don't cause an error.
* mod_admin_shell: Handle global roles (pass host=*)Kim Alvefur2021-12-061-1/+2
| | | | Is it not odd that um.set_roles() takes `nil` to mean global?
* mod_admin_shell: Only check that local users exist locallyKim Alvefur2021-12-061-3/+1
|
* mod_disco: Optionally return info on admin accounts to non-contactsKim Alvefur2021-04-151-2/+5
| | | | | If you already know the account, from say the server contact info, then this confirms their admin status.
* mod_disco: Advertise anonymous usersKim Alvefur2020-07-041-0/+2
| | | | Can these even be seen?
* mod_disco: Advertise admin accounts as such via disco identityKim Alvefur2020-07-041-1/+6
|
* mod_admin_shell: Support setting roles on hosts other than the users'Kim Alvefur2021-12-061-4/+8
| | | | | | | | Needed to e.g. grant admin rights on a component, or grant non-local users local privileges. Leave the same host syntax for convenience, since this might be the common case.
* mod_admin_shell: Add command for updating roles user:roles(jid, roles)Kim Alvefur2021-12-061-4/+19
| | | | | This would allow e.g. granting admin status without changing the config and without a restart.
* mod_admin_shell: Allow setting roles when creating userKim Alvefur2021-12-041-2/+12
|
* net.server_epoll: Ensure calls to :write() return somethingKim Alvefur2021-12-061-1/+2
| | | | | | | | | | With opportunistic writes enabled, writes can return what :onwritable() returns, thus :onwritable() should return something sensible at each spot. Should prevent whatever caused > Error writing to connection: (nil) Tho this was probably harmless
* MUC: Allow modules a chance to act prior to room destructionKim Alvefur2021-12-052-7/+19
|
* mod_cron: Expose the One Timer via module environmentKim Alvefur2021-12-041-1/+1
| | | | | This makes it easier to reschedule or otherwise manipulate the timer from e.g. the shell, which is handy for debugging.
* mod_http_file_share: Fix to take retention time into accountKim Alvefur2021-12-041-1/+2
| | | | It was lost in 6f4790b8deec when switching to mod_cron.
* mod_http_file_share: Improve consistency of terminology in loggingKim Alvefur2021-12-041-8/+8
| | | | | Prefer 'prune' over 'delete' since it more strongly implies removal of excess.
* mod_http_file_share: Rename variable for clarityKim Alvefur2021-12-041-6/+6
|
* mod_http_file_share: Fix deletion counterKim Alvefur2021-12-041-4/+3
| | | | | Before aa60f4353001 each loop had its own counter, seems incrementing of one of them was lost. But only one is needed anyhow.
* mod_http_file_share: Back out 876e1b6d6ae4Kim Alvefur2021-12-031-2/+2
|
* mod_http_file_share: Recalculate total storage usage weekly instead of dailyKim Alvefur2021-12-031-1/+1
| | | | | | Before mod_cron this job ran less frequently than the upload removal job. Running them at the same frequency seems wasteful somehow, plus the total should not drift away from the true value that fast.
* mod_cron: Add a 'weekly' job frequencyKim Alvefur2021-12-034-2/+9
|
* mod_cron: Initialize timestamp of new tasks to start of periodKim Alvefur2021-12-032-5/+5
| | | | | Makes it more generic so new periods (e.g. weekly etc) can be added easily.
* mod_cron: Follow convention of imports at the topKim Alvefur2021-12-032-2/+4
|
* mod_http_file_share: Keep track of total storage use across restartsKim Alvefur2021-12-031-0/+5
| | | | | The value needs to be known in order to determine if additional uploads can be accepted.
* mod_http_file_share: Fix measuring total storage use before it was knownKim Alvefur2021-12-031-1/+1
| | | | Passing nil to the metrics system causes errors later.
* mod_smacks: Refactor, simplify, optimizeKim Alvefur2021-12-031-4/+2
| | | | | Since reply.attr.to will be the .attr.from of the input we can check this earlier and avoid constructing the reply at all.
* mod_smacks: Use function to construct error replyKim Alvefur2021-12-031-5/+1
| | | | Did error_reply() not exist when mod_smacks was first created?
* mod_cron: Initialize daily tasks so they run around midnight UTCKim Alvefur2021-12-032-0/+9
| | | | | | Eventually the goal is to have daily tasks run while there is little activity, but that will vary with the server and the usage patterns of its users. This is a start anyway.