annotate mod_compat_bind/mod_compat_bind.lua @ 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 73fbfd1e820b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
748
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 -- Compatibility with clients that set 'to' on resource bind requests
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 --
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 -- http://xmpp.org/rfcs/rfc3920.html#bind
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 -- http://xmpp.org/rfcs/rfc6120.html#bind-servergen-success
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 local st = require "util.stanza";
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 module:hook("iq/host/urn:ietf:params:xml:ns:xmpp-bind:bind", function(event)
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 local fixed_stanza = st.clone(event.stanza);
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 fixed_stanza.attr.to = nil;
2322
73fbfd1e820b mod_compat_bind: Use non-deprecated way to access core_process_stanza (thanks Roi)
Kim Alvefur <zash@zash.se>
parents: 748
diff changeset
11 prosody.core_process_stanza(event.origin, fixed_stanza);
748
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 return true;
f25b6a9f97bb mod_compat_bind: Compatibility (ugh) with clients that send the resource bind to the login host (ugh)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 end);