view mod_srvinjection/README.markdown @ 4326:f6fdefc5c6ac

mod_roster_command: Fix subscription when the "user JID" is a bare domain. Do not attempt to update the roster when the user is bare domain (e.g. a component), since they don't have rosters and the attempt results in an error: $ prosodyctl mod_roster_command subscribe proxy.example.com contact@example.com xxxxxxxxxxFailed to execute command: Error: /usr/lib/prosody/core/rostermanager.lua:104: attempt to concatenate local 'username' (a nil value) stack traceback: /usr/lib/prosody/core/rostermanager.lua:104: in function 'load_roster' /usr/lib/prosody/core/rostermanager.lua:305: in function 'set_contact_pending_out' mod_roster_command.lua:44: in function 'subscribe'
author Boris Grozev <boris@jitsi.org>
date Tue, 05 Jan 2021 13:15:00 -0600
parents 4d73a1a6ba68
children
line wrap: on
line source

---
labels:
- 'Stage-Beta'
summary: Manually specify SRV records
...

Introduction
============

This Prosody plugin lets you manually override SRV records used for a
remote host.

Usage
=====

Simply add `"srvinjection"` to your `modules_enabled` list to enable.
Then add the `srvinjection` option to the global section.

Configuration
=============

The `srvinjection` option can be used as follows:

    srvinjection = {
      ["example.com"] = {"localhost", 5000};
      ["jabber.org"] = {"localhost", 5001};
    };

The format for individual items is
`["remote-hostname"] = {"srv-hostname", srv-port};`.

The special remote hostname `"*"` can be used as a wildcard:

        srvinjection = { ["*"] = {"xmpp-server.l.google.com", 5269} } -- Use Google's XMPP server for all hostnames

Reloading
=========

The module can be reloaded via the telnet console. Edit the config file
to make any updates.

You can reload the configuration from disk:

    config:reload()

And then reload the module to apply the configuration changes:

    module:reload("srvinjection", "*")

Compatibility
=============

  ----- -------
  0.8   Works
  0.7   Works
  0.6   Works
  ----- -------

How it works
============

The module replaces the `lookup` function of the `net.adns` module with
its own. The original is set back when the module is unloaded.