aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/xmppserver_listener.lua4
-rw-r--r--plugins/mod_console.lua6
-rw-r--r--plugins/mod_welcome.lua2
-rw-r--r--plugins/muc/muc.lib.lua11
-rwxr-xr-xprosody2
5 files changed, 15 insertions, 10 deletions
diff --git a/net/xmppserver_listener.lua b/net/xmppserver_listener.lua
index f7ea35f7..fa6acbb7 100644
--- a/net/xmppserver_listener.lua
+++ b/net/xmppserver_listener.lua
@@ -61,8 +61,8 @@ local function session_reset_stream(session)
function session.data(conn, data)
local ok, err = parser:parse(data);
if ok then return; end
- (log or session.log)("warn", "Received invalid XML: %s", data);
- (log or session.log)("warn", "Problem was: %s", err);
+ (session.log or log)("warn", "Received invalid XML: %s", data);
+ (session.log or log)("warn", "Problem was: %s", err);
session:close("xml-not-well-formed");
end
diff --git a/plugins/mod_console.lua b/plugins/mod_console.lua
index a46eec12..5a092298 100644
--- a/plugins/mod_console.lua
+++ b/plugins/mod_console.lua
@@ -127,7 +127,11 @@ function console_listener.listener(conn, data)
end
function console_listener.disconnect(conn, err)
-
+ local session = sessions[conn];
+ if session then
+ session.disconnect();
+ sessions[conn] = nil;
+ end
end
connlisteners_register('console', console_listener);
diff --git a/plugins/mod_welcome.lua b/plugins/mod_welcome.lua
index cc50cba3..edcfbd8c 100644
--- a/plugins/mod_welcome.lua
+++ b/plugins/mod_welcome.lua
@@ -7,7 +7,7 @@
--
local host = module:get_host();
-local welcome_text = module:get_option("welcome_message") or "Hello $user, welcome to the $host IM server!";
+local welcome_text = module:get_option("welcome_message") or "Hello $username, welcome to the $host IM server!";
local st = require "util.stanza";
diff --git a/plugins/muc/muc.lib.lua b/plugins/muc/muc.lib.lua
index 7a635e8e..312dcc37 100644
--- a/plugins/muc/muc.lib.lua
+++ b/plugins/muc/muc.lib.lua
@@ -115,7 +115,7 @@ function room_mt:broadcast_presence(stanza, sid, code, nick)
stanza = get_filtered_presence(stanza);
local occupant = self._occupants[stanza.attr.from];
stanza:tag("x", {xmlns='http://jabber.org/protocol/muc#user'})
- :tag("item", {affiliation=occupant.affiliation, role=occupant.role, nick=nick}):up();
+ :tag("item", {affiliation=occupant.affiliation or "none", role=occupant.role or "none", nick=nick}):up();
if code then
stanza:tag("status", {code=code}):up();
end
@@ -162,7 +162,7 @@ function room_mt:send_occupant_list(to)
local pres = get_filtered_presence(o_data.sessions[o_data.jid]);
pres.attr.to, pres.attr.from = to, occupant;
pres:tag("x", {xmlns='http://jabber.org/protocol/muc#user'})
- :tag("item", {affiliation=o_data.affiliation, role=o_data.role}):up();
+ :tag("item", {affiliation=o_data.affiliation or "none", role=o_data.role or "none"}):up();
self:route_stanza(pres);
end
end
@@ -232,13 +232,14 @@ function room_mt:handle_to_occupant(origin, stanza) -- PM, vCards, etc
occupant.sessions[from] = nil;
pr.attr.to = from;
pr:tag("x", {xmlns='http://jabber.org/protocol/muc#user'})
- :tag("item", {affiliation=occupant.affiliation, role='none'}):up()
+ :tag("item", {affiliation=occupant.affiliation or "none", role='none'}):up()
:tag("status", {code='110'});
self:route_stanza(pr);
if jid ~= new_jid then
pr = st.clone(occupant.sessions[new_jid])
:tag("x", {xmlns='http://jabber.org/protocol/muc#user'})
- :tag("item", {affiliation=occupant.affiliation, role=occupant.role});
+ :tag("item", {affiliation=occupant.affiliation or "none", role=occupant.role or "none"});
+ pr.attr.from = current_nick;
self:broadcast_except_nick(pr, current_nick);
end
else
@@ -322,7 +323,7 @@ function room_mt:handle_to_occupant(origin, stanza) -- PM, vCards, etc
else
pr.attr.to = from;
self:route_stanza(pr:tag("x", {xmlns='http://jabber.org/protocol/muc#user'})
- :tag("item", {affiliation=affiliation, role=role}):up()
+ :tag("item", {affiliation=affiliation or "none", role=role or "none"}):up()
:tag("status", {code='110'}));
end
self:send_history(from);
diff --git a/prosody b/prosody
index 99d7602c..e22e5945 100755
--- a/prosody
+++ b/prosody
@@ -282,7 +282,7 @@ end
function loop()
-- Error handler for errors that make it this far
local function catch_uncaught_error(err)
- if err:match("%d*: interrupted!$") then
+ if type(err) == "string" and err:match("%d*: interrupted!$") then
return "quitting";
end