34 local sm_new_session, sm_destroy_session = sessionmanager.new_session, sessionmanager.destroy_session; --import("core.sessionmanager", "new_session", "destroy_session"); |
34 local sm_new_session, sm_destroy_session = sessionmanager.new_session, sessionmanager.destroy_session; --import("core.sessionmanager", "new_session", "destroy_session"); |
35 local sm_streamopened = sessionmanager.streamopened; |
35 local sm_streamopened = sessionmanager.streamopened; |
36 local sm_streamclosed = sessionmanager.streamclosed; |
36 local sm_streamclosed = sessionmanager.streamclosed; |
37 local st = stanza; |
37 local st = stanza; |
38 |
38 |
39 local stream_callbacks = { streamopened = sm_streamopened, streamclosed = sm_streamclosed, handlestanza = core_process_stanza }; |
39 local stream_callbacks = { ns = "http://etherx.jabber.org/streams", streamopened = sm_streamopened, streamclosed = sm_streamclosed, handlestanza = core_process_stanza }; |
|
40 |
|
41 function stream_callbacks.error(session, error, data) |
|
42 if error == "no-stream" then |
|
43 session:close("invalid-namespace"); |
|
44 else |
|
45 session.log("debug", "Client XML parse error: %s", tostring(error)); |
|
46 session:close("xml-not-well-formed"); |
|
47 end |
|
48 end |
40 |
49 |
41 local sessions = {}; |
50 local sessions = {}; |
42 local xmppclient = { default_port = 5222, default_mode = "*a" }; |
51 local xmppclient = { default_port = 5222, default_mode = "*a" }; |
43 |
52 |
44 -- These are session methods -- |
53 -- These are session methods -- |
49 session.parser = parser; |
58 session.parser = parser; |
50 |
59 |
51 session.notopen = true; |
60 session.notopen = true; |
52 |
61 |
53 function session.data(conn, data) |
62 function session.data(conn, data) |
54 parser:parse(data); |
63 local ok, err = parser:parse(data); |
|
64 if ok then return; end |
|
65 session:close("xml-not-well-formed"); |
55 end |
66 end |
|
67 |
56 return true; |
68 return true; |
57 end |
69 end |
58 |
70 |
59 |
71 |
60 local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'}; |
72 local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'}; |