diff options
-rw-r--r-- | net/adns.lua | 2 | ||||
-rw-r--r-- | net/server.lua | 4 | ||||
-rw-r--r-- | plugins/mod_saslauth.lua | 5 | ||||
-rwxr-xr-x | prosody | 9 | ||||
-rw-r--r-- | util/logger.lua | 17 |
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(); @@ -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, ...) |