projects
/
prosody.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mod_pubsub: Handle disco#info and disco#items
[prosody.git]
/
core
/
sessionmanager.lua
diff --git
a/core/sessionmanager.lua
b/core/sessionmanager.lua
index e1f1a80214e9540abcea1a17c023a8d49e0889f1..d36591bfb34c2218c01c84388796409dbda57a88 100644
(file)
--- a/
core/sessionmanager.lua
+++ b/
core/sessionmanager.lua
@@
-27,7
+27,8
@@
local nameprep = require "util.encodings".stringprep.nameprep;
local resourceprep = require "util.encodings".stringprep.resourceprep;
local nodeprep = require "util.encodings".stringprep.nodeprep;
local resourceprep = require "util.encodings".stringprep.resourceprep;
local nodeprep = require "util.encodings".stringprep.nodeprep;
-local fire_event = require "core.eventmanager".fire_event;
+local initialize_filters = require "util.filters".initialize;
+local fire_event = prosody.events.fire_event;
local add_task = require "util.timer".add_task;
local gettime = require "socket".gettime;
local add_task = require "util.timer".add_task;
local gettime = require "socket".gettime;
@@
-50,8
+51,20
@@
function new_session(conn)
end
open_sessions = open_sessions + 1;
log("debug", "open sessions now: ".. open_sessions);
end
open_sessions = open_sessions + 1;
log("debug", "open sessions now: ".. open_sessions);
+
+ local filter = initialize_filters(session);
local w = conn.write;
local w = conn.write;
- session.send = function (t) w(conn, tostring(t)); end
+ session.send = function (t)
+ if t.name then
+ t = filter("stanzas/out", t);
+ end
+ if t then
+ t = filter("bytes/out", tostring(t));
+ if t then
+ return w(conn, t);
+ end
+ end
+ end
session.ip = conn:ip();
local conn_name = "c2s"..tostring(conn):match("[a-f0-9]+$");
session.log = logger.init(conn_name);
session.ip = conn:ip();
local conn_name = "c2s"..tostring(conn):match("[a-f0-9]+$");
session.log = logger.init(conn_name);
@@
-73,6
+86,7
@@
local resting_session = { -- Resting, not dead
close = function (session)
session.log("debug", "Attempt to close already-closed session");
end;
close = function (session)
session.log("debug", "Attempt to close already-closed session");
end;
+ filter = function (type, data) return data; end;
}; resting_session.__index = resting_session;
function retire_session(session)
}; resting_session.__index = resting_session;
function retire_session(session)