summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-02-11Remove port forwardings on stop or destruction of SOCKS5BytestreamServerManager.Tobias Markmann
Test-Information: Verified with home router that supports UPnP that the forwards are removed on stop. Change-Id: Ie2a8fd56828cc01e456d40ff4e5500d3387c7afe
2015-02-11Restrict generated candidates and selected candidates to those allowedTobias Markmann
by supplied FileTransferOptions. Test-Information: Automatically tested all FileTransferOption combinations and verified it generates only allowed candidates. Change-Id: I0b3ce983a3f230a4c2c3940f5d928fd74d6012b6
2015-02-11Support domain names in S5B proxy <streamhost> tags.Tobias Markmann
S5BProxyManager now resolves DNS names of proxy entries discovered via service discovery. Test-Information: Tested against a XMPP installation that uses domain names in proxy entires. Change-Id: I728243333ec6e62e86f088f2a7b6e222c629757b
2015-02-09Fix memory leaks reported by LSANTobias Markmann
Qt models are not owned by their widgets. They must be deleted manually or a parent has to be specified for them which will take care of deletion. The same goes for delegates and their views. Test-Information: Tested with Clang's leak sanitizer (part of address sanitizer). The leak reports for the respective lines are gone with this fix. Change-Id: Ia7407cb20ae9e4ccc2e1cf48c88877c2f87352e1
2015-02-09Update DiscoInfo string for Jingle file-transfer to :4 and remove obsolete filesTobias Markmann
Test-Information: Unit tests run successful on OS X 10.9.5 Change-Id: I9df0c798723f79df85cfc7301aed0a7ad6309904
2015-02-09Fix data race in DummyEventLoop and BoostConnection(Server)Test reported by TSANTobias Markmann
The data race is on the events_ member in DummyEventLoop. A BoostIOServerThread can post events to the DummyEventLoop and thereby access its events_ data member while the test's main code processes events of the loop. To prevent access to the DummyEventLoop by the BoostIOServiceThread after the DummyEventLoop is deleted, the BoostIOServiceThread is deleted before the DummyEventLoop. Process remaining events in BoostConnectionTest::tearDown like we do in BoostConnectionServerTest::tearDown. Test-Information: Run multiple times on NetworkTest as TSAN enabled build on Linux. Without the patch it reports a data race for the events_ deque member. Change-Id: I3c85535338fc0ce0263dbfc3534aceb1dd09c137
2015-02-08Fix data race in PlatformNATTraversalWorker reported by TSANTobias Markmann
Test-Information: Run on ClientTest as TSAN enabled build on Linux. Without the patch it reports a data race for the stopRequested member. Change-Id: I98373966c45d4c6e247f69fa8850278d885556f7
2015-02-08Fix data race in PlatformDomainNameResolver reported by TSANTobias Markmann
Test-Information: All tests still succeed on OS X and Linux. Change-Id: I2c02252b646b539b960cad18b6f88807afd84d32
2015-02-03Extend file transfer options class with proxy, assisted and direct options.Tobias Markmann
Change-Id: Icfa2a22aa3c443d2a400a3466bf523a8c91ba85a
2015-02-03Added support for dstaddr attribute for SOCKS5 bytestream jingleTobias Markmann
transport method element, parser and serializer. Test-Information: Adjusted parser and serializer tests to cover this feature. Change-Id: I660ef8d292a0fe09f80c042bc6df417b0e7525b1
2015-02-03Use "Swift" description when adding UPnP port forwardings.Tobias Markmann
Test-Information: Verified using Port Map.app tool and router supporting UPnP. Change-Id: I8d43a812f136979a70ef4dc62ff45448c6603b8b
2015-02-03Stlye fix and declaring EventLoop implementations' dtors as virtual.Tobias Markmann
Test-Information: Unit tests run successfully. Change-Id: I5df196c8bc642eeff4997558c3c56c6fa03bef16
2015-02-03Cleaning up SendFile example.Tobias Markmann
Update SendFile.cpp to recent Jingle file-transfer changes and clean up old code. Test-Information: Verified that a file-transfer between SendFile and ReceiveFile examples works. Change-Id: I342cfa2f4949ffcc1e227e6ebdd10de84e5d6a8a
2015-02-03Limit NAT-PMP detection timeout to 10 seconds.Tobias Markmann
libnatpmp has a high (over 2 minutes) timeout for discovery of NAT-PMP support. This leads to a bad user experience when there is no NAT-PMP support in the network. Test-Information: Tested this in an university network where neither UPnP nor NAT-PMP is available. File-transfers waited more than 2 minutes for an answer of a NAT-PMP device before starting the file-transfer. Change-Id: I3ceaac7f89c982ffa683ee367d5ea3c3d4a2c5ca
2015-02-03Add missing include for std::stringTobias Markmann
Test-Information: Unit tests succeed on OS X 10.9.5. Change-Id: Ie683dd1110640b1b5ce988f44f17cd3588663342
2015-02-03Update Jingle FT protocol to namespace verison ↵Tobias Markmann
urn:xmpp:jingle:apps:file-transfer:4. Test-Information: Adjusted unit tests and successfully build/run them on OS X 10.9.5. Change-Id: I63789e3fb351999f719157b54fa9fcf95f40fb07
2015-02-02Fix IPv6 name resolution on Linux systemsTobias Markmann
Boost query objects are setup with the flag address_configured by default which only does IPv6 resoltuion if a non-loopback device is found. This detection mechanism does not seem to work. At least in my test VM there was a non-loopback device with IPv6 address and it still reported no IPv6 addresses. Setting the flag to passive will have it always send queries for AAAA records. Test-Informatioon: Tested on Mac OS X 10.9.5 and Elementary OS 0.2.1 (Linux). Change-Id: I346bcb7982dee465aa7847a7bae8981a16f2d3bc
2015-01-19Declare SimpleIDGenerator as an implementation of the IDGenerator abstract ↵Tobias Markmann
class. In addition this commit also adds brief documentation for the SimpleIDGenerator. Test-Information: Builds and runs fine on OS X 10.9.5. Change-Id: I87360933d50c7bb56b19859c9890d9000d3c147b
2014-12-18Refactoring: Rename roomNr -> roomCount.Tobias Markmann
Test-Information: Builds on OS X 10.9.5. Change-Id: I53498fabfabb969c907bf95ff89e19952572115e
2014-12-18Add example showing how to login, list rooms at a MUC service, join theTobias Markmann
first result and show incoming messages. Test-Information: Tested on OS X 10.9.5 with a Prosody MUC service. Change-Id: If64e80bf4fc70366fabb3fd86d6da67a6f307280
2014-12-15Update Copyright in SwiftenKevin Smith
Change-Id: I94ab4bbb68c603fe872abeb8090575de042f5cb4
2014-12-14Add index element to ResultSetEdwin Mons
The index element was missing, added it in Swiften and Sluift. Change-Id: I709037fafcc5242c7c2e2fddb8469316c106d51a
2014-12-10Add MAMFinSerializer to FullPayloadSerializerCollection.Alex Clayton
MAMFinSerializer should be in teh FullPayloadSerializerCollection. FogBugz: Bug: Release-notes: Manual: Test-information: Ran ./scons check=1 as a sanity test. Code compiled and tests ran ok. Change-Id: Icde00cbff7ffbf050033d5abd4ce89ce849a2479 Reviewer:
2014-11-24Add missing includeKevin Smith
Change-Id: Ida1dd60a01e16e71831221b7e2fcfb74fdde54f3
2014-11-17Compile Cocoa event loop in xcode tooKevin Smith
Change-Id: I2494ca43f30c3a7e90fe38f20df421e53972974c
2014-11-17Add missing include gueards.Tobias Markmann
Test-Information: No testing required. Change-Id: I1411ba4dd555613beed43d864f025dde41f940db
2014-11-13Fix iOS build and add iOS build documentation.Tobias Markmann
Test-Information: Tested on OS X 10.9.5 with XCode 6.1. Change-Id: Ib223977192fce274e5585ef0768fd755b1fa734d
2014-10-30Add node attribute to MAMQueryEdwin Mons
Added node to MAMQuery, the serializers, unit tests and the Sluift ElementConvertor. Test-Information: Unit tests pass on OS X 10.9 Sluift script querying a pubsub archive sent the right query. Change-Id: If8620104a11b402d7b51a6e9b34ccbe1b7e6d15a
2014-10-30Brining XEP-0313 (MAM) implementation in line with version 3.0.Tobias Markmann
Added support for <fin/> element, including serializer/parsers and unit tests for them. Added more unit tests based on XEP examples for existing parsers. Removed unneccesarry includes from existing MAM implementation. Test-Information: Existing and new unit tests pass successfully. Change-Id: I7e6bf85e0961d59801b452e4559cc1db9e9e6ed8
2014-10-30Add missing virtual and SWIFTEN_OVERRIDE annotations to reduce warnings with ↵Tobias Markmann
C++11. Test-Information: Tested with Clang 3.6.0. Change-Id: I1f9ae8ae535d90f92b7263e86b51fe64b15524b4
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-28Add missing default c-tor, copy c-tor and assignment operator to element for ↵Tobias Markmann
smooth C++11 compilation. Test-Information: 
Tested compilation with Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn) and Qt 5.3. Change-Id: I56444a4c1a540754696e1f4ec7bc04cf59920f99
2014-10-21Fix libunbound support in Swiften which was broken since API change in 8ec22a9.Tobias Markmann
Test-Information: Build for Android 4.3 (arm) and successfully ran checker in emulator VM. Change-Id: Iedaae5df367ee86bfe2375879b0e0981deef9b0a
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-10-16Specify minimal Windows API version for Windows builds.Tobias Markmann
This sets _WIN32_WINNT and NTDDI_VERSION defines. The minimal version required is Windows Vista since smart card support requires this version. Test-Information: With these defines Swift/-en builds successfully on Windows 8.1 with VisualStudio Express 2013 for Desktop. Change-Id: I8745f201559cd9c401caef7661f09939dffae38f
2014-10-14Remove empty fields from XEP-0055 search query before sending it over the wire.Tobias Markmann
This clears both, empty fields of XEP-0004 data forms and the XEP-0055 predefiened fixed form. Test-Information: Verified using Swift's debug console and M-Link. Change-Id: I3cd2314abfe5111f66569d39aae9b8587157ec07
2014-10-13Correctly set 'jabber:client' namespace on message/presence/IQ stanzas for ↵Tobias Markmann
BOSH connections. Test-Information: Tested with Swift and interoperability against Psi. Swift debug log now correctly shows the namespace being set. Previously Psi did not display the body of messages due to them being in the worng namespace. Now as they are in the correct namespace messages are displayed correctly by Psi. Change-Id: I547e335100abebfcf170cf7f41b86fd2dbb01692
2014-10-08Update vCard cache on 'Show Profile' if cached vCard is older than 5 minutes.Tobias Markmann
Store last write time in memory in VCardStorage. VCardManager::getVCardAndRequestWhenNeeded will check an optional parameter and the last write time to determine if the cached vCard is fresh enough. Test-Information: ALl unit tests still run fine and tested that it fetches the vCard again when you open the 'Show Profile' dialog after 5 minutes. Change-Id: I27d7f931188a43aa090348014bcdbdf6d534c5a0
2014-10-06Allow scons to not require an IDN libraryKevin Smith
This will clearly break all the tests, Swift, Sluift etc., but is useful if someone wants to use Swiften and inject their own IDN provider. Test-information: Compiles with Isode's IDN provider Change-Id: Ia55991054f42f332bf34b653d7b55f64f654820e
2014-10-01Port many of Isode's local fixes upstreamKevin Smith
Includes fixes to: Build with new Visual Studio and Boost Avoid error caused when Avahi is present but Qt is not Make declaration of XMPPRosterImpl::addContact consistent with implementation Includes enhancements to: Allow user-configurable mt.exe Allow splitting openssl paths Allow disabling gconf lookup Make idn support optional Allow disabling various library detections Remove use of non-Python2.4 features in sconscripts Test-Information: Builds Change-Id: Iee91ee80291a8bdf87cc169c915e4dad1cc1055b
2014-09-18Only allocate BlockResponder and UnblockResponder once. Fixes ASANTobias Markmann
heap-used-after-free report. Tested via ASAN, report gone after applying this change. It previously occured during machine sleep/resume or logout/login. Change-Id: I8af6a3c290457a4a98f94486a225f9dfb92ca885 License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
2014-09-17Handle Isode's IQ ForwardingKevin Smith
Change-Id: I3b358e6a60f1ff546f2e578b6e0a54072b4c6da5
2014-09-16Fix boost::optional abuses that stop compilation with latest boostKevin Smith
Test-Information: Compiles and unit tests pass with boost 1.56 Change-Id: I6525399babc5f6c88fb499af80e9f07c1c4d0cdb
2014-08-21Clean up compilation errors in Swiften due to boost 1.56Kevin Smith
Can no longer implicitly convert boost::optional to bool temporaries. Also fixed assorted uses of cerr where logging was appropriate. Test-Information: Swiften compiles against boost 1.56 (link fails for me so far) Change-Id: Iec058af933a82a987da64291435a475f8b40ef96
2014-08-10Fix invalid characters being allowed in JID domainsRichard Maudsley
Test-Information: Prepare valid and invalid JIDs and make sure that isValid() is reported correctly. Added unit tests. Change-Id: Ic4d86f8b6ea9defc517ada2f8e3cc54979237cf4
2014-08-10Fix blocklist not being requested on reconnect.Richard Maudsley
Test-Information: Connect client and confirm that blocklist is requested only once. Reconnect client and confirm that blocklist is requested again. Change-Id: Iebf38c9f3c1ff9749c239b6cf785feb7a539a9b1
2014-07-14Show status message instead of empty VCard dialog when receiving VCard or ↵Richard Maudsley
when an empty VCard is received. Test-Information: Request VCard from a user in a MUC that is configured to NOT allow VCards from anonymous users and observe that "empty vcard" status message is displayed instead of an empty dialog. Check that VCard is displayed properly when a VCard is available and that the throbber is still functioning as before. Change-Id: I098b3ad9495b06b4efbca1547021311f5205cbf2
2014-07-11Apply a Connector timeout even if not using SRV lookups.Kevin Smith
Test-Information: Unit tests only Change-Id: I7bc7d48a041f33b1a8527b5be4a476c12f796b34
2014-06-24Fix old avatar being displayed in QtRosterHeader when cleared.Richard Maudsley
Test-Information: Added unit tests for AvatarManagerImpl and CombinedAvatarProvider. Updated test cases to distinguish between error case and empty avatar. Tested changing between blank and non-blank avatars while watching MUC and 1-to-1 chats. Change-Id: I0bea89c7a22ae9c44a0b126e672a7af94b6f5049