Software / code / verse
Comparison
component.lua @ 161:b177bcea2006
squishy, verse.client, verse.component, verse.bosh: Port to util.xmppstream instead of xmlhandlers which has been removed from Prosody. Also remove util.ztact from squishy for the same reason.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Tue, 14 Dec 2010 16:04:29 +0000 |
| parent | 150:728cc7f2f0c2 |
| child | 282:52b971d9ebc3 |
comparison
equal
deleted
inserted
replaced
| 160:5cbbfe42212e | 161:b177bcea2006 |
|---|---|
| 8 | 8 |
| 9 -- Shortcuts to save having to load util.stanza | 9 -- Shortcuts to save having to load util.stanza |
| 10 verse.message, verse.presence, verse.iq, verse.stanza, verse.reply, verse.error_reply = | 10 verse.message, verse.presence, verse.iq, verse.stanza, verse.reply, verse.error_reply = |
| 11 st.message, st.presence, st.iq, st.stanza, st.reply, st.error_reply; | 11 st.message, st.presence, st.iq, st.stanza, st.reply, st.error_reply; |
| 12 | 12 |
| 13 local init_xmlhandlers = require "core.xmlhandlers"; | 13 local new_xmpp_stream = require "util.xmppstream".new; |
| 14 | 14 |
| 15 local xmlns_stream = "http://etherx.jabber.org/streams"; | 15 local xmlns_stream = "http://etherx.jabber.org/streams"; |
| 16 local xmlns_component = "jabber:component:accept"; | 16 local xmlns_component = "jabber:component:accept"; |
| 17 | 17 |
| 18 local stream_callbacks = { | 18 local stream_callbacks = { |
| 41 | 41 |
| 42 return stream:event("stanza", stanza); | 42 return stream:event("stanza", stanza); |
| 43 end | 43 end |
| 44 | 44 |
| 45 function stream:reset() | 45 function stream:reset() |
| 46 -- Reset stream | 46 if self.stream then |
| 47 local parser = lxp.new(init_xmlhandlers(self, stream_callbacks), "\1"); | 47 self.stream:reset(); |
| 48 self.parser = parser; | 48 else |
| 49 | 49 self.stream = new_xmpp_stream(self, stream_callbacks); |
| 50 end | |
| 50 self.notopen = true; | 51 self.notopen = true; |
| 51 | |
| 52 return true; | 52 return true; |
| 53 end | 53 end |
| 54 | 54 |
| 55 function stream:connect_component(jid, pass) | 55 function stream:connect_component(jid, pass) |
| 56 self.jid, self.password = jid, pass; | 56 self.jid, self.password = jid, pass; |
| 57 self.username, self.host, self.resource = jid_split(jid); | 57 self.username, self.host, self.resource = jid_split(jid); |
| 58 | 58 |
| 59 function self.data(conn, data) | 59 function self.data(conn, data) |
| 60 local ok, err = self.parser:parse(data); | 60 local ok, err = self.stream:feed(data); |
| 61 if ok then return; end | 61 if ok then return; end |
| 62 stream:debug("debug", "Received invalid XML (%s) %d bytes: %s", tostring(err), #data, data:sub(1, 300):gsub("[\r\n]+", " ")); | 62 stream:debug("debug", "Received invalid XML (%s) %d bytes: %s", tostring(err), #data, data:sub(1, 300):gsub("[\r\n]+", " ")); |
| 63 stream:close("xml-not-well-formed"); | 63 stream:close("xml-not-well-formed"); |
| 64 end | 64 end |
| 65 | 65 |