summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-11-27Sluift: Added handling of roster push eventRoger Planas
Swiften handles roster push event notifications, but those were not passed to Sluift, so a Sluift client, when querying events, would not be aware if an XMPP server roster pushes. This patch adds extra events types to Sluift so that method for_each_event reports roster pushes notifications. Test-information: Used sluift client to retrieve all items after adding, removing and updating roster items, and now Sluift clients can see these events. Change-Id: Ide5597bf2b39e3cc20014c66ba9153c551eec670
2018-10-04Prevent connect on active sluift clients and componentsEdwin Mons
Connect should not be called twice on clients or compoments without disconnecting first. While this worked in some cases, mixing connect options, specifically first trying without, and then with a bosh_url, would lead to asserts being triggered. The connect logic now checks whether there's already a connection in progress or established, and raises a Lua exception early if there is. Test-Information: Tested on macOS 10.13 Connected components and clients with invalid and valid hosts, and with valid and invalid bosh_urls, all with and without disconnecting in between attempts. No asserts were triggered, and appropriate Lua exceptions were thrown. Change-Id: I6b91b57945844bce7fce0073e5d0fe199ab815d5
2017-05-05Sluift: Enable more options to be passed to connect()Roger Planas
There are many connection options that Sluift enables (bosh_url, tls, etc..) but only host/port were understood by connect(), the rest were meant to be set by using set_options(). This can be sometimes annoying, so to make things uniform, now connect() should accept the same options settable in set_options() Test-information: Run test to check you can pass values to connect() rather than set_options() and things worked. Change-Id: Ic79aa5c6b232ddc2ffcfc3c14aa6f31233242314
2017-01-27Sluift: Add handling of block/unblock eventsRoger Planas
Swiften handles blocklist event notifications, but those were not passed to Sluift, so a Sluift client, when querying events, would not be aware if an XMPP server pushes block/unblock. This patch adds an extra event type to Sluift so that method for_each_event reports block/unblock notifications, in addition to a new API 'get_block_list' to retrieve the blocklist from the server. Test-information: Used Sluift client to retrieve blocklist and it is as expected. Also used client to retrieve all items after adding, removing and removing all items in the blocklist, and Sluift clients can now see these events. Change-Id: I0b76289ebd9e63505ff8a99cd9c0aa0e93af0c22
2016-04-04Modernize code to use C++11 shared_ptr instead of Boost'sTobias Markmann
This change was done by applying the following 'gsed' replacement calls to all source files: 's/\#include <boost\/shared_ptr\.hpp>/\#include <memory>/g' 's/\#include <boost\/enable_shared_from_this\.hpp>/\#include <memory>/g' 's/\#include <boost\/smart_ptr\/make_shared\.hpp>/\#include <memory>/g' 's/\#include <boost\/make_shared\.hpp>/\#include <memory>/g' 's/\#include <boost\/weak_ptr\.hpp>/\#include <memory>/g' 's/boost::make_shared/std::make_shared/g' 's/boost::dynamic_pointer_cast/std::dynamic_pointer_cast/g' 's/boost::shared_ptr/std::shared_ptr/g' 's/boost::weak_ptr/std::weak_ptr/g' 's/boost::enable_shared_from_this/std::enable_shared_from_this/g' The remaining issues have been fixed manually. Test-Information: Code builds on OS X 10.11.4 and unit tests pass. Change-Id: Ia7ae34eab869fb9ad6387a1348426b71ae4acd5f
2016-04-01Modernize code to use C++11 nullptr using clang-tidyTobias Markmann
Run 'clang-tidy -fix -checks=modernize-use-nullptr' on all source code files on OS X. This does not modernize platform specific code on Linux and Windows Test-Information: Code builds and unit tests pass on OS X 10.11.4. Change-Id: Ic43ffeb1b76c1a933a55af03db3c54977f5f60dd
2016-03-31Convert tabs to 4 spaces for all source filesTobias Markmann
Removed trailing spaces and whitespace on empty lines in the process. Changed CheckTabs.py tool to disallow hard tabs in source files. Test-Information: Manually checked 30 random files that the conversion worked as expected. Change-Id: I874f99d617bd3d2bb55f02d58f22f58f9b094480
2016-03-30Apply consistent #include grouping and sorting styleTobias Markmann
Changed "" style includes to <> style. Test-Information: Build with Clang 3.9.0 and ran all tests on OS X 10.11.4. Change-Id: Ic05e53f2e5dba39cc1307b116fc5f17b62ab9eb8
2016-02-10Sluift: Add timeout to roster receiving operationsRoger Planas
This avoids Sluift indefinitely waiting if the server does not respond Test-Information: Before the patch, a sluift client would wait indefinitely if a buggy XMPP server does not respond. With this patch, sluift clients now timeout and through an exception after SLUIFT_TIMEOUT when the server does not respond. Change-Id: I9d36f53a8f4d5b3d594cef68c42de38fd5a1c296
2014-12-15Update Copyright In SluiftKevin Smith
Change-Id: I19f8ae342e028a6a7b4b13758f2e8c170a1db80c
2014-06-22Sluift component supportEdwin Mons
Change-Id: Ib8af01c04c866e198c04d35236dea4da464c9116
2014-02-02Sluift: Add missing headersRemko Tronçon
Change-Id: Ie4629a10a26c3c628a67fff1bd634f07a698a948
2014-01-18Sluift: Keep unprocessed events in queueRemko Tronçon
Iterators over specific events (e.g. get_next_message) would discard other events arriving in the meantime. This no longer is the case. Change-Id: I615295695f7104eff7c4c9a642aa57f7c78a08c9
2014-01-18Sluift: Refactor global debug & timeout options.Remko Tronçon
Use regular table values on the sluift table. Enable enabling tracing on a client after the fact. Change-Id: Iaa2bea61bdadf0b8dec4951654c402b7133c1151
2013-12-15Sluift: Fix default values for port and host for connectRoger Planas
Change-Id: Ia19e0a3763005df7fb7db6b57841d6559f74ef46
2013-11-19Sluift: fix debug output for BOSH connectionsEdwin Mons
Change-Id: I0bf798200e5e74e682eeab688f3ae79e49c73ed2
2013-10-28Add port option to Sluift client connectRoger
Provide a mechanism to allow setting both the port and hostname for a Sluift client connection. By default Sluift leave port to -1 to use the port discovered by SRV lookups, with 5222 as a fallback. With this change, the port is now manually configurable as well. Change-Id: Idef5457e95127cfa86181b462d9ef42aa4f096ff
2013-09-01Sluift: More PubSub convenience methods & use cases.Remko Tronçon
- Convenience iterators to PubSub and PubSubNode. - Retrieving X most recent items - Retrieving a single item - Fixed GeoLocation serializer Change-Id: Ib4ecde225fb274b21163fcc9b52e19b0d3431860
2013-08-27PubSub implementation & Sluift refactoring.Remko Tronçon
Change-Id: I04ff7111b73565c00bff6db183451774a633344f