aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* util.startup: Ensure prosody.paths are absolute (see #1430)Kim Alvefur2019-11-041-1/+7
| | | | | | | | Normally these paths are injected into the installed 'prosody' executable as absolute paths, but it is possible to override at least the config path via environment variable or command line argument. This makes sure a path relative to pwd stays relative to that instead of the data directory.
* util.startup: Update config path (fixes #1430)Kim Alvefur2019-11-031-1/+2
|
* util.interpolation: Support unescaped variables with more modifiers (fixes ↵Kim Alvefur2019-10-201-3/+3
| | | | | | #1452) Tests will be added in trunk.
* util.serialization: Cache default serialization instance (fixes #1389)Kim Alvefur2019-07-081-1/+6
| | | | | | Most serialization uses still use the default serialize() and thus duplicate much of the setup, which negates some of the performance improvements of the rewrite.
* util.sql: Ignore if tables and indices already exist on creation (fixes #1064)Kim Alvefur2019-05-301-0/+6
| | | | | | Tested with SQLite3 3.16.2 and 3.27.2 and Postgres 11. MySQL does not support IF NOT EXISTS for indices so not handled here.
* util.random: Throw different error for EOL conditionKim Alvefur2019-05-211-1/+5
|
* util.random: Coerce error to string (thanks waqas)Kim Alvefur2019-05-181-1/+1
| | | | | In theory this could happen in an EOF condition, which should be impossible with a read from /dev/urandom.
* util.random: Handle unlikely read errors from /dev/urandom (see #1313)Kim Alvefur2019-05-181-1/+5
|
* util.ip: Add missing netmask for 192.168/16 range (fixes #1343)Kim Alvefur2019-04-141-1/+1
|
* util.pubsub: Validate node configuration on node creation (fixes #1328)Kim Alvefur2019-03-031-1/+10
|
* util.pubsub: Add support for requesting multiple specific items (needed for ↵Kim Alvefur2019-01-281-8/+13
| | | | #1305)
* util.startup: Always reload logging after config (fixes #1284)Kim Alvefur2019-01-061-0/+3
| | | | | This chancged in 6e24a69b03af likely because of confusion about the `reopen-log-files` event which was fired but never hooked.
* util.pubsub: Restore subscription index from stored data (fixes #1281)Kim Alvefur2018-12-291-0/+14
|
* util.datetime: Make sure timezone difference is calculated correctly (fixes ↵Kim Alvefur2018-12-091-1/+2
| | | | | | | #1262) If the two os.date() calls happen at either side of a second ticking over there would be a one second error in the calculation.
* util.stanza: Deserialize stanza without mutating input (fixes #711)Kim Alvefur2018-12-011-27/+17
|
* util.stanza: Validate input to clone() (with brief tests)Kim Alvefur2018-11-171-2/+9
|
* util.sql: Switch from hacky multi-arg xpcall implementation to util.xpcallKim Alvefur2018-11-111-5/+4
|
* util.sslconfig: Recognise TLS 1.3 as a protocol versionKim Alvefur2018-10-281-1/+1
| | | | This enables it to understand protocol = "tlsv1_3+"
* util.serialization: Encode non-fatal error in way that can be restoredKim Alvefur2018-10-271-1/+1
| | | | It could previously encode to eg `{ [nil] = ... }` which doesn't get decoded
* util.serialization: Rename non-fatal fallback handler for clarityKim Alvefur2018-10-271-3/+3
|
* util.serialization: Disable use of unquoted table keys by defaultKim Alvefur2018-10-271-1/+3
| | | | For safety against future new keywords
* util.serialization: Add option for allowing multiple references to the same ↵Kim Alvefur2018-10-271-0/+10
| | | | table (but not cycles)
* util.serialization: Separate errors for multiple table references and max depthKim Alvefur2018-10-271-2/+5
|
* util.serialization: Make maximum table depth configurableKim Alvefur2018-10-271-1/+2
|
* Many things: switch from hacky multi-arg xpcall implementations to a ↵Matthew Wild2018-10-263-13/+12
| | | | standard util.xpcall
* util.xpcall, util.compat: Add non-hacky multi-argument xpcall() for Lua 5.1Matthew Wild2018-10-261-0/+9
|
* util.dependencies: Remove ztact compatability warningMatthew Wild2018-10-261-13/+0
|
* util.promise: Switch from pcall to xpcall to get tracebacks on exceptionsMatthew Wild2018-10-261-1/+1
|
* util.promise: Remove the non-standard ability to pass a promise to reject()Matthew Wild2018-10-261-3/+1
|
* util.promise: Fix missing parametersMatthew Wild2018-10-251-2/+2
|
* util.promise: Ensure chained promises always receive a value/rejection even ↵Matthew Wild2018-10-251-22/+23
| | | | if an intermediate promise has no handlers
* util.promise: Export is_promise()Matthew Wild2018-10-251-0/+1
|
* util.promise: Remove debug print and assertMatthew Wild2018-10-251-1/+0
|
* util.pubsub: Clarify comment about return valueKim Alvefur2018-10-211-1/+1
|
* util.array: Add __div for parity with util.setMatthew Wild2018-10-211-0/+19
|
* util.array: Break long lineMatthew Wild2018-10-191-1/+5
|
* util.promise: Add promise.try()Matthew Wild2018-10-181-0/+6
|
* util.pubsub: Allow publishing with a config that should be used as defaults onlyMatthew Wild2018-10-181-4/+7
|
* util.promise: Add a string representationKim Alvefur2018-10-181-0/+4
|
* util.promise: Add promise:finally()Matthew Wild2018-10-181-0/+6
|
* util.promise: Some code relocationMatthew Wild2018-10-181-23/+23
|
* util.promise: Also support automatic resolution by returning a promise from ↵Matthew Wild2018-10-181-1/+3
| | | | | | | an on_reject handler Originally unimplemented because it wasn't clear to me what the correct behaviour was, but the A+ spec is clear that both onFulfilled and onRejected may return a promise.
* util.promise: Fix promise.reject() to return a rejected promise, and fix ↵Matthew Wild2018-10-181-1/+1
| | | | buggy test for it
* mod_http: Move normalize_path to util.httpKim Alvefur2018-10-141-0/+11
|
* util.dependencies: Add compat code for normalization of socket constructorsKim Alvefur2018-10-121-0/+4
| | | | | | Old LuaSocket had only tcp() which was IPv4-only. LuaSocket ~3.0 adds a tcp6() that creates a IPv6 socket. Some version moves tcp() to tcp4() and adds an IP-version-agnostic tcp() constructor.
* util.stanza: Set preserialize as freeze metamethodKim Alvefur2018-10-121-0/+2
|
* util.set: Add freeze metamethodKim Alvefur2018-10-121-0/+8
|
* util.array: Add freeze metamethodKim Alvefur2018-10-121-0/+2
|
* util.serialization: Remove encoding of very large or very small numbers in ↵Kim Alvefur2018-10-121-12/+1
| | | | | | | | scientific notation Also difficult to describe this option, easier to remove it. %.18g covers a very large range of numbers
* util.serialization: Simpler metatable pre-processingKim Alvefur2018-10-121-14/+12
| | | | It was too difficult to describe what it did.