summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-09-29Fix uninitialised class membersTobias Markmann
Initialised previously uninitialised class members. Changed some raw pointers to std::unique_ptr for clearer and automatically initialised code. Test-Information: Builds on macOS 10.12 and unit tests pass in ASAN-enabled build. Change-Id: I7900fe6131119c228ca92c79c0ee8125137f2e48
2016-09-29Fix potential resource leaksTobias Markmann
IDGenerator was missing the virtual keyword on its method which is reimplemented by SimpleIDGenerator. Some other classes were missing destructors or virtual destructors. Test-Information: Builds on macOS 10.12 with Qt 5.5.1, all unit tests pass. Change-Id: I482bc249578d38a922256d1fa5241515ce45d0c0
2016-07-11Fix handling of incorrect MUC component behaviorTobias Markmann
Swift used to crash when a MUC component returned multiple unavailable presences on rejoin of a room hosted on a restarting buggy MUC component. Test-Information: Added test case that used to crash Swift. Tests pass without crash on OS X 10.11.4 Change-Id: I52280976944170c6e143197d4b3dc517dc13ecbb
2016-05-25Remove unnecessary include of iostream headerTobias Markmann
Move std::cout/cerr logging to SWIFT_LOG. Test-Information: Builds and all tests pass on OS X 10.11.5. Change-Id: I0a0c24654a8b3abf3244a79fd6d970eee90559d0
2016-04-05Migrate to Boost.Signals2 from Boost.SignalsTobias Markmann
Boost.Signals was deprecated and is not improved further. This patch removes Boost.Signals from 3rdParty and adds Boost.Signals2 and its dependencies. Also removed the Qt signals compatibility file Swiften/Base/boost_bsignals.h. Test-Information: Build and ran unit tests on OS X 10.11.4. Confirmed successful login using Swift client. Change-Id: Ie6e3b2d15aac2462cda95401582f5287a479fb54
2016-04-04Modernize code to use range based for loops using clang-tidyTobias Markmann
Run 'clang-tidy -fix -checks=modernize-loop-convert' 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: I65b99e0978cfab8ca6de2a3e5342e7a81416c12c
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-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
2015-06-08Add missing SWIFTEN_API annotations to public Swiften APITobias Markmann
Test-Information: Tested build on Windows 8 with VS 2014 and ran unit tests. Change-Id: I3d8096df4801be6901f22564e36eecba0e7310c4
2014-12-15Update Copyright in SwiftenKevin Smith
Change-Id: I94ab4bbb68c603fe872abeb8090575de042f5cb4
2014-10-30Only call MUC::onJoinComplete signal once per MUC join.Tobias Markmann
Old versions of Prosody do not support instant rooms, i.e. do not respond to the data form submit. It also pretends all rooms exist all the time and thus will never send status 201. This change will mark the room join as complete if we didn't receive status 201 but the join was otherwise successful. Test-Information: Tested this change against M-Link, Prosody nightly (which behaves according to XEP-0045), Prosody 0.9 (which eats the data form submit for instant rooms), and Openfire with Swift. Change-Id: I63f5488433110231ca7d0a6834161a2acd2cfc73
2014-10-30Resend presence to MUC on join completion only if it changed since join.Tobias Markmann
Test-Information: Added test case to assure presence is not resend after join completion if it did not change. The other test cases are untouched and still all succeed. Change-Id: I2aace1aee8ca3deab9cd9050a25233617b3b0678
2014-10-17Implement support for displaying nickname changes.Tobias Markmann
This implements Swiften API for changing nicknames in MUC and correctly detecting nick name changes. In addition Swift now displays nickname changes as such and not as join/leave of a user. In addition, handling of nickname changes is integrated in ChatsManager and ChatControllers so that they are forwarded to PM chats of MUCs. Test-Information: Added unit tests for change of own nickname and nickname changes of others. Tested correct detection of nickname changes in a MUC with a Psi user changing its nickname and Swift correctly detecting and displaying it. Change-Id: I3287ba6ceeccd3be5cfb591acd6f88bffc9a43b2
2014-05-18Fix MUC memory leaksRemko Tronçon
Change-Id: Icdd7f33012dec3fe7779ec4ad64df1c30d50ea77
2013-12-18Add affiliations to tooltips for MUC occupant lists.Richard Maudsley
Also extracts MUC into an interface and MUCImpl the existing implementation, adds a MockMUC for using in unit tests, and adds unit tests for the MUCController changes. Change-Id: I25034384f59d3c274c46ffc37b2d1ae60ec660f4
2013-10-04Fix heap-use-after-free bugs reported by asan.Tobias Markmann
One only showed in netbook-mode. Another got introduced by the impromptu patch. Change-Id: Id878d001b6bac67f943a86386300c8a0db3bc74e License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
2013-10-01Adding support for impromptu MUCs.Tobias Markmann
Change-Id: I363e9d740bbec311454827645f4ea6df8bb60bed License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
2012-07-14Initial DLL support for Swiften.Remko Tronçon
All applications succesfully link against Swiften.dll.
2012-03-20boost::shared_ptr<?>(new ?(...)) -> boost::make_shared<?>(...) ↵Tobias Markmann
transformation where possible. License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php
2012-02-29Don't crash when trying to join MUCs offlineKevin Smith
Resolves: #940
2012-02-14Correctly use bare JIDs when banning people from roomsKevin Smith
2011-10-19For abnormal MUC parts, give the reason.Kevin Smith
Makes abnormals immune to presence folding. Resolves: #1004
2011-10-19Use real JID for bans, not room JID.Kevin Smith
Resolves: #1020
2011-10-07Allow affiliation editing in MUCs.Kevin Smith
Resolves: #986 Resolves: #988
2011-10-05Allow role changing in MUCs.Kevin Smith
Resolves: #987
2011-10-05Allow joining passworded MUCs.Kevin Smith
Resolves: #991
2011-10-04Allow both instant and reserved rooms.Kevin Smith
Resolves: #1006
2011-10-03Simple MUC invites.Kevin Smith
Resolves: #152
2011-09-28Destroy rooms.Kevin Smith
Resolves: #990
2011-09-28Parse MUC status codes correctly again.Kevin Smith
Means rooms will be unlocked after creation correctly.
2011-09-27Allow room configuration.Kevin Smith
Resolves: #989
2011-09-27Add support for clearing chat recents.Kevin Smith
Resolves: #1001
2011-09-26Allow setting of room topicsKevin Smith
2011-09-23Add support for kicking people from MUCs.Kevin Smith
This also introduces a new DOM-like parser structure, used for the MUC parsers. Partially Resolves: #689
2011-06-13Added CppCheck script.Remko Tronçon
Tweaked the sources to satisfy cppcheck.
2011-05-02Add a generic erase() algorithm.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-03-06A start on Swiftob, a Swiften-based chatbot.Kevin Smith
2011-02-14Removed Swift::String.Remko Tronçon
2011-02-05Fixed some bugs with MUC joining.Remko Tronçon
2011-01-18Cleaned up some code.Remko Tronçon
2011-01-12Refactored MUC code a bit.Remko Tronçon
2010-12-20Don't immediately send presence unneccesarily when registering directed ↵Kevin Smith
presence senders. Hopefully Resolves: #691 Release-Notes: We hope to have fixed the bug where a MUC room would go into loop of parting and joining continually.
2010-12-05Don't mess up avatars after a MUC reconnect.Kevin Smith
Resolves: #702
2010-11-28Change error from optional to shared_ptr in GenericRequestRemko Tronçon
Resolves: #692
2010-11-15Clean MUC joins slightly.Kevin Smith
In an attempt to catch errors, this doesn't Resolves: #691 but does add an assert that may help. It also fixes an error with created rooms not receiving updates presences. Release-Notes: Newly-created rooms will now receive your presence updates, consistent with existing rooms.
2010-11-09Only request new MUC context when rejoining.Kevin Smith
Resolves: #542 Release-Notes: On reconnects, existing MUC history now won't be replayed.
2010-11-03Refactoring Presence & MUC handling.Remko Tronçon