Mercurial > prosody-hg
comparison util/xmppstream.lua @ 2921:f0ddfd7739ea
util.xmppstream: new() now returns a parser object
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 22 Mar 2010 16:55:10 +0000 |
| parents | f3335285b20d |
| children | fc96d439453b |
comparison
equal
deleted
inserted
replaced
| 2920:f3335285b20d | 2921:f0ddfd7739ea |
|---|---|
| 5 -- This project is MIT/X11 licensed. Please see the | 5 -- This project is MIT/X11 licensed. Please see the |
| 6 -- COPYING file in the source package for more information. | 6 -- COPYING file in the source package for more information. |
| 7 -- | 7 -- |
| 8 | 8 |
| 9 | 9 |
| 10 local lxp = require "lxp"; | |
| 11 local st = require "util.stanza"; | |
| 10 | 12 |
| 11 require "util.stanza" | |
| 12 | |
| 13 local st = stanza; | |
| 14 local tostring = tostring; | 13 local tostring = tostring; |
| 15 local t_insert = table.insert; | 14 local t_insert = table.insert; |
| 16 local t_concat = table.concat; | 15 local t_concat = table.concat; |
| 17 | 16 |
| 18 local default_log = require "util.logger".init("xmlhandlers"); | 17 local default_log = require "util.logger".init("xmlhandlers"); |
| 19 | 18 |
| 20 local error = error; | 19 local error = error; |
| 21 | 20 |
| 22 module "xmppstream" | 21 module "xmppstream" |
| 23 | 22 |
| 23 local new_parser = lxp.new; | |
| 24 | |
| 24 local ns_prefixes = { | 25 local ns_prefixes = { |
| 25 ["http://www.w3.org/XML/1998/namespace"] = "xml"; | 26 ["http://www.w3.org/XML/1998/namespace"] = "xml"; |
| 26 }; | 27 }; |
| 27 | 28 |
| 28 local xmlns_streams = "http://etherx.jabber.org/streams"; | 29 local xmlns_streams = "http://etherx.jabber.org/streams"; |
| 29 | 30 |
| 30 local ns_separator = "\1"; | 31 local ns_separator = "\1"; |
| 31 local ns_pattern = "^([^"..ns_separator.."]*)"..ns_separator.."?(.*)$"; | 32 local ns_pattern = "^([^"..ns_separator.."]*)"..ns_separator.."?(.*)$"; |
| 32 | 33 |
| 33 function new(session, stream_callbacks) | 34 function new_sax_handlers(session, stream_callbacks) |
| 34 local chardata = {}; | 35 local chardata = {}; |
| 35 local xml_handlers = {}; | 36 local xml_handlers = {}; |
| 36 local log = session.log or default_log; | 37 local log = session.log or default_log; |
| 37 | 38 |
| 38 local cb_streamopened = stream_callbacks.streamopened; | 39 local cb_streamopened = stream_callbacks.streamopened; |
| 140 end | 141 end |
| 141 end | 142 end |
| 142 return xml_handlers; | 143 return xml_handlers; |
| 143 end | 144 end |
| 144 | 145 |
| 146 function new(session, stream_callbacks) | |
| 147 return new_parser(new_sax_handlers(session, stream_callbacks), ns_separator); | |
| 148 end | |
| 149 | |
| 145 return _M; | 150 return _M; |
