Age | Commit message (Collapse) | Author |
|
This existing code was commented out. There are not tests for
it and no counterpart for incoming transfers.
We support Jingle-based file-transfers as the main file-transfer
method, as do lots of other clients.
Test-Informations:
Tested the complete project still builds.
Change-Id: Icf278165733fe481b4e2bc777a73bc420cf76398
|
|
The code used to call the onProxiesFound signal only if a
proxy was found. In case of missing S5B proxy at the users
server, the file-transfer preparation would hang.
Now the code wants until the discovery phase is done and then
calls the onProxiesFound signal with the list of discovered
proxies. In case of missing S5B proxy server the signal is
called with an empty list so the file-transfer flow can
continue.
Test-Information:
Ran FileTransferTest integration test and manually tested a
file-transfer on a server without S5B proxy.
Change-Id: I31d3cc08fe6453b5cdfe6be286f884a920470d28
|
|
FileTransferManagerImpl should have a virtual dtor, as the
parent class also has a virtual dtor.
Test-Information:
Unit tests still run.
Change-Id: I72a0757a930254caadfd1463b3f90af6c4829bd0
|
|
Added Swiften/Base/Concat.h to the exception list for <algorithm>
include, as Concat.h uses std::copy, defined in <algorithm>.
Added Swiften/FileTransfer/S5BTransportSession.h to the exception
list for <boost/bind.hpp> include, as S5BTransportSession.h
declares a template class using boost::bind.
Test-Information:
Tested that each of Swiften's public header files compiles on its
own.
Change-Id: Iac794b6e0f5959cd8261888a67761813b710fe85
|
|
Now Client allocates a FileTransferManager in its ctor and frees
it in its dtor, like all the other resources of the Client class.
This fixes an ASAN crash in the use case where you do a file
transfer, go offline and online again and try to start another
file transfer.
Test-Information:
Tested that the mentioned use case does not crash anymore,
that file transfers still work, and that FileTransferTest still
passes.
Change-Id: Iddbcd8522af7df528bdc2b030fe616ad3f0c4701
|
|
A recent commit introduced resolving of S5B proxy domain names
to their IPv4 and IPv6 addresses. With that a proxy identified
by a JID can have more than one host and we try them in parallel
until the first succeeds.
The old code just handled one host per proxy JID and a failed
IPv6 attempt would override the succeeded connection. The code
uses shared pointers and the succeeded connecting is deallocated
and disconnected when it is replaced with the failing IPv6
connection.
The result is the proxy server complaining that we are not
connected as we try to activate the proxy stream.
This commit changes the the proxy management to handle multiple
connections per proxy JID. Failing connections are removed from
the proxy sessions data structure. With the first succeeding
connections, others are stopped and also removed.
Test-Information:
Tested on Linux (Elementary OS 0.2) with
"Swiften/QA/FileTransferTest/FileTransferTest 4 4", which forces
the use of SOCKS5 bytestream proxy.
Change-Id: If3071c3d058e1040556bb72702bf83f4f5f25334
|
|
Test-Information:
This LSAN reported leak is gone with this fix.
Change-Id: Ib25fdfb7f4a82f62cd3f82ddb99f45618ea72ea9
|
|
Reported by LSAN.
Test-Information:
Detected by running FileTransferTest with LSAN on Linux.
The leak reports for the allocations in FileReadBytestream and
FileWriteBytestream are gone with this fix.
Change-Id: I32711990eca0c9a2a2982837cfac38cb11a28caa
|
|
Test-Information:
Detected with valgrind-3.10.1 on OS X 10.9.5 and verified they are
gone with this fix.
Change-Id: I8cab09efd2227a8d43fa77bd2c315bd9b67435fb
|
|
This is an attempt to fix crash reports with a segmentation fault on
call of onLocalTransportCandidatesGenerated().
Test-Information:
Tested that file-transfer still works.
Change-Id: I415be0d8bc5fa15dcd68d0794ee2478a0d836f27
|
|
Test-Information:
Added unit test that checks for the expected behavior.
Change-Id: I4079bdc1182af466eedd2496b9837e024f14acb2
|
|
If the S5B proxy lookup result has no direct IP address listed the
name is resolved using DNS. This change will create a proxy result
per resolved result address and not only the first result address.
Test-Information:
Verified the candidate list contains both entires for a proxy name
that resolves to an A and an AAAA record.
Change-Id: Iec21ff90af981030ff49fb53803d88a59694767c
|
|
ASAN reported heap-use-after-free because if the timer is running
and an instance is freed, the signal of the timer is still emitted and
connected slots are called.
Test-Information:
Tested that the ASAN report wents away with this fix.
Change-Id: Id785737c4c015e5c638e9d9f6419d740d6cf83b9
|
|
Test-Information:
Still builds
Change-Id: I93cd349364093eae320104b5b551c25da47b1d74
|
|
Due to missing signal connection and a copy'n'paste bug, Swift did not
wait for port forwarding/public IP detection before emitting the list
of local candidates. This is fixed now.
The signal is automatically disconnected when the file transfer
is finished and s5bServerPortForwardingUser_ is freed.
Test-Information:
Send a file between two Swift instances and verified log output.
Change-Id: I6530a7ac1cbf6941061bd99aa3f3b0624ebc984c
|
|
Test-Information:
Tested on Elementary OS with a LLVM/Clang 3.7.0 build. With this patch
the reports for the fixed locations are gone.
Change-Id: I0260fc85ad662335a69ace331f51ebe2f864ef97
|
|
Test-Information:
Send a file from one Swift to another. Previously the progress bar did
not update in the receiving client. Now it does.
Change-Id: Ie710a4c1cfc389d6fcfb93de96250a80787883d3
|
|
Test-Information:
Tested build on Windows 8 with VS 2014 and ran unit tests.
Change-Id: I3d8096df4801be6901f22564e36eecba0e7310c4
|
|
Use scoped_connection to prevent missing disconnection from signals.
Stop and free S5BServer when stopping SOCKS5BytestreamServerManager.
Test-Information:
Tried sending a file to myself multiple times and it did not crash.
Change-Id: If32075d8e9c243cab254776b924248227520e030
|
|
Change-Id: Ieeb9636b40bfd43b9b79dede71eefc288e6014d2
|
|
This also adds missing resets pointers to NULL after they are deleted.
Test-Information:
FileTransferTest crashed in some scenarios before; now it always runs
successful.
Change-Id: Ic63fd51eeb46e708221a04dc912e8bf2f1d4f9fb
|
|
running
Add a check on whether we have a running SOCKS5 bytestream server
before trying to access it to close unneeded S5B connections to it
after we decided on a candidate to use.
Test-Information:
Without this FileTransferTest crashes in the configuration that does
not allow direct or assisted S5B connections. This patch fixes this
issue.
Change-Id: Ifcf59f82755b9620e7f5fa5841e45815a41ac442
|
|
This patchs adds management of the SOCKS5 bytestream server and port
forwarding setup to Swiften. The first file-transfer, regardless of
incoming or outgoing transfer, will start and initialize the S5B server
and if configured try to set up port forwarding. The last file-transfer
to finish will will close the server and remove the port forwarding.
Test-Information:
Tested with upcoming ConcurrentFileTransferTest.cpp and running multiple
S5B file-transfers in parallel.
Change-Id: Idd09d3d0ef9498fc9435b0aee81f2b1061783342
|
|
IncomingJingleFileTransfer::terminate already sets the finshed state
for the file-transfer.
Test-Information:
Verified in the logs that onFinished signal is only called once.
Change-Id: Ib2084e1487ded2a921f61b237cd036e1ae4cf992
|
|
Test-Information:
The FileTransfer::onFinished was not called when the file transfer finished.
Verified with log output that it is called correctly now.
Change-Id: I05f2a749ca3f0aece08cae9503a212cf0327f98a
|
|
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
|
|
Test-Information:
Unit tests pass.
Change-Id: I793fb65fd2e760daddab0142abc33d4aa5b4fce5
|
|
Test-Information:
Builds.
Change-Id: I1d8a942a2063c6bc0f7322161a33c0413a6899a3
|
|
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
|
|
Test-Information:
Tested interoperability with Swiften using FileTransferTest.
Change-Id: Ic13a68a91cad199be0bfc8852ff43c25c7085f12
|
|
verification.
Test-Information:
Tested with FileTransferTest (coming with future commit) and inspected
the logs.
Change-Id: Idd2739e15ab944e8486065cb2a3bc559ce9053d1
|
|
Test-Information:
Verified with home router that supports UPnP that the forwards are removed
on stop.
Change-Id: Ie2a8fd56828cc01e456d40ff4e5500d3387c7afe
|
|
by supplied FileTransferOptions.
Test-Information:
Automatically tested all FileTransferOption combinations and verified
it generates only allowed candidates.
Change-Id: I0b3ce983a3f230a4c2c3940f5d928fd74d6012b6
|
|
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
|
|
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
|
|
Change-Id: Icfa2a22aa3c443d2a400a3466bf523a8c91ba85a
|
|
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
|
|
Change-Id: I94ab4bbb68c603fe872abeb8090575de042f5cb4
|
|
C++11.
Test-Information:
Tested with Clang 3.6.0.
Change-Id: I1f9ae8ae535d90f92b7263e86b51fe64b15524b4
|
|
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
|
|
Change-Id: Iadb580ad8b3f258d49b7c1b8713f0f92009e022e
|
|
Change-Id: I95b6b67dcafe338561d3dfb28664bc3bba6d1159
|
|
Change-Id: I7cd26f00f626b64da934e9f5594db393d6184b9c
|
|
Change-Id: I0d61991721a5cb04b3b37784e30161531a945d61
|
|
Change-Id: I55e79045d55c206d705609266262d734c4ed2853
|
|
- Use boost::filesystem::path consistently for referring to files.
- Use boost::filesystem streams for I/O, such that paths are always handled
correctly.
- Use stringToPath and pathToString for conversion between strings and
boost::filesystem::path, to ensure we have consistent unicode handling
across platforms and environments. The default constructor and string
conversion uses platform-dependent encoding, depending on the global
locale set in the application, which causes problems. So, unless you are
in platform dependent code, the default constructor and string() function
should not be used. When constructing paths from other paths (e.g. using
operator/), also use stringToPath (instead of string arguments) if the path
can contain unicode characters.
Change-Id: If286bd9e71c8414afc0b24ba67e26ab7608ef6ea
|
|
Allocate S5B server lazily.
Forward forts lazily.
Various state machine fixes.
Temporarily disabling S5B proxy support.
Change-Id: I3145e85a99b15a7e457306bbfbe9c0eb570191e4
|
|
Using library/platform implementation instead.
Change-Id: I2457c2dad80e6fdda023a7f31c3906ff10fe09ed
|
|
Rename run() to start(), and provide stop() placeholder.
Change-Id: I44257a0fca89c9345054a5d6fa3c1b4768995081
|
|
Change-Id: I62c7d5ca44c915e36c797c798294b7c34b465514
|