| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Instead of storing (start, length) tuples, store the offset to the end
of items and derive length using the previous entry.
|
|
|
|
|
|
|
|
|
| |
Iterating over an entire archive to find a few items in the far end from
where iteration started is expensive, and probably more expensive with
the lazy-loading of items added in the previous commit.
Since we can now efficiently read items in random order, we can now use
a binary search to find a better starting point for iteration.
|
|
|
|
|
|
|
|
|
|
| |
Very large list files previously ran into limits of the Lua parser, or
just caused Prosody to freeze while parsing.
Using the new index we can parse individual items one at a time. This
probably won't reduce overall CPU usage, probably the opposite, but it
will reduce the number of items in memory at once and allow collection
of items after we iterated past them.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Index file contains offsets and lengths of each item() which allows
seeking directly to each item and reading it without parsing the entire
file.
Also allows tricks like binary search, assuming items have some defined
order.
We take advantage of the 1-based indexing in tables to store a magic
header in the 0 position, so that table index 1 ends up at file index 1.
|
|
|
|
|
|
|
| |
Why was the test data not in chronological order?
Altho, maybe that was the point? Except for MAM, the data might *not* be
in chronological order!
|
|
|
|
| |
Two pairs replaced by one. Blame lua-format for the line diff delta.
|
|
|
|
|
| |
This is the config I want 90% of the time when just showing data in the
console or so.
|
|
|
|
|
|
|
| |
The initial setup can be tricky if you don't know what and were settings
should be added.
This should maybe also go into site/doc/contributing
|
|
|
|
|
| |
Some useful settings that might benefit new contributors and get them up
to speed with Modern Mercurialâ„¢ faster :)
|
|
|
|
| |
Reminder to update the configuration if the change is to be permanent.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Supporting both methods at the same time may open to spoofing attacks,
whereby a client sends a Forwarded header that is not stripped by a
reverse proxy, leading Prosody to use that instead of the X-Forwarded-*
headers actually sent by the proxy.
By only supporting one at a time, it can be configured to match what the
proxy uses.
Disabled by default since implementations are sparse and X-Forwarded-*
are everywhere.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prefer over X-Forwarded-* since it has an actual specification.
Main practical difference is that Forwarded may carry more properties
than only the IP address since it is a structured header.
Since we parse it into an array, it is easier to do the logical thing
and iterate backwards trough proxies until an untrusted one is
encountered. Compare the handling of X-Forwarded-For.
The 'secure' field now accounts for the full chain of proxies, which
must be secure all the way to be considered secure.
|
|
|
|
|
|
| |
There are hints that this format might be used in X-Forwarded-For as
well, so best handle it everywhere. Strips both brackets and optional
port number.
|
|
|
|
|
|
|
|
| |
Standardized and structured replacement for the X-Forwarded-For,
X-Forwarded-Proto set of headers.
Notably, this allows per-hop protocol information, unlike
X-Forwarded-Proto which is always a single value for some reason.
|
|
|
|
| |
Backs out 895a82c5d8d4 beacuse __freeze already added in a96a2fbcc6c0
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Where gethostname or tohostname returns an invalid name, e.g. containing
underscores or something, to_ascii would reject this and return nil,
which triggers an error in the dns lookup.
Reported by prova2 in the chat, for whom tohostname returned a long name
containing underscores.
|
| |
| |
| |
| |
| | |
Useful to have this info available when juggling metrics, e.g. to
see if things changed between versions.
|
| |
| |
| |
| | |
Module was removed in 0.8.0 in c52b06de9b27
|
| |
| |
| |
| | |
Eases locating the request in logs
|
| | |
|
| |
| |
| |
| |
| | |
Further isolates LuaSec from Prosody core, with the ultimate goal of
allowing LuaSec to be replaced more easily.
|
| |
| |
| |
| |
| | |
Further isolates LuaSec from Prosody core, with the ultimate goal of
allowing LuaSec to be replaced more easily.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Rationale: See diffstat
When this module is imported, it ends up calling stty via term_width()
in util.human.io.table(). When this happens outside of a terminal, the
following message is sent to stdout:
stty: 'standard input': Inappropriate ioctl for device
Not importing this module avoids that.
Furthermore three is value in this module having minimal dependencies as
they might not be available when it does the checks.
Ref a1fed82c44b9
|
| | |
|
| |
| |
| |
| |
| | |
Previously the kvsep before and after the kvpairs would have been
included in kvpairs, which is incorrect but should be harmless.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Could be used to implement custom connection methods (c.f. mod_onions)
without needing to duplicate the rest of route_to_new_session().
Adds a feature to enable detection since it can be difficult to detect
support for an event otherwise.
|
| |
| |
| |
| |
| | |
It is not part of the "real" module API, but used in various places.
Extending the API seems hard to describe in a type-safe way.
|
| |
| |
| |
| | |
To help with configuring reverse proxies.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This could be of help when configuring reverse proxies, as it is the
internal URL the proxy must point at.
Argument treated as an enum "internal" "external"(default) to allow for
future extensibility.
|
| |
| |
| |
| | |
A test case was added in the middle, so all these need to be reordered.
|
| |
| |
| |
| |
| | |
Mirroring debug:events("http"), and to replace the "Firing event: GET /"
log lines in net.http.server
|
| |
| |
| |
| | |
Missing feature. It should behave like debug:events()
|
| |
| |
| |
| |
| |
| |
| |
| | |
Since these are noisy and we have the thing in util.helpers to log
events fired.
The new status line events are meant to replace these as they include
more useful info.
|
| |
| |
| |
| | |
Points out the beginning and end of a request.
|
| | |
|
| |
| |
| |
| |
| | |
Goal is improve tracking of individual HTTP requests throughout its
life-cycle. Having a single ID to use in logging should help here.
|
| |
| |
| |
| |
| |
| | |
If a grant does not have a role, we should not go and make one up.
While not very useful for XMPP if you can't even login, it may be useful
for OAuth2/OIDC.
|
| |
| |
| |
| |
| | |
Such a session triggers errors in module:may or other places since it is
generally expected that a session must have a role.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since throwing a pile of 'access denied', even at debug level, seems
akin to calling wolf :)
Cutting down on debug noise is also good.
Passing a flag instead of using module:could seemed easier here.
|
| |
| |
| |
| | |
Caused by roles changing from table|nil to always table in c2616274bef7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Closing the session invokes ondisconnect and session close logic,
including mod_smacks hibernation and the timer that destroys the session
after a timeout.
By closing the connection after it has been detached from the sessions
table it will no longer invoke the ondetach handler, which should
prevent the above problem.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The (still not published) XEP-xxxx: Stream Limits Advertisement uses the
element <max-bytes/> to advertise the maximum octet size of top level
stream elements. "size" was probably a leftover of an even earlier
version of the (Proto)XEP.
|
|\| |
|
| |
| |
| |
| | |
This timer shouldn't kick in in the middle of active mode.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Removes some dead code and hopefully simplifies a bit.
There's a tree of possibilities with the two tri-state status
properties, something like
chain:
* nil -- cert validation disabled?
* invalid -- something wrong with the chain (including ee cert)
* valid -- chain ok
cert:
* nil -- incomplete validation??
* invalid -- mismatched names or such
* valid -- all good!
|
| | |
|