aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* util.dataforms: Encode size attributes as integers in XEP-0221 media elementKim Alvefur2021-10-281-1/+1
| | | | Otherwise very large fields would be serialized in e notation
* util.dataforms: Ensure larger integers are serialized as suchKim Alvefur2021-10-281-1/+3
| | | | | | | Assumes that most number fields are integers, as most numeric types listed in XEP-0122 are, as are all such fields in Prosody as of this. Otherwise %g produces something like 1.1259e+15
* util.dataforms: Turn number values into timestamps for datetime fieldsKim Alvefur2021-10-261-1/+3
| | | | Makes it symmetric with parsing.
* util.dataforms: Coerce number values for boolean fieldsKim Alvefur2021-10-261-2/+5
| | | | | Makes more sense than coercing to a string, which would always be truthy.
* util.dataforms: Add support for datetime field types via XEP-0122Kim Alvefur2021-10-251-0/+8
|
* util.startup: Understand -h, -? as --help in prosodyctl but ignoreKim Alvefur2021-10-251-1/+1
| | | | | prosodyctl -h showing an error was not very helpful, especially since prosodyctl shows its help for any unknown (or none) command.
* util.startup: Show brief usage on `prosody -h|-?|--help`Kim Alvefur2021-10-251-1/+8
| | | | | Seems more suitable than asking if prosodyctl was meant to be used, or going ahead and starting.
* util.startup: Skip config readability check in migrator (thanks eTaurus)Kim Alvefur2021-10-231-1/+1
| | | | | | This field is empty for reasons when invoked by prosody-migrator, which threw an error: > bad argument #1 to 'open' (string expected, got nil)
* mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436Kim Alvefur2021-10-191-0/+1
| | | | | | | | Default left as 'never' in mod_pubsub to preserve the previous behavior. Unclear if this is desirable, but can always be changed later. In mod_pep this allows turning off the automatic resending of most recent item.
* mod_auth_cyrus: Remove (move to community modules)Kim Alvefur2021-10-171-169/+0
| | | | mod_auth_ldap provides LDAP support without being tied to Cyrus
* util.startup: Only ask if 'prosodyctl' was meant instead of 'prosody' (fix ↵Kim Alvefur2021-10-121-1/+3
| | | | #1692)
* Merge 0.11->trunkKim Alvefur2021-10-121-1/+1
|\
| * util.startup: Correctly point out unknown short param (fixes #1691)Kim Alvefur2021-10-121-1/+1
| |
* | util.prosodyctl.check: Add two known globals from mod_httpKim Alvefur2021-10-031-0/+2
| |
* | util.startup: Allow separate command line argument settings for prosody and ↵Kim Alvefur2021-09-301-6/+11
| | | | | | | | | | | | | | prosodyctl Makes it clearer that prosody does not take -v atm, as well as how prosodyctl does not take the demonization flags.
* | prosodyctl: Add support for -v/--verbose to enable debug loggingKim Alvefur2021-09-301-2/+4
| | | | | | | | More convenient than the environment variable.
* | prosodyctl: Add alternate XMPP Blackbox Exporter connectivity checkKim Alvefur2021-09-301-3/+71
| | | | | | | | | | Reduces the reliance on observe.jabber.network and enables alternatives for those who wish to have that.
* | prosodyctl: Use HTTP client in promise mode for connectivity checkKim Alvefur2021-09-301-26/+14
| | | | | | | | | | Feels a bit cleaner to hide away the async.waiter() and return value handling. Also line count reduction!
* | mod_register_limits: Reword some optionsKim Alvefur2021-09-191-0/+4
| | | | | | | | Remember to remove the compatibility things in some future version
* | util.prosodyctl.check: Suggest replacing 'use_libevent' with 'network_backend'Kim Alvefur2021-09-141-1/+1
| | | | | | | | It's basically deprecated
* | util.prosodyctl.check: Nudge towards plural port optionsKim Alvefur2021-09-141-1/+3
| | | | | | | | The singulars are supposed to be deprecated
* | util.prosodyctl.check: Fix to not treat some options as misplacedKim Alvefur2021-09-141-0/+2
| | | | | | | | | | All 'net' providers generate a _port option which must be in the global section, but this mistakenly also warns about these options as well.
* | util.prosodyctl.check: Suggest replacements for deprecated options #1684Kim Alvefur2021-09-141-14/+28
| |
* | util.set: Add :contains_set() methodMatthew Wild2021-09-121-0/+9
| |
* | util.array: Add :slice() method + testsMatthew Wild2021-09-121-0/+34
| | | | | | | | Behaviour follows the same logic as string.sub (so yes, 1-indexed).
* | util.stanza: Add :get_child_with_attr() + testsMatthew Wild2021-09-121-0/+8
| |
* | util.prosodyctl.check: Remove stray debug print()Kim Alvefur2021-09-121-1/+0
| |
* | util.prosodyctl.check: Ignore unused "ok" variable [luacheck]Kim Alvefur2021-09-121-1/+1
| |
* | util.prosodyctl.check: Refuse to do ojn test unless prosody is runningKim Alvefur2021-09-111-0/+9
| | | | | | | | | | Other tests don't require a running prosody and I forgot to start it when testing.
* | prosodyctl: Add external connectivity check based on observe.jabber.networkJonas Schäfer2020-05-061-9/+87
| | | | | | | | | | | | | | This uses the (experimental) observe.jabber.network API to perform external connectivity checks. The idea is to complement the checks prosodyctl can already do with a (nearly) complete s2s/c2s handshake from a remote party to test the entire stack.
* | mod_c2s: Rename Direct TLS listener 'c2s_direct_tls' for clarityKim Alvefur2021-09-091-1/+1
| | | | | | | | And to follow existing naming practices better than 'legacy_ssl' did.
* | util.prosodyctl.check: Add TODO about replacements for deprecated settingsKim Alvefur2021-09-091-0/+1
| |
* | util.prosodyctl.check: Check for server-to-server Direct TLS recordsKim Alvefur2021-09-091-1/+24
| |
* | util.pubsub: Add support for limiting number of items to retrieveKim Alvefur2021-09-051-1/+6
| | | | | | | | | | Hopefully this will eventually be upgraded to RSM, which is why the argument is called 'resultspec' and is a table.
* | Fix various spelling errors (thanks codespell)Kim Alvefur2021-07-272-2/+2
| | | | | | | | | | Also special thanks to timeless, for wordlessly reminding me to check for typos.
* | util.pubsub: Signal that 'persistent-items' is unsupported when disabledKim Alvefur2021-07-221-3/+4
| | | | | | | | | | | | XEP-0060 says that this the way to indicate that 'persistent-items' is unsupported, but doesn't explicitly say if it being disabled in the node configuration also counts as unsupported.
* | util.pubsub: Fix behavior of persist_items disabledKim Alvefur2021-07-221-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | When set to 'false' there is no need for a persistence interface at all, since items are not persisted after being broadcast. Had started wondering if maybe the behavior was wrong, after reading parts of XEP-0060 that pointed in that direction. Some discussion of this can be found in logs of xmpp:xsf@muc.xmpp.org?join from around 2021-07-20 Thanks to Ralph for confirming.
* | mod_pubsub: Explicitly enable persistence by default to preserve behaviorKim Alvefur2021-07-211-1/+1
| | | | | | | | | | | | Since nodes were always persistent according to the XEP-0060 definition. Whether data is stored in memory or on disk was not what this setting was meant for.
* | util.pubsub: Handle absence of node data interfaceKim Alvefur2021-07-211-17/+32
| | | | | | | | | | | | | | | | This is in preparation for fixing the behavior of 'persist_items', which was misunderstood at some point. In mod_pep it toggles between persistent storage and in-memory storage, while the correct behavior would be to toggle whether published items are stored at all or forgotten after being broadcast.
* | util.prosodyctl.check: Normalize away trailing dot in some messages tooKim Alvefur2021-07-041-8/+13
| |
* | util.prosodyctl.check: Normalize potential to form without trailing '.'Kim Alvefur2021-07-041-0/+2
| | | | | | | | | | | | In some cases you might end up with both 'xmpp.example.com' and 'xmpp.example.com.', which are the same thing so no point in doing the same checks twice.
* | util.prosodyctl.check: Point out if A/AAAA exists despite disabled IPvXKim Alvefur2021-07-041-0/+10
| | | | | | | | | | | | Clients would try to connect and receive an error or timeout, increasing the time it takes to establish a connection. Probably not what you want. If you really want IPv6 or IPv4 disabled, best remove the A or AAAA record.
* | util.prosodyctl.check: Warn if both use_ipv4 and use_ipv6 are set to falseKim Alvefur2021-07-041-0/+6
| | | | | | | | Why would you do this?!
* | util.prosodyctl.check: Silence IP protocol mismatches when disabledKim Alvefur2021-07-041-2/+4
| | | | | | | | | | If you set 'use_ipv4 = false' then you probably don't care much for the host not resolving to the IPv4 address, and same with 'use_ipv6'.
* | Merge 0.11->trunkKim Alvefur2021-07-031-1/+1
|\|
| * util.ip: Fix netmask for link-local address rangeKim Alvefur2021-07-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | This may have mistakenly caused link-local addresses to be considered global. May have caused mod_s2s and prosodyctl check dns to behave incorrectly on networks using link-local IPv4 addresses. By my guesstimate, these are extremely rare. Probably minimal impact beyond a bit longer to establish s2s and some possible confusion from prosodyctl check dns results. Ref RFC 3927
* | util.format: Escape ASCII control characters also in extra argumentsKim Alvefur2021-07-031-1/+1
| |
* | util.format: Allow newlines but ensure following lines are indentedKim Alvefur2021-07-031-1/+1
| | | | | | | | | | This should a) prevent injection of text that looks like legitimate log lines and b) not mangle tracebacks.
* | util.format: Fix missing backslash in patternKim Alvefur2021-07-031-1/+1
| | | | | | | | | | Made the pattern match a longer range than intended, but with no effect since those characters are not present in the 'control_symbols' table.
* | util.prosodyctl.check: Reload unbound to ensure hosts.txt is ignoredKim Alvefur2021-07-031-1/+3
| | | | | | | | | | | | If unbound was initialized prior to this then the config change here wouldn't apply, and it will again think that 127.0.1.1 has been found in DNS.