aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_csi_simple.lua
Commit message (Collapse)AuthorAgeFilesLines
* plugins: Switch to :get_option_period() for time range optionsKim Alvefur2023-07-161-1/+1
| | | | Improves readability ("1 day" vs 86400) and centralizes validation.
* Merge 0.12->trunkKim Alvefur2023-05-011-0/+8
|\
| * mod_csi_simple: Disable revert-to-inactive timer when going to active modeKim Alvefur2023-05-011-0/+4
| | | | | | | | This timer shouldn't kick in in the middle of active mode.
| * mod_csi_simple: Clear delayed active mode timer on disableKim Alvefur2023-05-011-0/+4
| | | | | | | | | | | | It should not be there afterwards. Noticed that it seems to fire some time after resumption claiming that the queue size is nil, implying that it may hold a reference to an expired session somehow.
* | plugins: Prefix module imports with prosody namespaceKim Alvefur2023-03-241-6/+6
| |
* | mod_csi_simple: Collect stats on number of stanzas per flushKim Alvefur2022-06-141-0/+5
|/ | | | Because interesting, gives some idea about the efficiency.
* plugins: Update for namespace bump in XEP-0353 v0.4.0Kim Alvefur2022-01-111-1/+1
|
* 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.
* 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_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.
* 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.
* mod_csi_simple: Provide custom set of timing bucketsKim Alvefur2021-10-051-1/+2
| | | | | | The default of 0.001..100.0 did not feel suitable here. This might be better. Longer is better and hold times less than a few seconds is generally undesirable.
* mod_csi_simple: convert to use new metric interface for flush reasonsJonas Schäfer2021-05-201-10/+7
|
* mod_csi_simple: s/algoritm/algorithm/ [codespell]Kim Alvefur2021-03-051-1/+1
|
* mod_csi_simple: Add command to test importance algorithm on stream of stanzasKim Alvefur2021-02-231-0/+32
| | | | This won't include behavior provided by extra modules tho.
* mod_csi_simple: Fire event when flushing queueKim Alvefur2021-02-161-0/+1
| | | | | To let other plugins know and take some action, e.g. flushing other buffers or whatnot.
* mod_csi_simple: Set session state to 'flushing' while doing soKim Alvefur2021-02-161-1/+3
| | | | May be useful for 3rd party modules.
* mod_csi_simple,mod_carbons,mod_mam: Update comment about XEP-0353Kim Alvefur2021-01-081-1/+1
| | | | It went back to Deferred
* mod_csi_simple: Report whatever's not a stirng and not a stanzaKim Alvefur2020-05-101-1/+2
| | | | | | | | | | This is either dead code or actually a type error, but catching that should be the responsibility of the session.send function. This type check is left since everything after it assumes a stanza object. These last few commits aren't meant to change any behavior and it did mark things not stanzas as important, but those would have been mostly raw strings which are now specially handled.
* mod_csi_simple: Report whitespace keepalivesKim Alvefur2020-05-101-2/+3
| | | | | | | Single space character is sent by mod_c2s when a session has been silent for some time. This should account for the vast majority of raw strings passing through here. If this is not the case then having stats to say otherwise will be interesting.
* mod_csi_simple: Identify raw string data in logging and statsKim Alvefur2020-05-101-1/+3
|
* mod_csi_simple: Collect stats on flush reasonsKim Alvefur2020-05-091-0/+11
|
* mod_csi_simple: Record stats of how long buffers are heldKim Alvefur2020-05-091-0/+16
| | | | Telnet command `stats:show("buffer_hold"):histogram()` looks nice!
* mod_csi_simple: Change debug message of client-triggered flush for coherenceKim Alvefur2020-05-091-1/+1
| | | | It now matches other the other source of flush reason logging.
* mod_csi_simple: Reset queue counter to zero when enablingKim Alvefur2020-05-091-0/+1
| | | | For symmetry.
* mod_csi_simple: Forget queue counter when disabling optimizationsKim Alvefur2020-05-091-0/+1
| | | | Otherwise it might not start from zero when enabled again.
* mod_csi_simple: Fix flushing when client sent somethingKim Alvefur2020-05-091-5/+0
| | | | | | Forgot to unset the flag afterwards, so it would only work once. The flag is not even needed, it works as intended without it.
* mod_csi_simple: Fix treating presence errors as presence updatesKim Alvefur2020-05-091-1/+1
| | | | Autocomplete fail probably.
* mod_csi_simple: Add comment highlighting that XEP-0353 is experimentalKim Alvefur2020-05-091-0/+1
| | | | | | To make it easier to find implemented Experimental XEPs later. Also at the time of this commit it has been Proposed as mentinoed in the comment but hopefully that will be resolved soon.
* mod_csi_simple: Fix unintentional order of rules from mergeKim Alvefur2020-05-091-3/+3
|
* Merge 0.11->trunkKim Alvefur2020-05-091-0/+3
|\
| * mod_csi_simple: Consider XEP-0353: Jingle Message Initiation importantKim Alvefur2020-05-081-0/+3
| | | | | | | | | | | | Improves experience with VoIP calls initiated via JMI Closes #1548
* | mod_csi_simple: Log reasons for not flushingKim Alvefur2020-05-071-0/+1
| |
* | mod_csi_simple: Add short reasons to reportKim Alvefur2020-05-071-10/+14
| | | | | | | | Should improve quality of debug logs
* | mod_csi_simple: Refactor to allow logging reason for buffer flushKim Alvefur2020-05-071-7/+19
| | | | | | | | | | | | Same style as mod_mam and mod_carbons allows easy comparison. BC: Log format changes
* | mod_csi_simple: Don't consider presence errors as importantKim Alvefur2020-05-051-4/+5
| | | | | | | | | | | | | | | | | | | | A large share of `<presence type=error>` appears to be noise from large public channels and failed presence probes. The later at least should count as presence updates, which are currently considered unimportant. See also 8cecb85e4bc4 which is partly reverted here. The intent there was probably mostly about message (delivery) errors, which should be considered important.
* | mod_csi_simple: Explicitly mention iq stanzasKim Alvefur2020-04-261-1/+2
| | | | | | | | | | Should be more obvious that all iq stanzas are considered important. Changes behavior for invalid things in the default namespace.
* | mod_csi_simple: Clarify what might not be stanzas hereKim Alvefur2020-04-261-0/+1
| |
* | mod_csi_simple: Consider nonzas importantKim Alvefur2020-04-261-0/+4
| | | | | | | | | | This case was previously handled by fall-trough at the end of the function.
* | mod_csi_simple: Explicitly consider errors importantKim Alvefur2020-04-261-0/+3
| | | | | | | | This was already the case for presence and iq stanzas but not messages.
* | mod_csi_simple: Consider MUC invites importantKim Alvefur2020-04-181-0/+3
| | | | | | | | | | Both mediated invites defined by XEP-0045: Multi-User Chat and direct invites defined by XEP-0249: Direct MUC Invitations
* | mod_csi_simple: Allow configuring extra tags indicating importanceKim Alvefur2020-04-181-1/+8
| |
* | mod_csi_simple: Make sure to disable optimizations before mod_smacks (thanks ↵Kim Alvefur2019-11-171-1/+1
| | | | | | | | pep.)
* | mod_csi_simple: Always remove session filters when disabling CSIKim Alvefur2019-10-051-3/+3
| | | | | | | | | | | | Only guard the actual pausing of outgoing data on the method existing. This prevents the filters from lingering in case something happened to the connection. Removing already removed filters should be a safe noop.
* | mod_csi_simple: Try not to flush buffer while already flushing itKim Alvefur2019-10-051-0/+5
| | | | | | | | Reduces log noice
* | mod_csi_simple: Remove duplicated check for connectionKim Alvefur2019-09-281-3/+3
| |