aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_csi_simple.lua
Commit message (Collapse)AuthorAgeFilesLines
* 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
| |
* | mod_csi_simple: Disable optimizations on disconnect (fixes #1358)Kim Alvefur2019-05-261-0/+4
| | | | | | | | | | The connection becomes invalid here, regardless of 3rd party modules that might keep the session alive.
* | mod_csi_simple: Include queue size in debug messagesKim Alvefur2019-03-251-5/+5
| |
* | mod_csi_simple: Fix type in function nameMatthew Wild2019-03-251-4/+3
| |
* | mod_csi_simple: Improve debug logs by mentioing why the buffer gets flushedKim Alvefur2019-03-241-1/+5
| |
* | mod_csi_simple: Add some debug loggingKim Alvefur2019-03-241-0/+2
| |
* | mod_csi_simple: Disable optimizations on unload and re-enable on loadKim Alvefur2019-03-241-0/+21
| |
* | mod_csi_simple: Separate out functions to enable/disable optimizationsKim Alvefur2019-03-241-5/+13
| | | | | | | | | | This allows reusing this logic outside the events. Letting the functions be module globals makes it easier to access from eg the telnet console.
* | mod_csi_simple: Remove old "pump" queue/buffer method, handled in net.server nowKim Alvefur2019-03-241-61/+2
| |
* | mod_csi_simple: Also flush buffer in "pump" modeKim Alvefur2019-03-241-0/+7
| |
* | mod_csi_simple: Trigger buffer flush on seeing incoming dataKim Alvefur2019-03-241-0/+7
| | | | | | | | | | I.e. the client sent us something, which means its network / radio is active.
* | mod_csi_simple: Count buffered items and flush when it reaches configured limitKim Alvefur2019-03-241-0/+22
| | | | | | | | | | In this mode, stanzas have been serialized to strings in the internal net.server buffer, so it is difficult to count them after the fact.