aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/adns.lua2
-rw-r--r--net/server.lua4
-rw-r--r--plugins/mod_saslauth.lua5
-rwxr-xr-xprosody9
-rw-r--r--util/logger.lua17
5 files changed, 31 insertions, 6 deletions
diff --git a/net/adns.lua b/net/adns.lua
index 200784aa..cb784d40 100644
--- a/net/adns.lua
+++ b/net/adns.lua
@@ -29,7 +29,7 @@ function new_async_socket(sock)
newconn.handler, newconn._socket = server.wrapclient(sock, "dns", 53, listener);
newconn.handler.settimeout = function () end
newconn.handler.setsockname = function (_, ...) return sock:setsockname(...); end
- newconn.handler.setpeername = function (_, ...) return sock:setpeername(...); end
+ newconn.handler.setpeername = function (_, ...) local ret = sock:setpeername(...); _.setsend(sock.send); return ret; end
newconn.handler.connect = function (_, ...) return sock:connect(...) end
newconn.handler.send = function (_, data) return _.write(data) end
return newconn.handler;
diff --git a/net/server.lua b/net/server.lua
index 361c5949..891d32db 100644
--- a/net/server.lua
+++ b/net/server.lua
@@ -386,6 +386,10 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport
pattern = new or pattern
return pattern
end
+ handler.setsend = function ( newsend )
+ send = newsend or send
+ return send
+ end
handler.bufferlen = function( readlen, sendlen )
maxsendlen = sendlen or maxsendlen
maxreadlen = readlen or maxreadlen
diff --git a/plugins/mod_saslauth.lua b/plugins/mod_saslauth.lua
index ed19a150..4804607b 100644
--- a/plugins/mod_saslauth.lua
+++ b/plugins/mod_saslauth.lua
@@ -17,6 +17,7 @@ local t_concat, t_insert = table.concat, table.insert;
local tostring = tostring;
local jid_split = require "util.jid".split
local md5 = require "util.hashes".md5;
+local config = require "core.configmanager";
local log = require "util.logger".init("mod_saslauth");
@@ -106,7 +107,9 @@ module:add_event_hook("stream-features",
-- TODO: Provide PLAIN only if TLS is active, this is a SHOULD from the introduction of RFC 4616. This behavior could be overridden via configuration but will issuing a warning or so.
features:tag("mechanism"):text("PLAIN"):up();
features:tag("mechanism"):text("DIGEST-MD5"):up();
- features:tag("mechanism"):text("ANONYMOUS"):up();
+ if config.get(session.host or "*", "core", "sasl_anonymous") then
+ features:tag("mechanism"):text("ANONYMOUS"):up();
+ end
features:up();
else
features:tag("bind", bind_attr):tag("required"):up():up();
diff --git a/prosody b/prosody
index 15c94c92..0e38c6c2 100755
--- a/prosody
+++ b/prosody
@@ -32,10 +32,6 @@ pcall(require, "luarocks.require")
config = require "core.configmanager"
-log = require "util.logger".init("general");
-
--- Disable log output, needs to read from config
--- require "util.logger".setwriter(function () end);
do
-- TODO: Check for other formats when we add support for them
@@ -63,6 +59,11 @@ do
end
end
+log = require "util.logger".init("general");
+
+-- Disable log output, needs to read from config
+-- require "util.logger".setwriter(function () end);
+
require "util.dependencies"
local server = require "net.server"
diff --git a/util/logger.lua b/util/logger.lua
index 791e222b..2c8eea30 100644
--- a/util/logger.lua
+++ b/util/logger.lua
@@ -13,8 +13,13 @@ local debug = debug;
local tostring = tostring;
local math_max = math.max;
+local config = require "core.configmanager";
+local log_sources = config.get("*", "core", "log_sources");
+
local getstyle, getstring = require "util.termcolours".getstyle, require "util.termcolours".getstring;
local do_pretty_printing = not os.getenv("WINDIR");
+local find = string.find;
+local ipairs = ipairs;
module "logger"
@@ -32,6 +37,18 @@ local sourcewidth = 20;
local outfunction = nil;
function init(name)
+ if log_sources then
+ local log_this = false;
+ for _, source in ipairs(log_sources) do
+ if find(name, source) then
+ log_this = true;
+ break;
+ end
+ end
+
+ if not log_this then return function () end end
+ end
+
--name = nil; -- While this line is not commented, will automatically fill in file/line number info
local namelen = #name;
return function (level, message, ...)