Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | net.server: Restore epoll signalfd handling | Kim Alvefur | 2024-03-02 | 1 | -5/+0 |
| | | | | Reverts 4a9a69659727 | ||||
* | mod_posix: Move POSIX signal handling into util.startup to avoid race | Kim Alvefur | 2024-03-02 | 2 | -50/+43 |
| | | | | | | | | | | When libunbound is initialized, it spawns a thread to work in. In case a module initializes libunbound, e.g. by triggering a s2s connection, Prosody would not handle signals, instead immediately quit on e.g. the reload (SIGHUP) signal. Likely because the libunbound thread would not have inherited the signal mask from the main Prosody thread. Thanks Menel, riau and franck-x for reporting and help narrowing down | ||||
* | net.server: Disable epoll signalfd handling by default until problems resolved | Kim Alvefur | 2024-03-01 | 1 | -0/+5 |
| | |||||
* | net.server_epoll: Log creation of signalfd handles at noise level | Kim Alvefur | 2024-03-01 | 1 | -0/+1 |
| | | | | To aid in tracking down signalfd-related problems | ||||
* | util.bit53: Add bnot() method | Matthew Wild | 2024-03-01 | 2 | -0/+7 |
| | |||||
* | util.signal: Fail signalfd() if unable to change signal mask | Kim Alvefur | 2024-02-28 | 1 | -1/+4 |
| | | | | | By aborting early, the failure should be brought to the attention somehow. | ||||
* | net.server_epoll: Log failure to hook signals | Kim Alvefur | 2024-02-28 | 1 | -1/+6 |
| | | | | To make any such failures noticeable | ||||
* | Merge 0.12->trunk | Kim Alvefur | 2024-02-27 | 1 | -1/+1 |
|\ | |||||
| * | net.http.files: Validate argument to setup function | Kim Alvefur | 2024-02-27 | 1 | -1/+1 |
| | | | | | | | | Fixes error in #1765 by throwing an error earlier | ||||
* | | mod_s2s: Comment on why we avoid hostnames in stanza bounce messages | Kim Alvefur | 2024-02-24 | 1 | -0/+2 |
| | | |||||
* | | mod_cron: Fix log format to account for float that was integer before | Kim Alvefur | 2024-02-24 | 2 | -2/+2 |
| | | |||||
* | | mod_cron: Sync Teal source with 92301fa7a673 | Kim Alvefur | 2024-02-24 | 1 | -2/+10 |
| | | | | | | | | | | Yeah, it's weird to have two versions. Needing more build dependencies is also something we want to avoid, so here we are. | ||||
* | | util.signal: Wrap signalfd in an userdatum for gc handling etc | Kim Alvefur | 2024-02-24 | 2 | -9/+63 |
| | | |||||
* | | net.server_epoll: Support hooking signals via signalfd | Kim Alvefur | 2024-02-24 | 1 | -0/+15 |
| | | | | | | | | | | | | Handling signal events the same way as all other events makes sense and seems safer than the signal handling just jumping around in C and messing with Lua states. | ||||
* | | util.signal: Add support for signalfd(2) on Linux | Kim Alvefur | 2024-02-24 | 1 | -0/+34 |
| | | | | | | | | | | | | | | | | | | signalfd allows handling signal events using the same method as sockets, via file descriptors. Thus all signal dispatch can go through the same main event loop as everything else, removing need for thread-scary signal handling where execution would just jump to the signal handler regardless of the state of Lua, and needing to keep track of Lua states/threads. | ||||
* | | features: Add mod_server_info | Matthew Wild | 2024-02-23 | 1 | -0/+2 |
| | | |||||
* | | mod_server_contact_info: Update to publish fields via new mod_server_info | Matthew Wild | 2024-02-23 | 1 | -12/+25 |
| | | |||||
* | | mod_server_info: New module to manage the serverinfo disco extension form | Matthew Wild | 2024-02-23 | 1 | -0/+55 |
| | | | | | | | | | | | | | | | | This allows multiple modules to populate the form dynamically. Currently the form is "owned" by mod_server_contact_info, which prevents other modules from contributing to it. A further commit will port mod_server_contact_info to use this module. | ||||
* | | util.strbitop: Add common_prefix_bits() to Teal interface description | Kim Alvefur | 2024-02-23 | 1 | -0/+1 |
| | | |||||
* | | util.hashes: Add missing entries to Teal interface description | Kim Alvefur | 2024-02-23 | 1 | -2/+6 |
| | | | | | | | | Also sorted to match C source | ||||
* | | util.crypto: Update Teal interface description to match C sources | Kim Alvefur | 2024-02-23 | 1 | -12/+40 |
| | | | | | | | | | | | | Was missing some entries. Rearranged to match order of entries in the C source Reg table. | ||||
* | | tools/test_mutants.sh: Load loader helper when running busted | Matthew Wild | 2024-02-23 | 1 | -1/+1 |
| | | |||||
* | | util.ip: Remove ip.bits and related code, switch to more efficient strbitop | Matthew Wild | 2024-02-23 | 1 | -22/+6 |
| | | | | | | | | 100,000 iterations of match() on my laptop from 3.5s -> 0.5s. | ||||
* | | util.strbitop: Remove unused import in tests | Matthew Wild | 2024-02-23 | 1 | -1/+1 |
| | | |||||
* | | util.strbitop: Add common_prefix_bits() method | Matthew Wild | 2024-02-23 | 2 | -0/+81 |
| | | | | | | | | | | This returns the number of bits that two strings have in common. It is significantly more efficient than similar calculations in Lua. | ||||
* | | util.ip: Add another test case for match() and commonPrefixLength() | Matthew Wild | 2024-02-23 | 1 | -0/+4 |
| | | |||||
* | | util.strbitop: Rename spec file to correct name so tests actually run | Matthew Wild | 2024-02-23 | 1 | -0/+0 |
| | | |||||
* | | util.rfc6724: Remove, unused since introduction of Happy Eyeballs | Kim Alvefur | 2024-02-22 | 4 | -239/+1 |
| | | | | | | | | | | | | | | | | It was mainly used to determine whether to try IPv6 or IPv4 first, following the rules for this in the RFC. Now we always try IPv6 and IPv4 at roughly the same time, thus there no need to carry these rules. | ||||
* | | features: Add module-ready (for commit e20949a10118) | Matthew Wild | 2024-02-22 | 1 | -0/+3 |
| | | |||||
* | | util.startup: Expose core.features.available as prosody.features | Matthew Wild | 2024-02-22 | 1 | -0/+2 |
| | | | | | | | | for convenience. | ||||
* | | mod_s2s_auth_certs: Handle potential string error | Kim Alvefur | 2024-02-21 | 1 | -3/+6 |
| | | | | | | | | | | conn:ssl_peerverification() can now return a single error in case the connection has been closed for whatever reason | ||||
* | | net.server_epoll: Prevent traceback when checking TLS after connection gone | Kim Alvefur | 2024-01-21 | 1 | -0/+5 |
| | | | | | | | | Unclear why this would be done, but an error is not great. | ||||
* | | mod_cron: Allow configuring various "internal" delay parameters | Matthew Wild | 2024-02-20 | 1 | -2/+10 |
| | | | | | | | | | | Notably, it is now possible to add a randomized spread factor to the check interval. | ||||
* | | mod_c2s: Fix error on role change on Components (thanks Menel) | Kim Alvefur | 2024-02-17 | 1 | -0/+3 |
| | | |||||
* | | mod_smacks: Adjust buckets for resumption age statistic | Kim Alvefur | 2024-02-16 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | Given that there are recommendations floating around recommending 24 hours session lifetime, having buckets up to 10 minutes wouldn't be useful in that case. Would be nice if we had some way to automatically assign suitable number series for buckets, scaled to what the configuration might be. | ||||
* | | mod_storage_internal: Fix off-by-one when searching archive for | Kim Alvefur | 2024-02-15 | 1 | -6/+2 |
| | | | | | | | | | | Fixes a test case provided by MattJ where the very first item matched by a 'start' timestamp was not returned. | ||||
* | | mod_s2s_auth_dane_in: Try single TLSA lookup per draft-ietf-dance-client-auth | Kim Alvefur | 2024-01-11 | 2 | -4/+12 |
| | | | | | | | | Moves some complexity from the implementation into DNS operations. | ||||
* | | mod_s2s_auth_dane_in: Simplify result processing | Kim Alvefur | 2024-01-11 | 1 | -18/+26 |
| | | | | | | | | Fewer loops | ||||
* | | MUC: Record reason for affiliation changes and return in list (fixes #1227) | Kim Alvefur | 2021-08-08 | 3 | -4/+84 |
| | | |||||
* | | MUC: Test that <subject/> + <thread/> is not handled as subject change | Kim Alvefur | 2024-01-23 | 1 | -0/+29 |
| | | | | | | | | | | Ref #667 Ref #1838 | ||||
* | | mod_invites: Fix argument handling | Kim Alvefur | 2024-01-21 | 1 | -1/+1 |
| | | | | | | | | | | Not sure what the next() was supposed to do. Reject unknown --options perhaps? | ||||
* | | mod_invites: Show short help instead of traceback on missing hostname | Kim Alvefur | 2024-01-13 | 1 | -2/+3 |
| | | |||||
* | | mod_invites: Show help if --help passed instead of hostname | Kim Alvefur | 2024-01-13 | 1 | -18/+25 |
| | | | | | | | | | | Because I couldn't guess the right way to get the help message without reading the source twice. | ||||
* | | mod_invites: Allow specifying invite ttl on command line | Kim Alvefur | 2024-01-13 | 1 | -1/+3 |
| | | | | | | | | Was missing a way to pass TTL via command or shell. | ||||
* | | Merge 0.12->trunk | Kim Alvefur | 2023-12-17 | 2 | -0/+30 |
|\| | |||||
| * | mod_disco: Advertise disco#info and #items on bare JIDs to fix #1664 | Kim Alvefur | 2023-12-17 | 2 | -0/+30 |
| | | | | | | | | | | | | | | | | Having to add these in *there* places seems less than ideal. I would also think that advertising disco#info is a bit redundant, since it is a requirement for everything in XMPP and if it was missing you would get an error back. | ||||
* | | scansion: Use new style for accessing Lua globals | Kim Alvefur | 2023-12-17 | 1 | -1/+1 |
| | | |||||
* | | scansion: Use new prosody namespace in import | Kim Alvefur | 2023-12-17 | 1 | -1/+1 |
| | | |||||
* | | scansion: Use captures or wildcards instead of mocking time | Kim Alvefur | 2023-12-17 | 5 | -24/+14 |
| | | | | | | | | | | > Mockery is one of the things I hold dear! And he's making a mockery of it!! -- Belkar Bitterleaf | ||||
* | | util.xtemplate: Test the each template function | Kim Alvefur | 2023-12-16 | 1 | -0/+8 |
| | | | | | | | | | | | | | | | | It iterates over childtags, so a template like {foo|each{...}} would be equivalent to root:childtags("foo"), while a deeper query needs the bit that becomes arguments to :childtags as an argument to each, e.g. {foo/bar|each(baz)} would behave like root:get_child("foo"):get_child("bar"):childtags("baz") |