aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/dns.lua2
-rw-r--r--plugins/mod_pubsub/mod_pubsub.lua6
-rw-r--r--plugins/mod_s2s/mod_s2s.lua3
-rw-r--r--util-src/encodings.c5
-rw-r--r--util-src/pposix.c5
-rw-r--r--util/datamanager.lua2
-rw-r--r--util/events.lua3
-rw-r--r--util/statistics.lua4
8 files changed, 20 insertions, 10 deletions
diff --git a/net/dns.lua b/net/dns.lua
index 2128fb1a..037f3ec6 100644
--- a/net/dns.lua
+++ b/net/dns.lua
@@ -226,7 +226,7 @@ end
function dns.random(...) -- - - - - - - - - - - - - - - - - - - dns.random
- math.randomseed(math.floor(10000*socket.gettime()) % 0x100000000);
+ math.randomseed(math.floor(10000*socket.gettime()) % 0x80000000);
dns.random = math.random;
return dns.random(...);
end
diff --git a/plugins/mod_pubsub/mod_pubsub.lua b/plugins/mod_pubsub/mod_pubsub.lua
index de027b58..40c28d27 100644
--- a/plugins/mod_pubsub/mod_pubsub.lua
+++ b/plugins/mod_pubsub/mod_pubsub.lua
@@ -125,11 +125,15 @@ module:hook("host-disco-items", function (event)
end);
local admin_aff = module:get_option_string("default_admin_affiliation", "owner");
-local function get_affiliation(jid)
+local unowned_aff = module:get_option_string("default_unowned_affiliation");
+local function get_affiliation(jid, node)
local bare_jid = jid_bare(jid);
if bare_jid == module.host or usermanager.is_admin(bare_jid, module.host) then
return admin_aff;
end
+ if not node then
+ return unowned_aff;
+ end
end
function set_service(new_service)
diff --git a/plugins/mod_s2s/mod_s2s.lua b/plugins/mod_s2s/mod_s2s.lua
index 1ce63a8b..060e04f6 100644
--- a/plugins/mod_s2s/mod_s2s.lua
+++ b/plugins/mod_s2s/mod_s2s.lua
@@ -625,8 +625,9 @@ end
function listener.onreadtimeout(conn)
local session = sessions[conn];
+ local host = session.host or session.to_host;
if session then
- return (hosts[session.host] or prosody).events.fire_event("s2s-read-timeout", { session = session });
+ return (hosts[host] or prosody).events.fire_event("s2s-read-timeout", { session = session });
end
end
diff --git a/util-src/encodings.c b/util-src/encodings.c
index 2eaad2c8..c00b2267 100644
--- a/util-src/encodings.c
+++ b/util-src/encodings.c
@@ -476,14 +476,15 @@ static int Lidna_to_unicode(lua_State* L) { /** idna.to_unicode(s) */
static int Lidna_to_ascii(lua_State* L) { /** idna.to_ascii(s) */
size_t len;
const char* s = check_utf8(L, 1, &len);
+ char* output = NULL;
+ int ret;
if(s == NULL || len != strlen(s)) {
lua_pushnil(L);
return 1; /* TODO return error message */
}
- char* output = NULL;
- int ret = idna_to_ascii_8z(s, &output, IDNA_USE_STD3_ASCII_RULES);
+ ret = idna_to_ascii_8z(s, &output, IDNA_USE_STD3_ASCII_RULES);
if(ret == IDNA_SUCCESS) {
lua_pushstring(L, output);
diff --git a/util-src/pposix.c b/util-src/pposix.c
index d797f032..5288b08c 100644
--- a/util-src/pposix.c
+++ b/util-src/pposix.c
@@ -750,7 +750,10 @@ int lc_fallocate(lua_State* L) {
lua_pushstring(L, strerror(ret));
/* posix_fallocate() can leave a bunch of NULs at the end, so we cut that
* this assumes that offset == length of the file */
- ftruncate(fileno(f), offset);
+ if(ftruncate(fileno(f), offset) != 0) {
+ lua_pushstring(L, strerror(errno));
+ return 3;
+ }
return 2;
}
}
diff --git a/util/datamanager.lua b/util/datamanager.lua
index b82349f1..b4138638 100644
--- a/util/datamanager.lua
+++ b/util/datamanager.lua
@@ -293,7 +293,7 @@ function users(host, store, typ)
local mode, err = lfs.attributes(store_dir, "mode");
if not mode then
- return function() log("debug", err or (store_dir .. " does not exist")) end
+ return function() log("debug", "%s", err or (store_dir .. " does not exist")) end
end
local next, state = lfs.dir(store_dir);
return function(state)
diff --git a/util/events.lua b/util/events.lua
index e93d6204..d19da98b 100644
--- a/util/events.lua
+++ b/util/events.lua
@@ -9,6 +9,7 @@
local pairs = pairs;
local t_insert = table.insert;
+local t_remove = table.remove;
local t_sort = table.sort;
local setmetatable = setmetatable;
local next = next;
@@ -121,7 +122,7 @@ function new()
if not w then return; end
for i = #w, 1 do
if w[i] == wrapper then
- table.remove(w, i);
+ t_remove(w, i);
end
end
if #w == 0 then
diff --git a/util/statistics.lua b/util/statistics.lua
index a05a1f91..26355026 100644
--- a/util/statistics.lua
+++ b/util/statistics.lua
@@ -88,7 +88,7 @@ local function new_registry(config)
return function (value)
n_actual_events = n_actual_events + 1;
- if n_actual_events%duration_sample_interval > 0 then
+ if n_actual_events%duration_sample_interval == 1 then
last_event = (last_event%duration_max_samples) + 1;
events[last_event] = value;
end
@@ -113,7 +113,7 @@ local function new_registry(config)
return function ()
n_actual_events = n_actual_events + 1;
- if n_actual_events%duration_sample_interval > 0 then
+ if n_actual_events%duration_sample_interval ~= 1 then
return nop_function;
end