--- a/mod_ircd/mod_ircd.lua Fri Feb 19 09:20:50 2010 +0500
+++ b/mod_ircd/mod_ircd.lua Mon Feb 22 22:33:25 2010 +0100
@@ -80,9 +80,11 @@
end
function commands.PART(session, channel)
- local channel, part_message = channel:match("^(%S+) :(.+)$");
+ local channel, part_message = channel:match("^([^:]+):?(.*)$");
+ channel = channel:match("^([%S]*)");
core_process_stanza(session, st.presence{ type = "unavailable", from = session.full_jid,
to = channel:gsub("^#", "").."@"..conference_server.."/"..session.nick }:tag("status"):text(part_message));
+ session.send(":"..session.nick.." PART :"..channel);
end
function commands.PRIVMSG(session, message)
@@ -92,6 +94,10 @@
end
end
+function commands.PING(session, server)
+ session.send(":"..session.host..": PONG "..server);
+end
+
function commands.WHO(session, channel)
if joined_mucs[channel] then
for nick in pairs(joined_mucs[channel].occupants) do