aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mod_admin_socket: Use wrapserver if availableKim Alvefur2020-06-011-1/+5
| | | | | Why have a custom accept function when this is net.server's entire thing?
* net.server_epoll: Add way to start accepting clients on an arbitrary server ↵Kim Alvefur2020-06-011-4/+9
| | | | | | socket This adds an escape hatch where things like UNIX sockets can be added.
* mod_admin_shell: Remove extra newline at end of help textMatthew Wild2020-06-011-1/+0
|
* mod_admin_shell, mod_admin_telnet, util.prosodyctl.shell: Separate output ↵Matthew Wild2020-06-013-17/+25
| | | | | | from final result Fixes the client pausing for input after output from commands.
* prosodyctl, util.prosodyctl.shell: `prosodyctl shell` - a client to access ↵Matthew Wild2020-06-012-0/+129
| | | | the prosodyctl admin shell
* mod_admin_telnet: Become a front for mod_admin_shellMatthew Wild2020-06-011-1588/+35
|
* mod_admin_shell: New module that implements the console interface over an ↵Matthew Wild2020-06-011-0/+1637
| | | | admin socket
* mod_admin_socket, util.adminstream: New module to manage a local unix domain ↵Matthew Wild2020-06-012-0/+354
| | | | socket for admin functionality
* net.server_epoll: Handle missing ports from getsock/peername (as in the case ↵Matthew Wild2020-06-011-2/+2
| | | | of unix sockets)
* net.server: Switch to epoll backend by defaultMatthew Wild2020-06-011-1/+5
| | | | (if util.poll is found)
* net.server_select: Pass conn/handler to readbuffer/sendbufferMatthew Wild2020-06-011-4/+4
| | | | | | The internal implementations don't use it, but this causes onreadable and onwritable of watchfd to receive the conn as they do in other backends.
* net.server_select: Ensure onconnect is always called before onincomingMatthew Wild2020-06-011-9/+18
| | | | | | | | | This changes the code to call onconnect when the first data is sucessfully read or written, instead of simply when the socket first becomes writable. A writable socket can mean a connection error, and if the client already sent some data it may get passed to onincoming before processing writable sockets. This fixes the issue.
* mod_c2s,mod_s2s: Make stanza size limits configurableKim Alvefur2020-05-312-2/+4
|
* mod_c2s,mod_s2s: Use a distinct stream error for hitting stanza size limitKim Alvefur2020-05-312-2/+10
| | | | Since this is not a real parse error, it should not be reported as such.
* scansion: Add test for mod_server_contact_info / XEP-0157Kim Alvefur2020-05-272-1/+63
|
* net.server_epoll: Fix typo in internal method nameKim Alvefur2020-05-221-5/+5
|
* net.server_epoll: Log some noise before TLS handshake stepKim Alvefur2020-05-221-0/+1
| | | | | This would help pinpoint if a crash happens during the handshake, which has occurred a few times, e.g. like https://github.com/brunoos/luasec/issues/75
* mod_admin_telnet: Update existing sessions on reloadKim Alvefur2020-05-161-0/+14
| | | | | This removes the need to disconnect and reconnect to the telnet console for changes to take effect.
* Merge 0.11->trunkKim Alvefur2020-05-151-2/+4
|\
| * mod_storage_internal: Fix error in time limited queries on items without ↵Kim Alvefur2020-05-151-2/+4
| | | | | | | | 'when' field, fixes #1557
* | mod_storage_internal: Fix keeping old timestamp in archive map APIKim Alvefur2020-05-152-4/+15
| | | | | | | | | | This led to a missing 'when' field on changed items, which would cause a traceack.
* | mod_http: Tell luacheck to ignore the long comment linesKim Alvefur2020-05-141-0/+1
| |
* | mod_http: Add documentation to the non-obvious logic of get_ip_from_requestJonas Schäfer2020-05-141-0/+7
| | | | | | | | Because docs are good.
* | mod_storage_memory: Add map store methods to archive storeKim Alvefur2020-05-111-0/+31
| |
* | doc/storage: Add archive store map-like APIKim Alvefur2020-05-111-0/+4
| |
* | mod_storage_internal: Implement key-value APIKim Alvefur2020-05-112-0/+55
| |
* | spec/storage: Reset build context of test stanza make comparisons easierKim Alvefur2020-05-111-1/+2
| | | | | | | | | | | | | | While building a stanza there's a .last_add field keeping track of where in the XML tree tags are being added. This field does not survive a roundtrip through preserialize / deserialize. :reset() removes this, which simplifes comparisons after such a roundtrip.
* | Merge 0.11->trunkKim Alvefur2020-05-111-1/+1
|\|
| * mod_muc_mam: Remove spoofed archive IDs before archiving, fix #1552Kim Alvefur2020-05-111-1/+1
| | | | | | | | | | | | | | | | | | The stanza-id added during archiving looks exactly like what should be stripped, so the stripping must happen before archiving. Getting priorities right is hard! Also no test coverage yet.
* | 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
| |
* | mod_mam: Archive XEP-0353: Jingle Message InitiationKim Alvefur2020-05-092-1/+5
| |
* | mod_carbons: Explicitly carbon XEP-0353: Jingle Message InitiationKim Alvefur2020-05-092-1/+6
| |
* | doap: Add XEP-0353 since mod_csi_simple is aware of itKim Alvefur2020-05-091-0/+8
| |
* | mod_carbons: Describe return types in a commentKim Alvefur2020-05-091-1/+1
| | | | | | | | For similarity with mod_mam, mod_csi_simple
* | Merge 0.11->trunkKim Alvefur2020-05-092-1/+5
|\|
| * 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_muc_mam: Fix missing advertising of XEP-0359, fixes #1547Kim Alvefur2020-05-081-0/+1
| |
| * mod_muc_mam: Fix stanza id filter event name, fixes #1546Kim Alvefur2020-04-291-1/+1
| | | | | | | | Nice typo
* | mod_presence: Send unavailable presence in current thread runKim Alvefur2020-05-091-1/+2
| | | | | | | | | | | | | | | | | | | | | | `session:dispatch_stanza(pres)` enqueues processing of the stanza in the sessions async thread, but becasue the entire stream close handling is now in that thread it would process the presence after the stream and session was completely closed, leading to weird errors "sent to a resting session". We call core_process_stanza() since this is what :dispatch_stanza calls in the end.