diff options
-rw-r--r-- | net/dns.lua | 2 | ||||
-rw-r--r-- | plugins/mod_pubsub/mod_pubsub.lua | 6 | ||||
-rw-r--r-- | plugins/mod_s2s/mod_s2s.lua | 3 | ||||
-rw-r--r-- | util-src/encodings.c | 5 | ||||
-rw-r--r-- | util-src/pposix.c | 5 | ||||
-rw-r--r-- | util/datamanager.lua | 2 | ||||
-rw-r--r-- | util/events.lua | 3 | ||||
-rw-r--r-- | util/statistics.lua | 4 |
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 |