From e75bdcefeef9a591b20d68bf8da18913b9117e6e Mon Sep 17 00:00:00 2001 From: Florian Zeitz <florob@babelmonkeys.de> Date: Tue, 12 Jun 2012 18:29:58 +0200 Subject: util.dataforms: Fix parsing of -multi fields --- util/dataforms.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'util') diff --git a/util/dataforms.lua b/util/dataforms.lua index 8cb39144..55bad998 100644 --- a/util/dataforms.lua +++ b/util/dataforms.lua @@ -185,7 +185,7 @@ field_readers["list-multi"] = function (field_tag, required) local result = {}; for value in field_tag:childtags("value") do - result[#result+1] = value; + result[#result+1] = value:get_text(); end return result, (required and #result == 0 and "Required value missing" or nil); end @@ -202,10 +202,10 @@ field_readers["text-multi"] = field_readers["list-single"] = field_readers["text-single"]; - local boolean_values = { - ["1"] = true, ["true"] = true, - ["0"] = false, ["false"] = false, - }; +local boolean_values = { + ["1"] = true, ["true"] = true, + ["0"] = false, ["false"] = false, +}; field_readers["boolean"] = function (field_tag, required) -- cgit v1.2.3 From ec8e1c82a757383b881b1c6e77510d63e0c67c35 Mon Sep 17 00:00:00 2001 From: Matthew Wild <mwild1@gmail.com> Date: Mon, 18 Jun 2012 16:57:46 +0100 Subject: util.sasl: Make registerMechanism a public function --- util/sasl.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'util') diff --git a/util/sasl.lua b/util/sasl.lua index 17d10b80..afb3861b 100644 --- a/util/sasl.lua +++ b/util/sasl.lua @@ -35,7 +35,7 @@ local mechanisms = {}; local backend_mechanism = {}; -- register a new SASL mechanims -local function registerMechanism(name, backends, f) +function registerMechanism(name, backends, f) assert(type(name) == "string", "Parameter name MUST be a string."); assert(type(backends) == "string" or type(backends) == "table", "Parameter backends MUST be either a string or a table."); assert(type(f) == "function", "Parameter f MUST be a function."); -- cgit v1.2.3 From 89b96a2c5f175dc72b3954ce74bbf69f93cf607c Mon Sep 17 00:00:00 2001 From: Kim Alvefur <zash@zash.se> Date: Thu, 5 Jul 2012 17:58:47 +0200 Subject: util.stanza: Make stanza:childtags() behave like :get_child() --- util/stanza.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'util') diff --git a/util/stanza.lua b/util/stanza.lua index 1449f707..5c430f1d 100644 --- a/util/stanza.lua +++ b/util/stanza.lua @@ -133,14 +133,14 @@ function stanza_mt:children() end function stanza_mt:childtags(name, xmlns) - xmlns = xmlns or self.attr.xmlns; local tags = self.tags; local start_i, max_i = 1, #tags; return function () for i = start_i, max_i do local v = tags[i]; if (not name or v.name == name) - and (not xmlns or xmlns == v.attr.xmlns) then + and ((not xmlns and self.attr.xmlns == v.attr.xmlns) + or v.attr.xmlns == xmlns) then start_i = i+1; return v; end -- cgit v1.2.3 From 23b199bd3a4a4f735ef5f046d23372cd3d2aed7f Mon Sep 17 00:00:00 2001 From: Matthew Wild <mwild1@gmail.com> Date: Mon, 25 Jun 2012 00:16:08 +0100 Subject: util.logger: Remove some redundant code --- util/logger.lua | 2 -- 1 file changed, 2 deletions(-) (limited to 'util') diff --git a/util/logger.lua b/util/logger.lua index 4fadb4b9..26206d4d 100644 --- a/util/logger.lua +++ b/util/logger.lua @@ -23,8 +23,6 @@ function init(name) local log_warn = make_logger(name, "warn"); local log_error = make_logger(name, "error"); - --name = nil; -- While this line is not commented, will automatically fill in file/line number info - local namelen = #name; return function (level, message, ...) if level == "debug" then return log_debug(message, ...); -- cgit v1.2.3 From 90806a87a4b01496b4867f18c8860a52af55db9d Mon Sep 17 00:00:00 2001 From: Matthew Wild <mwild1@gmail.com> Date: Mon, 9 Jul 2012 02:35:47 +0100 Subject: util.throttle: floor() internal balance calculation --- util/throttle.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'util') diff --git a/util/throttle.lua b/util/throttle.lua index 2e901158..55e1d07b 100644 --- a/util/throttle.lua +++ b/util/throttle.lua @@ -1,6 +1,7 @@ local gettime = require "socket".gettime; local setmetatable = setmetatable; +local floor = math.floor; module "throttle" @@ -11,7 +12,7 @@ function throttle:update() local newt = gettime(); local elapsed = newt - self.t; self.t = newt; - local balance = self.rate * elapsed + self.balance; + local balance = floor(self.rate * elapsed) + self.balance; if balance > self.max then self.balance = self.max; else -- cgit v1.2.3 From e808645b53de5373b292d97f8213cca016864de9 Mon Sep 17 00:00:00 2001 From: Matthew Wild <mwild1@gmail.com> Date: Mon, 23 Jul 2012 17:32:33 +0100 Subject: Hopefully inert commit to clean up logging across a number of modules, removing all cases of concatenation when building log messages --- util/datamanager.lua | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'util') diff --git a/util/datamanager.lua b/util/datamanager.lua index a5d676cc..30c1e298 100644 --- a/util/datamanager.lua +++ b/util/datamanager.lua @@ -115,18 +115,18 @@ function load(username, host, datastore) if not data then local mode = lfs.attributes(getpath(username, host, datastore), "mode"); if not mode then - log("debug", "Assuming empty "..datastore.." storage ('"..ret.."') for user: "..(username or "nil").."@"..(host or "nil")); + log("debug", "Assuming empty %s storage ('%s') for user: %s@%s", datastore, ret, username or "nil", host or "nil"); return nil; else -- file exists, but can't be read -- TODO more detailed error checking and logging? - log("error", "Failed to load "..datastore.." storage ('"..ret.."') for user: "..(username or "nil").."@"..(host or "nil")); + log("error", "Failed to load %s storage ('%s') for user: %s@%s", datastore, ret, username or "nil", host or "nil"); return nil, "Error reading storage"; end end setfenv(data, {}); local success, ret = pcall(data); if not success then - log("error", "Unable to load "..datastore.." storage ('"..ret.."') for user: "..(username or "nil").."@"..(host or "nil")); + log("error", "Unable to load %s storage ('%s') for user: %s@%s", datastore, ret, username or "nil", host or "nil"); return nil, "Error reading storage"; end return ret; @@ -145,7 +145,7 @@ function store(username, host, datastore, data) -- save the datastore local f, msg = io_open(getpath(username, host, datastore, nil, true), "w+"); if not f then - log("error", "Unable to write to "..datastore.." storage ('"..msg.."') for user: "..(username or "nil").."@"..(host or "nil")); + log("error", "Unable to write to %s storage ('%s') for user: %s@%s", datastore, msg, username or "nil", host or "nil"); return nil, "Error saving to storage"; end f:write("return "); @@ -166,7 +166,7 @@ function list_append(username, host, datastore, data) -- save the datastore local f, msg = io_open(getpath(username, host, datastore, "list", true), "a+"); if not f then - log("error", "Unable to write to "..datastore.." storage ('"..msg.."') for user: "..(username or "nil").."@"..(host or "nil")); + log("error", "Unable to write to %s storage ('%s') for user: %s@%s", datastore, msg, username or "nil", host or "nil"); return; end f:write("item("); @@ -184,7 +184,7 @@ function list_store(username, host, datastore, data) -- save the datastore local f, msg = io_open(getpath(username, host, datastore, "list", true), "w+"); if not f then - log("error", "Unable to write to "..datastore.." storage ('"..msg.."') for user: "..(username or "nil").."@"..(host or "nil")); + log("error", "Unable to write to %s storage ('%s') for user: %s@%s", datastore, msg, username or "nil", host or "nil"); return; end for _, d in ipairs(data) do @@ -207,11 +207,11 @@ function list_load(username, host, datastore) if not data then local mode = lfs.attributes(getpath(username, host, datastore, "list"), "mode"); if not mode then - log("debug", "Assuming empty "..datastore.." storage ('"..ret.."') for user: "..(username or "nil").."@"..(host or "nil")); + log("debug", "Assuming empty %s storage ('%s') for user: %s@%s", datastore, ret, username or "nil", host or "nil"); return nil; else -- file exists, but can't be read -- TODO more detailed error checking and logging? - log("error", "Failed to load "..datastore.." storage ('"..ret.."') for user: "..(username or "nil").."@"..(host or "nil")); + log("error", "Failed to load %s storage ('%s') for user: %s@%s", datastore, ret, username or "nil", host or "nil"); return nil, "Error reading storage"; end end @@ -219,7 +219,7 @@ function list_load(username, host, datastore) setfenv(data, {item = function(i) t_insert(items, i); end}); local success, ret = pcall(data); if not success then - log("error", "Unable to load "..datastore.." storage ('"..ret.."') for user: "..(username or "nil").."@"..(host or "nil")); + log("error", "Unable to load %s storage ('%s') for user: %s@%s", datastore, ret, username or "nil", host or "nil"); return nil, "Error reading storage"; end return items; -- cgit v1.2.3 From 735e98a6299ff4d5bb4792694162f2757d391610 Mon Sep 17 00:00:00 2001 From: Matthew Wild <mwild1@gmail.com> Date: Tue, 24 Jul 2012 10:56:47 +0100 Subject: mod_auth_cyrus, util.sasl_cyrus: Add new option 'cyrus_server_fqdn' to override the hostname passed to Cyrus (and used in e.g. GSSAPI/Kerberos) - fixes #295 --- util/sasl_cyrus.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'util') diff --git a/util/sasl_cyrus.lua b/util/sasl_cyrus.lua index 002118fd..19684587 100644 --- a/util/sasl_cyrus.lua +++ b/util/sasl_cyrus.lua @@ -78,11 +78,15 @@ local function init(service_name) end -- create a new SASL object which can be used to authenticate clients -function new(realm, service_name, app_name) +-- host_fqdn may be nil in which case gethostname() gives the value. +-- For GSSAPI, this determines the hostname in the service ticket (after +-- reverse DNS canonicalization, only if [libdefaults] rdns = true which +-- is the default). +function new(realm, service_name, app_name, host_fqdn) init(app_name or service_name); - local st, ret = pcall(cyrussasl.server_new, service_name, nil, realm, nil, nil) + local st, ret = pcall(cyrussasl.server_new, service_name, host_fqdn, realm, nil, nil) if not st then log("error", "Creating SASL server connection failed: %s", ret); return nil; -- cgit v1.2.3