- local filters = {};
- session.filters = filters;
-
- function session.filter(type, data)
- local filter_list = filters[type];
- for i = 1, #filter_list do
- data = filter_list[i](data);
+ if not session.filters then
+ local filters = {};
+ session.filters = filters;
+
+ function session.filter(type, data)
+ local filter_list = filters[type];
+ if filter_list then
+ for i = 1, #filter_list do
+ data = filter_list[i](data, session);
+ if data == nil then break; end
+ end
+ end
+ return data;