buffet: Add proper XML parsing for XMPP streams
For large command notifications, a single XMPP stanza can be split
into a number of TCP packets. In order to handle large stanzas and
in order to help with implementing TLS support for XMPP, added an
expat-based XML parser on top of XMPP stream, to make sure that
the stanzas are processed when all the data for a complete XML tag
has arrived.
BUG=brillo:458
TEST=`FEATURES=test emerge-link buffet`
Change-Id: I560f40dafb31c6e6b9e645d232453338ee4fbbef
Reviewed-on: https://chromium-review.googlesource.com/271592
Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/buffet.gyp b/buffet/buffet.gyp
index a68d772..0d6fd92 100644
--- a/buffet/buffet.gyp
+++ b/buffet/buffet.gyp
@@ -3,6 +3,7 @@
'variables': {
'deps': [
'dbus-1',
+ 'expat',
'libchrome-<(libbase_ver)',
'libchromeos-<(libbase_ver)',
],
@@ -39,7 +40,9 @@
'dbus_bindings/org.chromium.Buffet.Manager.xml',
'dbus_constants.cc',
'manager.cc',
+ 'notification/xml_node.cc',
'notification/xmpp_channel.cc',
+ 'notification/xmpp_stream_parser.cc',
'registration_status.cc',
'storage_impls.cc',
'states/error_codes.cc',
@@ -120,7 +123,9 @@
'commands/schema_utils_unittest.cc',
'commands/unittest_utils.cc',
'device_registration_info_unittest.cc',
+ 'notification/xml_node_unittest.cc',
'notification/xmpp_channel_unittest.cc',
+ 'notification/xmpp_stream_parser_unittest.cc',
'states/state_change_queue_unittest.cc',
'states/state_manager_unittest.cc',
'states/state_package_unittest.cc',