| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Many thanks to Thilo Molitor and Kim Alvefur for their work on this module
while it was in the community repository. It has been stable for some time, is
widely used, and provides a feature that is important to most deployments.
|
|
|
|
|
|
|
|
|
|
|
| |
This allows Prosody to easily provide friendly invitation links, even without
setting up mod_invites_page (which is a community module). Admins can
configure it to use a third-party deployment such as https://xmpp.link or they
can deploy their own based on
https://github.com/modernxmpp/easy-xmpp-invitation
Alternatively they can just install mod_invites_page and this will all be
handled automatically by that.
|
|
|
|
|
|
| |
The word 'error' anywhere, especially in harmless debug messages, are
too often interpreted as fatal errors my some users, so best avoid that
word. These look too scary as it is, being tracebacks.
|
| |
|
| |
|
|
|
|
|
|
|
| |
The field `_provided_by` comes from module:provides(), but these items
comes from moduel:add_item(), which include the originating module as a
'source' field of the event. However, this is absent when items are
retrieved at a later time than the initial event.
|
|
|
|
| |
This produced a *lot* of noise, especially listing items.
|
|
|
|
|
|
|
| |
Ensures that nodes that one does not have metadata access to are hidden
from view.
This follows from the new ACL-aware method added in 3b357ab6b6eb.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
client
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to continue sending/receiving on the session, for example if
the promise will be resolved by other data that the client is going to send.
Specifically, this allows the repl-request-input to work without a deadlock.
It does open the door to interleaved commands/results, which may not be a good
thing overall, but can be restricted separately if necessary (e.g. a flag on
the session).
|
|
|
|
|
| |
It's common for modules to depend on mod_cron, and this can lead to it loading
inside prosodyctl, where we don't really want to run any cron tasks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes an issue where e.g. remote users or even other users on the server
were unable to list MUC rooms.
We want to define a permission to list MUC rooms, but we want it to be
available to everyone by default (the traditional behaviour).
prosody:guest is the lowest role we have. I ran a quick check and it isn't
really used for anything right now that would be concerning.
It was originally designed for anonymous logins. I think it's safe to treat
remote JIDs as equivalent, since we have no trust relationship with anonymous
users either.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This will be useful for server operators to easily identify flagged accounts,
etc.
|
| |
|
|
|
|
|
|
|
| |
Looks like I forgot to update these when merging the channel binding
changes after the great renamening.
Ref #1223
|
|
|
|
|
|
| |
Seems to be hard to break old habits?
Ref #1223
|
| |
|
|
|
|
|
| |
This is the Right Thing and should fix various potential issues and race
conditions.
|
|
|
|
|
|
|
|
|
| |
This allows certain session-specific code that needs to run in the async
context, but is itself triggered outside of that context (e.g. timers), to
be queued.
An example of this is the session destruction code of mod_smacks, when the
hibernation timeout is reached.
|
| |
|
|
|
|
|
| |
This shouldn't be possible, but seems to happen anyway after net.server
somehow calling the close handler twice, which also should not happen.
|
|
|
|
|
|
|
|
|
| |
Attributes are strings. That definitely is a number. So we
tostring() it. This is important when the API becomes stricter,
for whatever reason that might happen.
Practically, this moves the overhead of converting to a string
to a place where it is visible.
|
|
|
|
| |
Hopefully less confusing than "Module loaded onto 0 hosts"
|
|
|
|
| |
Meant to improve clarity and make improving easier
|
|\ |
|
| |
| |
| |
| |
| | |
This avoids doing performing unnecessary work in the case of visitors joining
a MUC, no functionality changes are intended.
|
| |
| |
| |
| |
| | |
Some confusion happened in 42b98ee73ca8, possibly because .count()
returns the items?
|
| |
| |
| |
| |
| |
| |
| | |
This clone call was lost in 902d25cd0557
Affects e.g. presence broadcasts, where the same stanza is sent many
times while mutating the 'to' attribute.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This queue is used to buffer stanzas while waiting for an outgoing s2s
connection to be established.
Limit it to prevent excessive memory usage.
Default chosen to approximate how many average stanzas fits in the
server_epoll default max_send_buffer_size of 32 MiB
Returns a custom error instead of the default core.stanza_router
"Communication with remote domains is not enabled" from is sent back,
which does not describe what is happening here.
Closes #1106
|
| |
| |
| |
| |
| | |
Reduces duplication and need to edit in two places when adding another
metadata field.
|
| |
| |
| |
| |
| | |
No longer bypasses access control to retrieve this config subset, which
is also explicitly named in the service config now.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously the error messages said that it failed to "publish" to PEP, but
sometimes a sync involves removing items, which can be confusing.
The log was also the same for both legacy PEP and private XML bookmarks.
Having different log messages makes it easier to debug the cause and location
of any sync errors.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It appears that when:
1) The user has no bookmarks 2 node in PEP
2) The client publishes an empty bookmark set to a legacy bookmarks location
3) mod_bookmarks will attempt to purge items from the non-existent node and
log an error about the failure (item-not-found).
This new code will suppress an item-not-found error from the purge operation
in the empty-bookmarks case, and adds a log message for any other error (this
is helpful because the existing log message confusingly says it was an error
*publishing* to the node, which isn't always accurate).
|
| |
| |
| |
| | |
No, that wasn't running in a thread, but in a next tick timer.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prevents ASYNC-01 due to storage interactions in a timer.
Also considered modifying mod_c2s to allow passing arbitrary closures
into its runner thread but this seems like a big step away from the
current code for just this module.
Also considered creating a dedicated runner in mod_smacks, but ensuring
continuity across module reloads might be tricky.
We could further improve this in the next major version.
|
| |
| |
| |
| | |
The three-argument version seems to be a left-over from 0.12
|
| |
| |
| |
| |
| | |
Roles for JIDs outside the current host are derived from configuration
only with this module.
|
| |
| |
| |
| | |
mod_authz_internal does not support this
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Removes dependency on util.error from util.pubsub which was only used
for this one special case.
Line count reduction!
Would be even nicer if templating could be done by util.error itself.
|