Software /
code /
prosody
Changeset
6988:329d5fb8a9d3
Merge 0.10->trunk
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 10 Dec 2015 18:58:30 +0000 |
parents | 6978:30c96a5db360 (current diff) 6987:06696882d972 (diff) |
children | 6989:118858bf47cd |
files | plugins/mod_admin_telnet.lua plugins/muc/muc.lib.lua |
diffstat | 7 files changed, 47 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/.luacheckrc Tue Dec 08 23:15:42 2015 +0000 +++ b/.luacheckrc Thu Dec 10 18:58:30 2015 +0000 @@ -1,5 +1,5 @@ cache = true -read_globals = { "prosody", "hosts" } +read_globals = { "prosody", "hosts", "import" } globals = { "_M" } allow_defined_top = true module = true
--- a/core/portmanager.lua Tue Dec 08 23:15:42 2015 +0000 +++ b/core/portmanager.lua Thu Dec 10 18:58:30 2015 +0000 @@ -111,10 +111,10 @@ local global_ssl_config = config.get("*", "ssl") or {}; local prefix_ssl_config = config.get("*", config_prefix.."ssl") or global_ssl_config; ssl, err = certmanager.create_context(service_info.name.." port "..port, "server", - service_info.ssl_config or {}, prefix_ssl_config[interface], prefix_ssl_config[port], prefix_ssl_config, + service_info.ssl_config or {}, global_ssl_config[interface], global_ssl_config[port]); if not ssl then
--- a/core/usermanager.lua Tue Dec 08 23:15:42 2015 +0000 +++ b/core/usermanager.lua Thu Dec 10 18:58:30 2015 +0000 @@ -111,7 +111,6 @@ if host and not hosts[host] then return false; end if type(jid) ~= "string" then return false; end - local is_admin; jid = jid_bare(jid); host = host or "*"; @@ -122,8 +121,7 @@ if type(host_admins) == "table" then for _,admin in ipairs(host_admins) do if jid_prep(admin) == jid then - is_admin = true; - break; + return true; end end elseif host_admins then @@ -131,12 +129,11 @@ end end - if not is_admin and global_admins then + if global_admins then if type(global_admins) == "table" then for _,admin in ipairs(global_admins) do if jid_prep(admin) == jid then - is_admin = true; - break; + return true; end end elseif global_admins then @@ -145,10 +142,10 @@ end -- Still not an admin, check with auth provider - if not is_admin and host ~= "*" and hosts[host].users and hosts[host].users.is_admin then - is_admin = hosts[host].users.is_admin(jid); + if host ~= "*" and hosts[host].users and hosts[host].users.is_admin then + return hosts[host].users.is_admin(jid); end - return is_admin or false; + return false; end return {
--- a/plugins/mod_admin_telnet.lua Tue Dec 08 23:15:42 2015 +0000 +++ b/plugins/mod_admin_telnet.lua Thu Dec 10 18:58:30 2015 +0000 @@ -282,6 +282,8 @@ -- Session environment -- -- Anything in def_env will be accessible within the session as a global variable +--luacheck: ignore 212/self + def_env.server = {}; function def_env.server:insane_reload() @@ -1125,6 +1127,33 @@ return true, "Cache:\n"..tostring(dns.cache()) end +def_env.http = {}; + +function def_env.http:list() + local print = self.session.print; + + for host in pairs(prosody.hosts) do + local http_apps = modulemanager.get_items("http-provider", host); + if #http_apps > 0 then + local http_host = module:context(host):get_option("http_host"); + print("HTTP endpoints on "..host..(http_host and (" (using "..http_host.."):") or ":")); + for _, provider in ipairs(http_apps) do + local url = module:context(host):http_url(provider.name); + print("", url); + end + print(""); + end + end + + local default_host = module:get_option("http_default_host"); + if not default_host then + print("HTTP requests to unknown hosts will return 404 Not Found"); + else + print("HTTP requests to unknown hosts will be handled by "..default_host); + end + return true; +end + ------------- function printbanner(session)
--- a/plugins/mod_compression.lua Tue Dec 08 23:15:42 2015 +0000 +++ b/plugins/mod_compression.lua Thu Dec 10 18:58:30 2015 +0000 @@ -27,14 +27,12 @@ module:hook("stream-features", function(event) local origin, features = event.origin, event.features; if not origin.compressed and origin.type == "c2s" then - -- FIXME only advertise compression support when TLS layer has no compression enabled features:add_child(compression_stream_feature); end end); module:hook("s2s-stream-features", function(event) local origin, features = event.origin, event.features; - -- FIXME only advertise compression support when TLS layer has no compression enabled if not origin.compressed and origin.type == "s2sin" then features:add_child(compression_stream_feature); end
--- a/prosody Tue Dec 08 23:15:42 2015 +0000 +++ b/prosody Thu Dec 10 18:58:30 2015 +0000 @@ -43,6 +43,12 @@ end end +if #arg > 0 and arg[1] ~= "--config" then + print("Unknown command-line option: "..tostring(arg[1])); + print("Perhaps you meant to use prosodyctl instead?"); + return 1; +end + -- Global 'prosody' object local prosody = { events = require "util.events".new(); }; _G.prosody = prosody;
--- a/util/dataforms.lua Tue Dec 08 23:15:42 2015 +0000 +++ b/util/dataforms.lua Thu Dec 10 18:58:30 2015 +0000 @@ -118,6 +118,7 @@ function form_t.data(layout, stanza) local data = {}; local errors = {}; + local present = {}; for _, field in ipairs(layout) do local tag; @@ -133,6 +134,7 @@ errors[field.name] = "Required value missing"; end else + present[field.name] = true; local reader = field_readers[field.type]; if reader then data[field.name], errors[field.name] = reader(tag, field.required); @@ -140,9 +142,9 @@ end end if next(errors) then - return data, errors; + return data, errors, present; end - return data; + return data, nil, present; end local function simple_text(field_tag, required)