aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mod_http_openmetrics: Imported from prosody-modules mod_prometheus @df2246b15075Matthew Wild2021-11-242-0/+141
| | | | | | | | | This version has several changes from the earlier mod_prometheus: - Conversion of metrics into the text-based OpenMetrics format is moved to util.openmetrics - Support for IP-based access control - Compatibility with earlier Prosody versions removed
* mod_csi_simple: Skip initiating flush in all but inactive stateKim Alvefur2021-11-201-1/+1
| | | | | | Both in the flushing and active states the right thing to do is skip directly to returning the data. Also in any unknown state, like if the filter is somehow left behind on module unload.
* mod_csi_simple: Early return on client activity while flushing bufferKim Alvefur2021-11-201-1/+1
| | | | | Cuts down on log and measurement noise. We only want to do these things here when initiating a flush.
* mod_csi_simple: Allow some straggler traffic after flushing bufferKim Alvefur2021-11-201-3/+20
| | | | | | | | | | Statistics from my server shows a high rate of very short buffer hold times, most of which are the result of replies to pings or other iq traffic, or mod_smacks acks and ack requests just after a flush was completed. This grace period should eliminate noise and quick flipping between flushing and inactive mode.
* util.prosodyctl.check: Highlight inconsistency of AAAA records and ↵Kim Alvefur2021-11-201-0/+4
| | | | use_ipv6=false
* util.prosodyctl.check: Respect use_ipv4/v6 in proxy65 checkKim Alvefur2021-11-201-4/+4
| | | | | | | Previously it would complain about lack of an AAAA record for proxy65_target even in an IPv6-less environment. Thanks to libertas for unintentionally calling attention to this.
* util.prosodyctl.check: Take IPv6 support in LuaSocket into accountKim Alvefur2021-11-201-1/+1
| | | | Shouldn't really matter these days, but portmanager checks this way.
* net.server_epoll: Fix streaming downloads (thanks Menel)Kim Alvefur2021-11-191-1/+1
| | | | | | | | | | ff4e34c448a4 broke the way net.http.server streams downloads from disk because it made writes from the ondrain callback no longer reset the want-write flag, causing the download to halt. Writes from the predrain handler still must not trigger anything but additions to the buffer, since it is about to do all the socket writing already.
* core.moduleapi: Fix name of renamed API in log messageKim Alvefur2021-11-181-1/+1
| | | | | | | hook_stanza was renamed hook_tag in 2012 in 2087d42f1e77 Why do we still have hook_stanza? Why is this only a warning anyway?
* net.server_epoll: Try harder to avoid reentrant opportunistic writesKim Alvefur2021-11-181-1/+4
| | | | | | Opportunistic writes sure do complicate things. This is especially intended to avoid opportunistic_writes from within the onpredrain callback.
* mod_csi_simple: Skip flushing of empty bufferKim Alvefur2021-11-181-0/+2
| | | | Just adds noise
* mod_csi_simple: Fire event when flushing due to client activityKim Alvefur2021-11-181-0/+2
| | | | So that the same things happen as when triggered by an outgoing stanza
* mod_admin_shell: Return counts of shown vs total from new table viewsKim Alvefur2021-11-161-4/+17
| | | | Not exactly the way it was before, but close enough and useful.
* mod_csi_simple: Detach cleanly from sessions if unloaded while flushingKim Alvefur2021-11-161-1/+1
| | | | | | Since it changes the state to "flushing" while doing just that. Attempting to remove the filters from a session that does not have them should be a safe noop.
* MUC: Actually set the new affiliation data if it was previously emptyMatthew Wild2021-11-161-0/+1
|
* mod_csi_simple: Only act in inactive mode to prevent infinite recursionKim Alvefur2021-11-161-0/+4
| | | | | Definitely should not be firing an event that triggers like csi-flushing from which it may make sense to send things, which leads right back here
* mod_csi_simple: Unlock writes after event, to allow things to be queuedKim Alvefur2021-11-161-1/+1
| | | | | | E.g. mod_smacks could queue an <r>, which would be more likely to be included in the same write and TCP segment as the previously buffered data, reducing syscalls and network packets needing to be sent.
* MUC: Include old affiliation data in affiliation change eventMatthew Wild2021-11-161-0/+1
|
* MUC: Add room:set_affiliation_data()Matthew Wild2021-11-161-0/+22
|
* MUC: Set .previous_affiliation = "none" if nil, for consistency with ↵Matthew Wild2021-11-161-1/+1
| | | | | | .affiliation It appears nothing currently uses this field in prosody or prosody-modules
* MUC: Fix incorrect variable name (thanks luacheck)Matthew Wild2021-11-161-1/+1
|
* MUC: Switch to event.allowed signaling to block event, matching muc-pre-set-roleMatthew Wild2021-11-161-1/+3
| | | | ...and fixing the logic bug that broke everything in the previous commit.
* MUC: Add 'muc-pre-set-affiliation' event, allowing to block change or modify ↵Matthew Wild2021-11-161-10/+20
| | | | data
* MUC: Add option to include form in registration queryMatthew Wild2021-11-151-3/+11
| | | | | | | | | | | | | | | | | | | This was originally not done based on my interpretation of XEP-0045. Today's reading, however, revealed that it actually says the result > SHOULD contain **at least** a <username/> element (emphasis mine) I take this to mean that including a form **is** allowed (and I think this is sensible). Tigase already includes the form I believe. I've gated the new behaviour behind a (default off) option, because it hasn't been tested for compatibility with clients. My primary desire for it is in Snikket, where the clients will be tested to ensure compatibility with this. I don't anticipate that (m)any clients would break, so maybe after 0.12 we can experiment with enabling it by default and eventually remove the option.
* mod_admin_shell: Handle absence of connection in security column (thanks ↵Kim Alvefur2021-11-151-1/+1
| | | | | | arcseconds) I surmise this can happen in a disconnected/smacks hibernation state.
* mod_pubsub: Fix traceback in disco of non-existent node (thanks Martin)Kim Alvefur2021-11-131-2/+6
| | | | | | | In this case `ret` is a table not containing the node, which makes pubsub_error_reply() try to get an error template with that `ret` table as index, which returns a `nil` then passed to table.unpack, which in turn throws the error.
* net.connect: Prefer last connection error over last resolver errorKim Alvefur2021-11-131-1/+1
| | | | | E.g. "connection refused" over one IP version instead of NoError for the other IP version.
* util.prosodyctl.shell: Bring back banner set from config!Kim Alvefur2021-11-121-0/+2
| | | | I miss my custom ANSI-colored greeting!
* net.connect: Propagate last error message from resolversKim Alvefur2021-11-123-5/+28
| | | | | | | | Previously it would only say "unable to resolve server" for all DNS problems. While "NoError in A lookup" might not make much sense to users, it should help in debugging more than the previous generic error. Friendlier errors will be future work.
* s2smanager: Fire s2s-destroyed event to mirror s2s-createdMatthew Wild2021-11-121-0/+1
| | | | | | | | | | | | The existing events do not fire for unauthed sessions, for example (because the type does not match). I deemed changing their behaviour too risky, and the current behaviour may even be more desirable for some uses. This means we now have roughly paired events: - s2s-created -> s2s-destroyed (global only) - s2sin-established -> s2sin-destroyed (global + host) - s2sout-established -> s2sout-destroyed (global + host)
* mod_c2s: Disconnect user sessions on a role change eventMatthew Wild2021-11-121-18/+16
| | | | | The overlapping logic for deletion and password changed has been merged into a single function.
* usermanager: Fire user-roles-changed event when updating roles of a local userMatthew Wild2021-11-121-1/+7
|
* util.human.io: Use UTF-8-aware length check in padding functionsKim Alvefur2021-11-121-2/+2
|
* util.human.io: Fix cutting of UTF-8 into piecesKim Alvefur2021-11-122-7/+40
| | | | Down the rabbit hole we go...
* util.human.io: Trim any broken UTF-8 from ellipsisKim Alvefur2021-11-121-1/+5
| | | | | | | This should fix basic problems with multi-byte UTF-8 sequences getting cut in the middle. Down the rabbit hole we go...
* util.human.io: Factor out ellipsis functionKim Alvefur2021-11-121-1/+6
| | | | Could be useful elsewhere
* util.human.io: Support specifying column defaults in tablesKim Alvefur2021-11-121-1/+1
|
* util.human.io: Pass nil to cell mapper to signal missing valueKim Alvefur2021-11-122-16/+22
| | | | | Seems more like conventional Lua than passing an empty string to signal lack of value.
* mod_admin_shell: Respect metatables in output serializationKim Alvefur2021-11-121-1/+7
| | | | | Makes it so that returning e.g. util.cache :table() produces useful output, which otherwise would look like empty tables.
* util.prosodyctl.shell: Allow setting custom prompt (admin_shell_prompt)Matthew Wild2021-11-111-4/+6
|
* mod_admin_shell: Specify a width for cert columnKim Alvefur2021-11-101-0/+1
| | | | Avoids ellipsis
* mod_admin_shell: Indicate bi-directional s2s connectionsKim Alvefur2021-11-101-1/+2
|
* mod_admin_shell: Allow passing columns as a string for convenienceKim Alvefur2021-11-101-0/+1
|
* mod_admin_shell: Optionally group session listings by host when not included ↵Kim Alvefur2021-11-101-3/+33
| | | | | | as column Similar to the earlier view
* mod_admin_shell: New table based implementation of c2s and s2s:show()Kim Alvefur2021-11-101-198/+245
| | | | | | Nicer and more readable. Thanks jonas’ and prosody@ for JID length stats to inform column widths.
* prosodyctl: Fix weird indentationKim Alvefur2021-11-061-2/+2
|
* doap: Bump XEP-0313 version for going StableKim Alvefur2021-11-031-1/+1
|
* mod_pubsub: Return proper errors for disco queries on nodesKim Alvefur2021-11-011-2/+4
| | | | | Previously this would return item-not-found, even when you could see the node in disco#items.
* 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-282-1/+9
| | | | | | | 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