aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2016-11-26 20:11:03 +0100
committerKim Alvefur <zash@zash.se>2016-11-26 20:11:03 +0100
commit562a902d415f3a0962354c0f12776ec3e1db594f (patch)
tree5fafe37e76936f880749432bffa3174a7ca120cd /core
parentb17b81319300e94b7870e6e9c658f9528bd4c9b9 (diff)
parent234d7178f15e860dc6c624f1e16dd245372ec34d (diff)
downloadprosody-562a902d415f3a0962354c0f12776ec3e1db594f.tar.gz
prosody-562a902d415f3a0962354c0f12776ec3e1db594f.zip
Merge 0.10->trunk
Diffstat (limited to 'core')
-rw-r--r--core/certmanager.lua5
-rw-r--r--core/stanza_router.lua10
2 files changed, 13 insertions, 2 deletions
diff --git a/core/certmanager.lua b/core/certmanager.lua
index 3872bd9a..12ae94b1 100644
--- a/core/certmanager.lua
+++ b/core/certmanager.lua
@@ -184,9 +184,12 @@ local function create_context(host, mode, ...)
err = err or "invalid ssl config"
local file = err:match("^error loading (.-) %(");
if file then
+ local typ;
if file == "private key" then
+ typ = file;
file = user_ssl_config.key or "your private key";
elseif file == "certificate" then
+ typ = file;
file = user_ssl_config.certificate or "your certificate file";
end
local reason = err:match("%((.+)%)$") or "some reason";
@@ -196,6 +199,8 @@ local function create_context(host, mode, ...)
reason = "Check that the path is correct, and the file exists.";
elseif reason == "system lib" then
reason = "Previous error (see logs), or other system error.";
+ elseif reason == "no start line" then
+ reason = "Check that the file contains a "..(typ or file);
elseif reason == "(null)" or not reason then
reason = "Check that the file exists and the permissions are correct";
else
diff --git a/core/stanza_router.lua b/core/stanza_router.lua
index cf098258..af797f08 100644
--- a/core/stanza_router.lua
+++ b/core/stanza_router.lua
@@ -67,8 +67,14 @@ function core_process_stanza(origin, stanza)
return handle_unhandled_stanza(origin.host, origin, stanza);
end
if name == "iq" then
- if not iq_types[st_type] or ((st_type == "set" or st_type == "get") and (#stanza.tags ~= 1)) then
- origin.send(st.error_reply(stanza, "modify", "bad-request", "Invalid IQ type or incorrect number of children"));
+ if not iq_types[st_type] then
+ origin.send(st.error_reply(stanza, "modify", "bad-request", "Invalid IQ type"));
+ return;
+ elseif not stanza.attr.id then
+ origin.send(st.error_reply(stanza, "modify", "bad-request", "Missing required 'id' attribute"));
+ return;
+ elseif (st_type == "set" or st_type == "get") and (#stanza.tags ~= 1) then
+ origin.send(st.error_reply(stanza, "modify", "bad-request", "Incorrect number of children for IQ stanz"));
return;
end
end