| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
It dates back to the initial commit in prosody-modules 9a7671720dec
|
| |
| |
| |
| | |
Mutating the stanza like this is Really Bad Practice.
|
| |
| |
| |
| |
| | |
`cached_stanza` can't be falsy because util.stanza.clone() would have
thrown rather than return nil, or `._cached=true` would have.
|
| |
| |
| |
| |
| | |
Turns out that if you destroy a session from inside prosody, it goes
into hibernation but stays connected and continues processing stanzas.
|
| |
| |
| |
| | |
Mostly sorted by name of import (sort -k4) and grouped by kind
|
| |
| |
| |
| |
| | |
In Lua, every value except `nil` and `false` are considered true in
boolean expressions, even `0` as here, which means this was dead code.
|
| |
| |
| |
| |
| | |
Non-stanza tables with an 'attr' field might be rare in Prosody, but
better to be Correct
|
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Much cleaner.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
vim> Change "sevral" to:
1 "several"
2 "sacral"
3 "spiral"
4 "feral"
5 "serial"
jonas’> I choose 4.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
This should skip the summary SQL query when not needed, ie when the
cached value can be used directly.
|
| |
| |
| |
| |
| | |
Otherwise a query for a set of ids may cause that value to be cached,
despite only covering a subset.
|
| |
| |
| |
| |
| |
| |
| | |
jid.join(true, ...) fails.
Since we don't know which users this affects, best to clear the whole
cache.
|
| |
| |
| |
| | |
More code, but less of it needs to run and no extra tracking is needed.
|
| |
| |
| |
| |
| | |
archive_store:delete(true) deletes messages for all users, which would
allow some simplification when this is supported.
|
| |
| |
| |
| | |
Seems SC2039 has been replaced, so should be phased out.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Running woken runners in the next iteration of the event loop prevents
unexpected recursion, unexpected tracebacks, and is generally more
predictable.
The pattern is borrowed from util.promise, where we're now doing the same.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
No scheduler set by default, so it will error (we plan to initialize it in
util.startup).
We wanted to avoid a hard dependency on util.timer (which in turn depends on
network backends, etc.), and we didn't add timer.sleep() because we didn't
want to add a hard dependency on util.async for things that don't need it.
|
| |
| |
| |
| |
| | |
Self-closing <tags/> and <?processing instructions?> had some
asymmetries in applied colors.
|
| |
| |
| |
| | |
Search for 'Lua 5.1' for reasons.
|
| |
| |
| |
| |
| | |
I have been running my own server exclusively on Lua 5.4 for months and
apart from packaging issues I remember on major issues.
|
| |
| |
| |
| |
| |
| | |
Currently only supported with OJN
Assumption: the direct_tls_ports are not empty when set.
|
| | |
|
| |
| |
| |
| | |
Some of these may be debatable, investigation and patches welcome.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Wrong level, missing argument, whatever it was meant to shed light on
has been resolved and forgotten.
|
| |
| |
| |
| |
| | |
Could not reproduce locally but it complained in CI that
> spec/util_promise_spec.lua:676: Cannot spy on type 'nil', only on functions or callable elements
|
| |
| |
| |
| | |
It was all of for some reason
|
| |
| |
| |
| | |
I've typed `>require"util.async".wait_for(...)` for the last time!
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
'unavailable' was the longest possibility, dropping it probably
differentiates available from unavailable more, in less space.
|