aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mod_csi: Always advertise featureKim Alvefur2023-04-161-2/+1
| | | | | | Was previously supposed to be conditionally advertised based on availability of a module handling the actual optimizations, which was removed in be9ac41f1619
* mod_tokenauth: Fix parsing binary part of tokensKim Alvefur2023-04-121-1/+1
| | | | | | Fixes parsing of tokens that happen to have a `;` in their secret part, otherwise it splits there and the later bit goes into the username and hitting the "Invalid token in storage" condition.
* mod_tokenauth: Only check if expiry of expiring tokensKim Alvefur2023-04-121-1/+1
| | | | | | | | Some tokens, e.g. OAuth2 refresh tokens, might not have their lifetime explicitly bounded here, but rather be bounded by the lifetime of something else, like the OAuth2 client. Open question: Would it be better to enforce a lifetime on all tokens?
* mod_admin_shell: Use same wildcard matching in other s2s commandKim Alvefur2023-04-101-6/+5
| | | | Consistency is nice.
* mod_admin_shell: Factor apart wildcard matching into function for reuseKim Alvefur2023-04-101-14/+18
| | | | Applying this for s2s:close[all]() would also be nice.
* mod_csi: Remove module status, doesn't work because of mod_smacksKim Alvefur2023-04-101-12/+0
| | | | | | | This was meant to warn in case you had only mod_csi without a logic handling module like mod_csi_simple by checking if anything hooked this event, however mod_smacks also hooks this event and so this isn't really a useful way of detecting this condition.
* mod_http: Fix reliance on previous tostring() format of util.setKim Alvefur2023-04-101-2/+7
| | | | | | | | a863e4237b91 unintentionally changed the format of HTTP CORS headers, which were apparently relying on the output of tostring(), which it shouldn't have. Explicitly serializing it this time.
* util.human.io: Fix column width miscalculationKim Alvefur2023-04-091-3/+0
| | | | | | Fixes that the more fixed width columns there are, the narrower the resulting table becomes. A right-aligned variable-width column at the last position should always be flush to the right side of the terminal.
* util.human.io: Fix error with ellipsis to negative lengthKim Alvefur2023-04-091-1/+1
| | | | | Can happen if you resize the terminal too narrow that the space left for variable width columns end up negative.
* tools/tb2err: Trim trailing whitespaceKim Alvefur2023-04-081-1/+1
|
* tools/tb2err: Rewrite prosody-modules paths to ../modulesKim Alvefur2023-04-081-0/+2
| | | | This assumes you have community modules in ../modules as I do
* tools/tb2err: Add some example usage in a commentKim Alvefur2023-04-081-0/+2
|
* tools/tb2err: Drop use of lua-any since it should run fine on any LuaKim Alvefur2023-04-081-2/+1
| | | | Dependencies--; \o/
* mod_admin_shell: Add config:set([host,] key, value) because why notKim Alvefur2023-04-081-0/+8
| | | | | | | | | We had config:get() but not this. > <MattJ> Yeah, why did we never implement that? Handy if you want to quickly try out settings without reloading the whole config.
* mod_admin_shell: Allow wildcard matches like s2s:show("*.example.com")Kim Alvefur2023-04-081-1/+13
| | | | | E.g. if you want to show connections to/from a domain, including its subdomains, this is handy.
* util.sasl: Fix a singularsKim Alvefur2023-04-071-1/+1
| | | | | Thanks timeless, your mere existence inspires us to improve our spelling, tho this was more syntax.
* Merge 0.12->trunkMatthew Wild2023-04-071-1/+1
|\
| * prosodyctl: Fix using variable content in a format stringMatthew Wild2023-04-071-1/+1
| | | | | | | | This broke if the error message contained a format specified such as '%s'.
* | util.argparse: Translate '-' to '_' in long option names for convenienceMatthew Wild2023-04-071-0/+1
| | | | | | | | A review of existing code suggests nothing will break. So, here we go...
* | mod_http_file_share: use util.human.io.parse_durationJonas Schäfer2022-04-281-1/+7
| | | | | | | | | | | | Updated by Zash, the original patch by Jonas had put the duration parsing function in util.datetime but MattJ later did the same thing but differently in f4d7fe919969
* | mod_mam: port to use util.human.io.parse_durationJonas Schäfer2022-04-281-8/+6
| | | | | | | | | | | | Updated by Zash, the original patch by Jonas had put the duration parsing function in util.datetime but MattJ later did the same thing but differently in f4d7fe919969
* | util.human.io: Add parse_duration() method to parse a duration stringMatthew Wild2023-04-072-0/+30
| | | | | | | | | | Similar logic occurs throughout various modules in the codebase. We might even want a module:get_option_duration()??
* | mod_admin_shell: Allow "*" as substitute for 'nil' for easier CLI usageKim Alvefur2023-04-071-2/+2
| | | | | | | | | | | | | | | | Since prosodyctl shell with additional arguments assumes the first two are a section:command() and any following arguments are strings, passing a bare 'nil' is not possible. In order to avoid delving into this rabbit hole, instead produce a token that alone is not really a legal JID for use as wildcard.
* | util.prosodyctl.shell: Fix sending terminal width with single argumentKim Alvefur2023-04-071-1/+1
| | | | | | | | | | E.g. when you do 'prosodyctl shell "s2s:show()"', this is the case that triggers, and it was missing the @width argument, causing confusion.
* | util.human.io: Coerce $COLUMNS to numberKim Alvefur2023-04-071-1/+1
| | | | | | | | os.getenv() returns a string but term_width() should return a number
* | util.prosodyctl.shell: Coerce terminal width to string (for util.stanza)Kim Alvefur2023-04-071-1/+1
| | | | | | | | Fixes invalid attribute value: expected string, got number
* | util.human.io: table: don't read $COLUMNS directly, just use term_width()Matthew Wild2023-04-071-1/+1
| | | | | | | | ...which now reads $COLUMNS for us and does the right thing.
* | util.human.io: table: Return determined width as a second resultMatthew Wild2023-04-071-1/+1
| | | | | | | | | | This allows callers to adjust other things based on the width of the rows (such as header lines).
* | util.human.io: Prefer using the $COLUMNS environment variable if set (by ↵Kim Alvefur2023-04-072-1/+3
| | | | | | | | | | | | readline) Feels like it should be faster.
* | util.prosodyctl.shell: Use new term_width() for widthKim Alvefur2023-04-071-1/+2
| | | | | | | | | | Kicks in if/when readline hasn't set $COLUMNS, e.g. when using the `prosodyctl shell command like this` form.
* | util.human.io: table: use term_width() to discover terminal widthMatthew Wild2023-04-071-1/+1
| |
* | util.human.io: Add term_width() method to discover the terminal widthMatthew Wild2023-04-071-0/+12
| | | | | | | | | | This is not standard POSIX, but apparently very widely supported. For reference: https://www.austingroupbugs.net/view.php?id=1053
* | mod_admin_shell: Make IP column thinner if IPv6 is disabledKim Alvefur2023-04-071-1/+1
| | | | | | | | | | | | | | IPv6 addresses can be pretty long, so if they can be more compact, that's nice. But nobody would disable IPv6, would they?
* | mod_admin_shell: Make default column width 1 partKim Alvefur2023-04-071-1/+1
| | | | | | | | | | These gets used for usernames, resources and other random session fields that don't have a column definition in `available_columns`
* | mod_admin_shell: Fix attempt to compare number with stringKim Alvefur2023-04-071-1/+1
| | | | | | | | Missed the # in 93c1590b5951
* | util.human.io: Pass the whole column definition to mapper functionKim Alvefur2023-04-071-1/+1
| | | | | | | | | | | | I forget why I wanted this, but it may allow doing things like pull settings from the column, especially when the mapper function is reused among many columns.
* | util.human.io: Allow defining per column ellipsis functionKim Alvefur2023-04-071-1/+1
| | | | | | | | | | | | As an alternative to doing it in the mapper function. Could be useful in cases where one may want to put the ellipsis in the middle or beginning instead of the start.
* | util.human.io: Pass expected width to mapper functionKim Alvefur2023-04-071-1/+1
| | | | | | | | | | In order to allow it to adjust its output to available space, apply its own ellipsis method or other compacting method.
* | mod_admin_shell: Dynamically size JIDs and hostsKim Alvefur2023-04-071-4/+4
| | | | | | | | Reasoning: a hostname is one part, a JID is 3 parts.
* | mod_admin_shell: More dynamic widths calculationsKim Alvefur2023-04-071-3/+14
| |
* | mod_admin_shell: Calculate widths of columns from example valuesKim Alvefur2023-04-061-12/+19
| | | | | | | | | | Harder to accidentally count wrong if Lua is doing the counting on a plausible input.
* | mod_admin_shell: Strip 'prosody:' prefix to allow narrower Role columnKim Alvefur2023-04-021-3/+4
| |
* | util.set: Change tostring format to {a, b, c}Kim Alvefur2023-04-061-1/+1
| | | | | | | | | | | | | | | | Makes it easier to make out where the set starts and ends in cases where it may get embedded and tostring()-ed in a log message. { } taken over from util.array for consistency with some other systems syntax for Sets, e.g. Python
* | util.array: Change tostring format to [a,b,c]Kim Alvefur2023-04-061-1/+1
| | | | | | | | | | | | | | Arrays in Lua do use { } but since __tostring is often user-facing it seems sensible to use [ ] instead for consistency with many other systems; as well as to allow the {a,b,c} formatting to be used by util.set without being confused with util.array.
* | util.human.io: Fix pattern to support fractional proportionsMatthew Wild2023-04-061-2/+2
| |
* | util.human.io: Support for dynamic "proportional" columnsMatthew Wild2023-04-061-4/+14
| | | | | | | | | | | | | | | | Instead of a percentage, this allows you to specify e.g. `width="[N]p"`, where a width="2p" will be twice the width of a width="1p" column. Compatibility with the old %-based widths is preserved, and percentages adding up to more than 100 are handled more gracefully.
* | mod_debug_reset: Remove now unused import of util.time (thanks luacheck)Matthew Wild2023-04-061-2/+0
| |
* | mod_debug_reset: Don't delay operations until next tickMatthew Wild2023-04-061-6/+4
| | | | | | | | | | | | | | | | For some unknown reason, this was required with the old mock util.time functions prior to 012d6e7b723a. After 012d6e7b723a, it breaks. So I'm happy to revert to not delaying anything. This makes tests pass again.
* | integration tests: Preserve unmocked time.monotonic()Matthew Wild2023-04-061-6/+5
| | | | | | | | | | | | | | | | | | | | With monotonic() frozen, timers may fail to trigger. This caused problems after the new util.startup changes that moved the server-started event to a timer. The timer wouldn't trigger, the event didn't fire, and prosody would fail to daemonize. All the tests that depend on specific time behaviour are depending on wall clock time, so only mocking util.time.now() and os.time() fixes those.
* | mod_csi: Drop summary stats, doesn't work in normal moduleKim Alvefur2023-04-061-9/+0
| | | | | | | | | | | | This method ends up going up for each collection and the :clear() method is only available to global modules (see e.g. mod_c2s), while regular per-host modules get scoped stats