aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* mod_http_file_share: Keep global storage use accurate longer.Kim Alvefur2021-11-301-5/+5
| | | | | Merging those loops removes the miscounting that would occur in case a file could not be deleted, so no need to limit it to that case.
* mod_http_file_share: Merge file expiry loopsKim Alvefur2021-11-301-13/+7
| | | | | | | | Not sure what the benefit of two separate loops was, perhaps reduced memory usage by allowing archive query state to be garbage collected before moving on to deleting files. Never measured so probably not so. This simplifies a bit.
* mod_http_file_share: Limit query to time since last expiryKim Alvefur2021-11-301-2/+2
| | | | | | This is probably a bad idea, as files that could not be deleted for some reason will not be tried again. I was just thinking of what the 'task' argument could be used for.
* mod_admin_shell: List periodic tasks in module:infoKim Alvefur2021-11-221-0/+2
|
* mod_http_file_share: Switch to mod_cron for periodic tasksKim Alvefur2021-11-221-14/+5
|
* mod_muc_mam: Switch to mod_cron for message expiryKim Alvefur2021-11-221-6/+1
|
* mod_mam: Switch to new cron APIKim Alvefur2021-11-211-6/+1
|
* core.moduleapi: Add API for adding daily or hourly tasks via mod_cronKim Alvefur2021-11-212-0/+17
|
* mod_cron: Initial commit of periodic task runnerKim Alvefur2021-11-212-0/+157
| | | | | | A number of modules now have periodic tasks that need to run, e.g. for cleaning out old messages or files. This has highlighted a need for coordinating and optimizing scheduling of such tasks.
* mod_smacks: Remove obsolete commentKim Alvefur2021-12-021-5/+0
| | | | It dates back to the initial commit in prosody-modules 9a7671720dec
* mod_smacks: Avoid duplicated queueing using flag on session instead of stanzaKim Alvefur2021-12-021-2/+4
| | | | Mutating the stanza like this is Really Bad Practice.
* mod_smacks: Remove dead conditionalKim Alvefur2021-12-021-1/+1
| | | | | `cached_stanza` can't be falsy because util.stanza.clone() would have thrown rather than return nil, or `._cached=true` would have.
* mod_smacks: Ensure hibernating session is not connectedKim Alvefur2021-12-021-0/+3
| | | | | Turns out that if you destroy a session from inside prosody, it goes into hibernation but stays connected and continues processing stanzas.
* mod_smacks: Reorder imports etcKim Alvefur2021-12-011-13/+15
| | | | Mostly sorted by name of import (sort -k4) and grouped by kind
* mod_smacks: Fix empty cache checkKim Alvefur2021-12-011-1/+1
| | | | | In Lua, every value except `nil` and `false` are considered true in boolean expressions, even `0` as here, which means this was dead code.
* mod_smacks: Use stanza type checking function for correctnessKim Alvefur2021-12-011-1/+1
| | | | | Non-stanza tables with an 'attr' field might be rare in Prosody, but better to be Correct
* mod_smacks: Remove redundant fieldsKim Alvefur2021-12-011-7/+1
| | | | | | Given that the registry is scoped per user and the module is scoped per host, there seems no point to checking or storing both username and host here.
* mod_smacks: Factor out formatting of 'h' valueKim Alvefur2021-12-011-4/+6
|
* mod_smacks: Remove dead legacy code for 0.10Kim Alvefur2021-12-011-17/+0
|
* mod_smacks: Use new pre-session-close event instead of monkeypatchKim Alvefur2021-12-011-13/+16
| | | | Much cleaner.
* mod_c2s: Add event just before closing as sessionKim Alvefur2021-12-011-0/+3
| | | | | | To allow modules to do things just before the session is closed. The '(pre-)resource-unbind' events are fired after the stream is closed, leaving no way to send something.
* util.dependencies: Fix typo (thanks jonas’)Kim Alvefur2021-11-301-1/+1
| | | | | | | | | | vim> Change "sevral" to: 1 "several" 2 "sacral" 3 "spiral" 4 "feral" 5 "serial" jonas’> I choose 4.
* net.server_epoll: Prevent loop attempting to send last data after closeKim Alvefur2021-11-301-0/+1
| | | | | | | | | | | | | | If the connection is closed by the peer, any buffered data is given a last chance to be sent (see f27b9319e0da). If the connection is Really closed, no attempt to write will occur, instead epoll will raise the error flag and :onreadable() will be invoked again, where it will try to :close() again for the same reason, thus looping until the connection somehow gets destroyed. By clearing the _connected flag, the second time it passes :onreadable() it should go directly to :destroy(), breaking the loop. Thanks Link Mauve for reporting