summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-04-12Use C++11 threading library instead of Boost.ThreadTobias Markmann
This cuts down our dependency on Boost further. Another benefit is that mutex classes of C++11 standard library are recognized by TSAN. Test-Information: Unit and integration tests pass on OS X 10.11.4. Change-Id: Id4dcdb42e3d5155e107ce1d7618acbf26f913b6f
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-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-02-29Fix data race in BoostConnection reported by TSANswift-4.0alphaTobias Markmann
ThreadSanitizer reported a data-race between Boost's socket close() and async_read_some(). Test-Information: Verified all tests still pass and that TSAN does not report an error anymore in a scenario where a Client connects/dis- connects randomly. Tested on Debian 8 and OS X 10.11.3. Change-Id: I5e705efb15bee767dd5a55539854b5e488b3bf64
2016-01-12Listen to IPv6 any address instead of only IPv4Tobias Markmann
This should enable IPv4/IPv6 dual-stack support for Swift(-en) Jingle file-transfer support. Add Connection::getRemoteAddress() method. Test-Information: Tested IPv6 file-transfer and IPv4 file-transfer between two Swift instances. Added integration test verifying IPv4 only, IPv6 only and IPv4/IPv6 dual-stack support on the running platform. Additionally added test to verify remote addresses on dual-stack server. Change-Id: Ie384a71833eacca554f69e6f12a1c8330d0d747f
2014-12-15Update Copyright in SwiftenKevin Smith
Change-Id: I94ab4bbb68c603fe872abeb8090575de042f5cb4
2012-12-30Enable & fix pedantic CLang warnings.Remko Tronçon
Change-Id: I70109624b4bd7aab9ba679a3eaabc225dd64a03a
2012-02-03Correct previous patch.Remko Tronçon
2012-02-03Call shutdown() on socket before close().Remko Tronçon
As recommended by boost asio documentation.
2012-02-03Close socket immediately after last pending write finished.Remko Tronçon
This should fix a hang on disconnect().
2011-10-10In case of writing when calling disconnect() postpone socket.close() to when ↵Tobias Markmann
writing has finished. License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php
2011-09-29Temporarily reverting the previous patch, because of unforeseen problems.Remko Tronçon
Will recommit at a later time. This reverts commit 639c0b7c7fe05bd7a686d16d93f2720bd3bfad99.
2011-09-29In case of writing when calling disconnect() postpone socket.close() to when ↵Tobias Markmann
writing has finished. License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php
2011-09-28Pass read data from connection via shared_ptr.Remko Tronçon
This should avoid unnecessary copying of the received data while being processed by the event loop.
2011-05-18Propagate use of SafeByteArray down to the connection.Remko Tronçon
2011-05-05Replace ByteArray by typedef.Remko Tronçon
2011-04-30Replace #icnlude "" by #include <> in Swiften.Remko Tronçon
2011-04-18Cleaned up includes.swift-2.0alphaRemko Tronçon
2011-02-14Removed Swift::String.Remko Tronçon
2011-02-09Treat 'connection closed' as an error.Remko Tronçon
2011-01-26Make boost io_service a shared object.Remko Tronçon
This should avoid problems when destroying an event loop containing timer or network events, after the network factory (and io_service object) has disappeared (i.e. at shutdown).
2011-01-24Added debug output to boost connection.Remko Tronçon
2011-01-21Removed debug output from BoostConnection.Remko Tronçon
2011-01-15Wait to close the connection until pending writes are done.Remko Tronçon
This hopefully fixes the uninterruptable hang on exit.
2011-01-15Comply with asio's documentation that we cannot call async_write multiple ↵Remko Tronçon
times simultaniously.
2010-12-27Also emit connection disconnected signal when we initiate the disconnect.Remko Tronçon
2010-10-27Remove MainEventLoop singleton.Remko Tronçon
The event loop now needs to be explicitly passed to clients using it.
2010-10-21Added beginnings of outgoing file transfer to Swiften.Remko Tronçon
2010-04-08Added copyrights to Swiften.Kevin Smith
2010-03-28Moving submodule contents back.Remko Tronçon
2010-03-28Removing submodules.Remko Tronçon
2010-03-28Moved Swiften to a separate module.Remko Tronçon
2009-12-03DNS querying is now asynchronous.Remko Tronçon
This means we can now move them to a separate thread.
2009-07-19(Client)Session & Connection refactoring.Remko Tronçon
ClientSession no longer sets up a connection. Connection no longer resolves addresses.
2009-07-18Implement incoming linklocal connections.Remko Tronçon
2009-07-17Implemented clean session/connection shutdown.Remko Tronçon
2009-07-15Make stream stack layers reference counted.Remko Tronçon
2009-07-15Use shared_ptr for EventLoop owners.Remko Tronçon
2009-07-14Consolidating IncomingConnection & Connection.Remko Tronçon
BoostConnections no longer have their own thread, but are managed from a central Boost IO thread instead.
2009-06-01Import.Remko Tronçon