This also fixes the bug causing disco features being added to every disco reply for every host.
\r
local discomanager_handle = require "core.discomanager".handle;\r
\r
-require "core.discomanager".set("disco", "http://jabber.org/protocol/disco#info");\r
-require "core.discomanager".set("disco", "http://jabber.org/protocol/disco#items");\r
+module:add_feature("http://jabber.org/protocol/disco#info");\r
+module:add_feature("http://jabber.org/protocol/disco#items");\r
\r
module:add_iq_handler({"c2s", "s2sin"}, "http://jabber.org/protocol/disco#info", function (session, stanza)\r
session.send(discomanager_handle(stanza));\r
local st = require "util.stanza";
local t_concat = table.concat;
-require "core.discomanager".set("legacyauth", "jabber:iq:auth");
+module:add_feature("jabber:iq:auth");
module:add_iq_handler("c2s_unauthed", "jabber:iq:auth",
function (session, stanza)
\r
local st = require "util.stanza";\r
\r
-require "core.discomanager".set("ping", "urn:xmpp:ping");\r
+module:add_feature("urn:xmpp:ping");\r
\r
module:add_iq_handler({"c2s", "s2sin"}, "urn:xmpp:ping",\r
function(session, stanza)\r
local jid_split = require "util.jid".split;
local datamanager = require "util.datamanager"
-require "core.discomanager".set("private", "jabber:iq:private");
+module:add_feature("jabber:iq:private");
module:add_iq_handler("c2s", "jabber:iq:private",
function (session, stanza)
local usermanager_create_user = require "core.usermanager".create_user;
local datamanager_store = require "util.datamanager".store;
-require "core.discomanager".set("register", "jabber:iq:register");
+module:add_feature("jabber:iq:register");
module:add_iq_handler("c2s", "jabber:iq:register", function (session, stanza)
if stanza.tags[1].name == "query" then
local rm_add_to_roster = require "core.rostermanager".add_to_roster;
local rm_roster_push = require "core.rostermanager".roster_push;
-require "core.discomanager".set("roster", "jabber:iq:roster");
+module:add_feature("jabber:iq:roster");
module:add_iq_handler("c2s", "jabber:iq:roster",
function (session, stanza)
\r
-- XEP-0202: Entity Time\r
\r
-require "core.discomanager".set("time", "urn:xmpp:time");\r
+module:add_feature("urn:xmpp:time");\r
\r
module:add_iq_handler({"c2s", "s2sin"}, "urn:xmpp:time",\r
function(session, stanza)\r
\r
-- XEP-0090: Entity Time (deprecated)\r
\r
-require "core.discomanager".set("time", "jabber:iq:time");\r
+module:add_feature("jabber:iq:time");\r
\r
module:add_iq_handler({"c2s", "s2sin"}, "jabber:iq:time",\r
function(session, stanza)\r
\r
local start_time = os.time();\r
\r
-require "core.discomanager".set("uptime", "jabber:iq:last");\r
+module:add_feature("jabber:iq:last");\r
\r
module:add_iq_handler({"c2s", "s2sin"}, "jabber:iq:last", \r
function (origin, stanza)\r
require "util.jid"
local jid_split = jid.split;
-require "core.discomanager".set("vcard", "vcard-temp");
+module:add_feature("vcard-temp");
module:add_iq_handler({"c2s", "s2sin"}, "vcard-temp",
function (session, stanza)
local xmlns_version = "jabber:iq:version"
-require "core.discomanager".set("version", xmlns_version);
+module:add_feature(xmlns_version);
local function handle_version_request(session, stanza)
if stanza.attr.type == "get" then