26 local s2s_new_incoming = require "core.s2smanager".new_incoming; |
26 local s2s_new_incoming = require "core.s2smanager".new_incoming; |
27 local s2s_streamopened = require "core.s2smanager".streamopened; |
27 local s2s_streamopened = require "core.s2smanager".streamopened; |
28 local s2s_streamclosed = require "core.s2smanager".streamclosed; |
28 local s2s_streamclosed = require "core.s2smanager".streamclosed; |
29 local s2s_destroy_session = require "core.s2smanager".destroy_session; |
29 local s2s_destroy_session = require "core.s2smanager".destroy_session; |
30 local s2s_attempt_connect = require "core.s2smanager".attempt_connection; |
30 local s2s_attempt_connect = require "core.s2smanager".attempt_connection; |
31 local stream_callbacks = { streamopened = s2s_streamopened, streamclosed = s2s_streamclosed, handlestanza = core_process_stanza }; |
31 local stream_callbacks = { ns = "http://etherx.jabber.org/streams", streamopened = s2s_streamopened, streamclosed = s2s_streamclosed, handlestanza = core_process_stanza }; |
|
32 |
|
33 function stream_callbacks.error(session, error, data) |
|
34 if error == "no-stream" then |
|
35 session:close("invalid-namespace"); |
|
36 else |
|
37 session.log("debug", "Server-to-server XML parse error: %s", tostring(error)); |
|
38 session:close("xml-not-well-formed"); |
|
39 end |
|
40 end |
32 |
41 |
33 local connlisteners_register = require "net.connlisteners".register; |
42 local connlisteners_register = require "net.connlisteners".register; |
34 |
43 |
35 local t_insert = table.insert; |
44 local t_insert = table.insert; |
36 local t_concat = table.concat; |
45 local t_concat = table.concat; |
51 session.parser = parser; |
60 session.parser = parser; |
52 |
61 |
53 session.notopen = true; |
62 session.notopen = true; |
54 |
63 |
55 function session.data(conn, data) |
64 function session.data(conn, data) |
56 parser:parse(data); |
65 local ok, err = parser:parse(data); |
|
66 if ok then return; end |
|
67 session:close("xml-not-well-formed"); |
57 end |
68 end |
|
69 |
58 return true; |
70 return true; |
59 end |
71 end |
60 |
72 |
61 |
73 |
62 local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'}; |
74 local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'}; |