| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
One more magic character consumed!
|
|
|
|
|
| |
Daemonizing later means we can use that as a "successful startup"
signal and problems can be reported via exit code.
|
| |
|
| |
|
|
|
|
|
|
| |
Hook signature:
ret = debug_hook(handler, event_name, event_data)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Behavior with turning empty name into localpart was originally introduced
in 711eb5bf94b4
This has caused some problems for clients, making it difficult to
differentiate between a room actually named like the localpart from a
room without a name.
Breaking:
The function signature of the :get_name() method changes from always
returning a string to optional string.
|
|
|
|
|
|
|
|
|
|
|
|
| |
From XEP-0106 §2. Requirements:
> in certain circumstances, the escaping character itself ("\") might
> also be escaped
Later in §4.2 Address Transformation Algorithm it is stated that the
backslash would only be escaped if it forms an escape sequence. Thus
'\foo' is unaltered but '\20' must be escaped into '\5c20'.
Thanks to lovetox and jonas’ for brining up.
|
| |
|
|
|
|
| |
Lets you set up source and registry once per module
|
| |
|
| |
|
| |
|
|
|
|
| |
This allows extra debug info to be provided for development purposes.
|
|
|
|
|
|
|
| |
Promise mode is not (widely?) used, changing this now while we can, as it
improves usability of the API.
The request is now available as response.request, if needed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
User switching has been done by prosodyctl or init scripts for a very
long time now, so this is not needed.
Using this would not have worked with module reloading (e.g. to reload
certificates) since ports are closed and re-bound, which would then not
be allowed.
Today there exists better ways to grant low ports, i.e. capabilities(7)
<Zash> Why do we have this?
<MattJ> Remove it
|
|
|
|
|
|
|
|
|
| |
An earlier theory involved the bug being related to collapsing multiple
items, so it exercised that too.
Also correct the comment, it referred to the space in "hello world" in
an earlier version before the test string was changed to "foobar", which
was what was tested in a REPL
|
|
|
|
|
|
| |
Zash for test case)
This also appears to fix some bugs with chunk-encoded streams in net.http.parser.
|
| |
|
|
|
|
|
|
| |
The `socket` here is unreferenced on disconnect. Calling :resume_writes
after that causes an error when `addsocket()` tries to use it as a table
index.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
While writing developer documentation it became obvious that i was silly
to have one item format for config and items API, and another format for
the event API.
Then there's the stanza format, but that's a common pattern.
This change reduces the possible input formats to two and allows other
modules the benefit of the processing and validation performed on items
from the config.
|
|
|
|
|
| |
This is especially targeted at services added via the items API. More
involved credential generation should use the event hook.
|
|
|
|
|
|
| |
Not sure what algorithms might fit here. Separation makes some sense.
This is also a preparation for having a callback. (See next commit)
|
| |
|
| |
|
|
|
|
| |
This might be something to write a XEP about.
|
|
|
|
|
|
|
|
|
| |
The wait, service-unavailable is overloaded by XEP-0045 to mean that the
room has reached the maximum number of users. See #1495.
Bouncing errors for components is tricky since there is no way to tell
that it comes from the server hosting the component, not from the other
end of the component connection.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Probably due to a rebase/merge with a merge tool that ignores
whitespace. Happens all the time to me :(
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The stanza API does not accept number values and threw an error due to
the height and width attributes of the media element (XEP-0221).
This part had no test coverage previously, explaining why it was not
discovered until now.
|
|
|
|
| |
objects
|
|
|
|
|
| |
Otherwise it would use the configured buffer size, or previously '*a'.
Using the read size set by the listener seems more sensible.
|
|
|
|
|
| |
Otherwise the '*a' read mode applies, which under certain circumstances
can read infinite amounts of data into memory.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes #726
API:
module:provides("http", {
streaming_uploads = true;
route = {
PUT = function (event)
event.request.body_sink = io.tmpfile();
return true;
end
}
})
|
|
|
|
|
|
|
| |
This enables uses such as saving uploaded files directly to a file on
disk or streaming parsing of payloads.
See #726
|
|
|
|
|
|
| |
This is primarily a step towards saving uploads directly to files, tho
this should hopefully be more efficient than collapsing the entire
buffer to a single string every now and then.
|
|\ |
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a new API that should be used in preference to http.destroy_request()
when possible, as it ensures the callback is always called (with an error of
course).
APIs that have edge-cases where they don't call callbacks have, from experience,
shown to be difficult to work with and often lead to unintentional leaks when
the callback was expected to free up certain resources.
|
| |
| |
| |
| |
| | |
This was accidentally turned private in 647adfd8f738 as part of refactoring
for Lua 5.2+.
|
| |
| |
| |
| |
| |
| | |
It's confusingly quiet otherwise, even with maximum verboseness.
Thanks perflyst
|
| |
| |
| |
| |
| | |
Spammers are a big hassle, hopefully this will make admins aware of them sooner
than when they’ve already spammed a bunch.
|