Software / code / prosody
File
util/session.lua @ 13531:3a75472a3b9d
doap: Update XEP for mostly editorial changes
XEP-0004: Changes <reported> which is not implemented
XEP-0030: A note on some implementations not advertising disco#info
XEP-0106: Now references PRECIS which we don't have access to
XEP-0107: Editorial fixing of a typo
XEP-0133: Removal of 'Get User Password' already done in 21a1b9fb08a1, editorial changes
XEP-0153: Editorial changes
XEP-0198: Editorial changes and clarifications
XEP-0223: Updated security considerations
XEP-0292: The difference is that the iq syntax implemented in mod_vcard4 is removed. To become compliant, simply unload this module.
XEP-0313: Editorial and minor changes
XEP-0398: Advanced to Stable, no other changes
XEP-0398: Now mentions the implementation method used in mod_vcard_legacy
XEP-0402: Changes only affecting clients
XEP-0421: Added requirements we already satisfy
XEP-0440: Editorial changes
XEP-0478: Editorial changes
Due to their size, review of changes to XEP-0045 and XEP-0060 has been left for later.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 26 Oct 2024 18:06:49 +0200 |
| parent | 13165:9c13c11b199d |
line wrap: on
line source
local initialize_filters = require "prosody.util.filters".initialize; local time = require "prosody.util.time"; local logger = require "prosody.util.logger"; local function new_session(typ) local session = { type = typ .. "_unauthed"; base_type = typ; since = time.now(); }; return session; end local function set_id(session) local id = session.base_type .. tostring(session):match("%x+$"):lower(); session.id = id; return session; end local function set_logger(session) local log = logger.init(session.id); session.log = log; return session; end local function set_conn(session, conn) session.conn = conn; session.ip = conn:ip(); return session; end local function set_send(session) local conn = session.conn; if not conn then function session.send(data) session.log("debug", "Discarding data sent to unconnected session: %s", data); return false; end return session; end local filter = initialize_filters(session); local w = conn.write; 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 local ret, err = w(conn, t); if not ret then session.log("debug", "Error writing to connection: %s", err); return false, err; end end end return true; end return session; end local function set_role(session, role) session.role = role; end return { new = new_session; set_id = set_id; set_logger = set_logger; set_conn = set_conn; set_send = set_send; set_role = set_role; }