summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-03-28Change IQ handling to allow non-final IQ handlers/respondersTobias Markmann
Previously all IQ handlers were final. The IQ handles were processed in last-added-first order and if the IQ payload matched the handler payload, the IQ would only be passed to that handler. This conflicts with our IBBReceiveSession. When running multiple concurrent file-transfers using multiple IBBReceiveSessions there are multiple IQ handlers for IBB content; one for every transfer. This commit allows a Responder to be set as non-final. In this case unhandled IQs will not be responded with an error but returned to the IQRouter so it can pass it to the next possible IQ handler. Test-Information: Tested with ConcurrentFileTransferTest with runs multiple IBB transfers in parallel. Change-Id: I8237e234cbe5c110deaa8c3d6ba303b65fd53d00
2015-03-28Add missing line endingsTobias Markmann
Test-Information: Builds. Change-Id: Ica4b1bca4ff71f103ee5ebad707bc0f95595ad37
2015-03-27Fix OutgoingJingleFileTransferTest and enable it againTobias Markmann
Test-Information: Unit tests pass. Change-Id: I793fb65fd2e760daddab0142abc33d4aa5b4fce5
2015-03-19Fix for HTTPConnectProxiedConnection to support responses in piecesTobias Markmann
This fix lets HTTPConnectProxiedConnection buffer response data in pieces until the end of the HTTP header is reached. Only then it will try to parse the HTTP header. This is *not* the HTTP chunked transfer encoding. Test-Information: Adjusted one test to respond in pieces and added a new test case that verifies that response data is buffered. Change-Id: Icfb987bdf2fc5771401a8a9c6979fa9ad1eebdca
2015-03-18Add test for ChatStateSerializerTarun Gupta
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Test for ChatStateSerializer passes. Change-Id: I871490a647ee54631cad025fc71f900cc0fa9770
2015-03-16Add ability to modify HTTP CONNECT proxy initializationTobias Markmann
This patch adds HTTPTrafficFilter and integrates it into HTTPConnectProxiedConnection. This allows the HTTP CONNECT proxy initialization process to be customized. Test-Information: Added a unit test that verifies the new functionality. Change-Id: I0b93c319fb205487b8be65717276cd0dd38851a3
2015-03-13Fix duplicate addition of CarbonsPrivateSerializer to ↵Tobias Markmann
FullPayloadSerializerCollection Test-Information: Builds and unit tests run through. Change-Id: I0dac62cdef56ec4780388f25d24ca0818b900dad
2015-03-13Add Carbons serializers to FullPayloadSerializerCollectionTobias Markmann
Test-Information: Unit tests still pass. Carbons serializers are tested directly without FullPayloadSerializerCollection. Change-Id: Ic0f961094daf09836326660859b41d86141e70b9
2015-03-02Move *TransportSession to their own filesTobias Markmann
Test-Information: Builds. Change-Id: I1d8a942a2063c6bc0f7322161a33c0413a6899a3
2015-02-20Add elements/parsers/serializers/tests for Message Carbons (XEP-0280)Tobias Markmann
In addition this patch adds an element, a parser and a serializer for the <thread/> element from XMPP IM. Test-Information: Implemented unit tests pass as expected. Change-Id: I0a14c778c2c0bf65f4b405c9878c741449bfe142
2015-02-17Disable SSLv3Kim Alvefur
Change-Id: I25328f60e211387f5d3fbcd6de155b7b8956c0f9 License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
2015-02-17Swiften XEP-0141 supportTim Robbings
Classes to support XEP-0141 data forms layout. This includes <page/>, <section/>, <reportedref/> and <text/> elements. The form parser and serializer classes have also been updated to handle these new elements, with added CPPUnit tests. Test-information: Tested using updated CPPUnit tests to check the parsing and serializing of new elements. All tests complete successfully. Change-Id: Ibeab22d2834512d06c7f656acd1ef24eea39d650
2015-02-16Run FileTransferTest correctly as part of the system integration testsTobias Markmann
If Scons is configured to run system unit tests, it will run FileTransferTest and test for working IBB transfer, direct S5B transfer and proxied S5B transfer. Test-Information: Tested ./scons test=all is working on Linux and OS X. Change-Id: Id70c9e1e9db9c897d9bfc7dd03b874afe5262207
2015-02-16Free ProxyFinder instance after we are done with itTobias Markmann
SOCKS5BytestreamProxiesManager will try to stop its ProxyFinder if it exists in its dtor. Test-Information: Running the FileTransferTest crashed before. Now it successfully runs through on Linux. Change-Id: I1e95694a5d32728123ddb436274901e4d8643974
2015-02-11Fix program output of Swiften/QA/ClientTestTobias Markmann
Test-Information: Tried to connect to BOSH service setting the boshPath to "http-bind" while "/http-bind" would have been correct. Change-Id: Ifc9bb574361c9eaa3baeffc2938d06a257275f2a
2015-02-11Fix DummyConnectionServer to use private accessors for its membersTobias Markmann
Test-Information: Builds. Change-Id: Ib5f1b4e9de814ab46723487e4d15974f0f5bd658
2015-02-11Add debugging helper and FileTransferTest.Tobias Markmann
FileTransferTests tests file-transfer interoperability with Swiften itself. It can test all combinations of FileTransferOptions or a specific combination when given. Test-Information: Inspected XML logs to ensure it does what it is supposed to do. Change-Id: I06215b60419dd23b367d01a2f038245a6c977720
2015-02-11Renable SOCKS5 bytestream proxy support for Jingle file transfers.Tobias Markmann
Test-Information: Tested interoperability with Swiften using FileTransferTest. Change-Id: Ic13a68a91cad199be0bfc8852ff43c25c7085f12
2015-02-11Wait for responder to terminate the the file transfer session after dataTobias Markmann
verification. Test-Information: Tested with FileTransferTest (coming with future commit) and inspected the logs. Change-Id: Idd2739e15ab944e8486065cb2a3bc559ce9053d1
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