Software /
code /
prosody
Comparison
plugins/mod_s2s/mod_s2s.lua @ 6256:d05627c89c99
mod_s2s: Move filter initialization to common place
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 22 May 2014 22:48:06 +0200 |
parent | 6255:6167f8bc5a6b |
child | 6257:9dace3a712f0 |
comparison
equal
deleted
inserted
replaced
6255:6167f8bc5a6b | 6256:d05627c89c99 |
---|---|
539 session.stream:reset(); | 539 session.stream:reset(); |
540 end | 540 end |
541 | 541 |
542 session.stream_attrs = session_stream_attrs; | 542 session.stream_attrs = session_stream_attrs; |
543 | 543 |
544 local filter = session.filter; | 544 local filter = initialize_filters(session); |
545 local conn = session.conn; | |
546 local w = conn.write; | |
547 | |
548 function session.sends2s(t) | |
549 log("debug", "sending: %s", t.top_tag and t:top_tag() or t:match("^[^>]*>?")); | |
550 if t.name then | |
551 t = filter("stanzas/out", t); | |
552 end | |
553 if t then | |
554 t = filter("bytes/out", tostring(t)); | |
555 if t then | |
556 return w(conn, t); | |
557 end | |
558 end | |
559 end | |
560 | |
545 function session.data(data) | 561 function session.data(data) |
546 data = filter("bytes/in", data); | 562 data = filter("bytes/in", data); |
547 if data then | 563 if data then |
548 local ok, err = stream:feed(data); | 564 local ok, err = stream:feed(data); |
549 if ok then return; end | 565 if ok then return; end |
578 local session = sessions[conn]; | 594 local session = sessions[conn]; |
579 if not session then -- New incoming connection | 595 if not session then -- New incoming connection |
580 session = s2s_new_incoming(conn); | 596 session = s2s_new_incoming(conn); |
581 sessions[conn] = session; | 597 sessions[conn] = session; |
582 session.log("debug", "Incoming s2s connection"); | 598 session.log("debug", "Incoming s2s connection"); |
583 | |
584 local filter = initialize_filters(session); | |
585 local w = conn.write; | |
586 session.sends2s = function (t) | |
587 log("debug", "sending: %s", t.top_tag and t:top_tag() or t:match("^([^>]*>?)")); | |
588 if t.name then | |
589 t = filter("stanzas/out", t); | |
590 end | |
591 if t then | |
592 t = filter("bytes/out", tostring(t)); | |
593 if t then | |
594 return w(conn, t); | |
595 end | |
596 end | |
597 end | |
598 | |
599 initialize_session(session); | 599 initialize_session(session); |
600 else -- Outgoing session connected | 600 else -- Outgoing session connected |
601 session:open_stream(session.from_host, session.to_host); | 601 session:open_stream(session.from_host, session.to_host); |
602 end | 602 end |
603 session.ip = conn:ip(); | 603 session.ip = conn:ip(); |