diff options
author | Kim Alvefur <zash@zash.se> | 2015-12-27 12:29:28 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2015-12-27 12:29:28 +0100 |
commit | 0664d7ebf65a3ca356ec80ad4f706919ac745300 (patch) | |
tree | 50c569b3a43e2bf21301dba4606a02940a6ed127 /util | |
parent | b3d8c070f940572d53e8bea734a7abef38411c56 (diff) | |
parent | b50935a87c03246fac1541b275da4464a5b63b3b (diff) | |
download | prosody-0664d7ebf65a3ca356ec80ad4f706919ac745300.tar.gz prosody-0664d7ebf65a3ca356ec80ad4f706919ac745300.zip |
Merge 0.10->trunk
Diffstat (limited to 'util')
-rw-r--r-- | util/array.lua | 26 | ||||
-rw-r--r-- | util/cache.lua | 11 | ||||
-rw-r--r-- | util/openssl.lua | 34 |
3 files changed, 34 insertions, 37 deletions
diff --git a/util/array.lua b/util/array.lua index d4ab1771..3ddc97f6 100644 --- a/util/array.lua +++ b/util/array.lua @@ -37,7 +37,7 @@ setmetatable(array, { __call = new_array }); -- Read-only methods function array_methods:random() - return self[math_random(1,#self)]; + return self[math_random(1, #self)]; end -- These methods can be called two ways: @@ -45,7 +45,7 @@ end -- existing_array:method([params, ...]) -- Transform existing array into result -- function array_base.map(outa, ina, func) - for k,v in ipairs(ina) do + for k, v in ipairs(ina) do outa[k] = func(v); end return outa; @@ -54,7 +54,7 @@ end function array_base.filter(outa, ina, func) local inplace, start_length = ina == outa, #ina; local write = 1; - for read=1,start_length do + for read = 1, start_length do local v = ina[read]; if func(v) then outa[write] = v; @@ -63,7 +63,7 @@ function array_base.filter(outa, ina, func) end if inplace and write <= start_length then - for i=write,start_length do + for i = write, start_length do outa[i] = nil; end end @@ -80,7 +80,7 @@ function array_base.sort(outa, ina, ...) end function array_base.pluck(outa, ina, key) - for i=1,#ina do + for i = 1, #ina do outa[i] = ina[i][key]; end return outa; @@ -108,16 +108,16 @@ end --- These methods only mutate the array function array_methods:shuffle(outa, ina) local len = #self; - for i=1,#self do - local r = math_random(i,len); + for i = 1, #self do + local r = math_random(i, len); self[i], self[r] = self[r], self[i]; end return self; end function array_methods:append(array) - local len,len2 = #self, #array; - for i=1,len2 do + local len, len2 = #self, #array; + for i = 1, len2 do self[len+i] = array[i]; end return self; @@ -128,11 +128,7 @@ function array_methods:push(x) return self; end -function array_methods:pop(x) - local v = self[x]; - t_remove(self, x); - return v; -end +array_methods.pop = t_remove; function array_methods:concat(sep) return t_concat(array.map(self, tostring), sep); @@ -147,7 +143,7 @@ function array.collect(f, s, var) local t = {}; while true do var = f(s, var); - if var == nil then break; end + if var == nil then break; end t_insert(t, var); end return setmetatable(t, array_mt); diff --git a/util/cache.lua b/util/cache.lua index 72b74351..d3639b3f 100644 --- a/util/cache.lua +++ b/util/cache.lua @@ -51,19 +51,20 @@ function cache_methods:set(k, v) return true; end -- Check whether we need to remove oldest k/v + local on_evict, evicted_key, evicted_value; if self._count == self.size then local tail = self._tail; - local on_evict = self._on_evict; - if on_evict then - on_evict(tail.key, tail.value); - end + on_evict, evicted_key, evicted_value = self._on_evict, tail.key, tail.value; _remove(self, tail); - self._data[tail.key] = nil; + self._data[evicted_key] = nil; end m = { key = k, value = v, prev = nil, next = nil }; self._data[k] = m; _insert(self, m); + if on_evict and evicted_key then + on_evict(evicted_key, evicted_value, self); + end return true; end diff --git a/util/openssl.lua b/util/openssl.lua index 39fe99d6..12e49eac 100644 --- a/util/openssl.lua +++ b/util/openssl.lua @@ -12,7 +12,7 @@ local config = {}; _M.config = config; local ssl_config = {}; -local ssl_config_mt = {__index=ssl_config}; +local ssl_config_mt = { __index = ssl_config }; function config.new() return setmetatable({ @@ -65,12 +65,12 @@ function ssl_config:serialize() s = s .. ("[%s]\n"):format(k); if k == "subject_alternative_name" then for san, n in pairs(t) do - for i = 1,#n do + for i = 1, #n do s = s .. s_format("%s.%d = %s\n", san, i -1, n[i]); end end elseif k == "distinguished_name" then - for i=1,#DN_order do + for i=1, #DN_order do local k = DN_order[i] local v = t[k]; if v then @@ -107,7 +107,7 @@ end function ssl_config:add_sRVName(host, service) t_insert(self.subject_alternative_name.otherName, - s_format("%s;%s", oid_dnssrv, ia5string("_" .. service .."." .. idna_to_ascii(host)))); + s_format("%s;%s", oid_dnssrv, ia5string("_" .. service .. "." .. idna_to_ascii(host)))); end function ssl_config:add_xmppAddr(host) @@ -118,10 +118,10 @@ end function ssl_config:from_prosody(hosts, config, certhosts) -- TODO Decide if this should go elsewhere local found_matching_hosts = false; - for i = 1,#certhosts do + for i = 1, #certhosts do local certhost = certhosts[i]; for name in pairs(hosts) do - if name == certhost or name:sub(-1-#certhost) == "."..certhost then + if name == certhost or name:sub(-1-#certhost) == "." .. certhost then found_matching_hosts = true; self:add_dNSName(name); --print(name .. "#component_module: " .. (config.get(name, "component_module") or "nil")); @@ -144,30 +144,30 @@ end do -- Lua to shell calls. local function shell_escape(s) - return s:gsub("'",[['\'']]); + return "'" .. tostring(s):gsub("'",[['\'']]) .. "'"; end - local function serialize(f,o) - local r = {"openssl", f}; - for k,v in pairs(o) do + local function serialize(command, args) + local commandline = { "openssl", command }; + for k, v in pairs(args) do if type(k) == "string" then - t_insert(r, ("-%s"):format(k)); + t_insert(commandline, ("-%s"):format(k)); if v ~= true then - t_insert(r, ("'%s'"):format(shell_escape(tostring(v)))); + t_insert(commandline, shell_escape(v)); end end end - for _,v in ipairs(o) do - t_insert(r, ("'%s'"):format(shell_escape(tostring(v)))); + for _, v in ipairs(args) do + t_insert(commandline, shell_escape(v)); end - return t_concat(r, " "); + return t_concat(commandline, " "); end local os_execute = os.execute; setmetatable(_M, { - __index=function(_,f) + __index = function(_, command) return function(opts) - return 0 == os_execute(serialize(f, type(opts) == "table" and opts or {})); + return 0 == os_execute(serialize(command, type(opts) == "table" and opts or {})); end; end; }); |