Spark 2.8.3 does not send files when a firewall is present (but 2.7.3 does)

We have two sites (Headquarter / Remote Site) and a site-to-site VPN with a firewall opened to all IPs.
We installed the OpenFire server Ver.4.2.3 and Spark Ver.2.8.3 on clients, but file transfer Remote Site -> Headquarter It did not work.
We replaced Spark with the older 2.7.3 and the problem has been solved.
Hope next versions will be fixed about that issue.
HTH
ALex.

It probably won’t be fixed for the next version (if it even gets released at all). This issue appeared after updating the underlying Smack library and it seems to be fairly complex to fix. In nightly builds of 2.9.0 there is a setting to force IBB transfer. Which is slower, but might work in this scenario. It is in Preferences > File transfer. Nightlies are here https://www.igniterealtime.org/downloads/nightly_spark.jsp

And here is a ticket associated with the degraded file transfer issue https://issues.igniterealtime.org/browse/SPARK-1869

another option is to enable the file transfer proxy on openfire. depending on how restrictive your network policy is, you may need to allow the additional port (port 7777 is the default port).

Enabling (or disabling) proxy didn’t have positive effect in my testing of this issue. As i didn’t have to allow 5222 port in my testing environment and the messaging work, i think i shouldn’t had to do something about 7777 port either.

wroot,

I am having the same difficulties as alexbromo…

I am on 2.8.3 and Openfire 4.4.2, and I am having massive problems with file transfer, I do have File Transfer Proxy Server “ENABLED”. It is using 7777 as the default port.

When using an old version of Spark I believe, 2.6.3, and an old ver. of Openfire “4.1.1”, I was able to transfer files very easily.

So what is your recommendation on this matter, or some guidance on fixing this situation I am in at the moment?

Please help!

Thank you!

The only solution is to use older version, like 2.7.7 https://github.com/igniterealtime/Spark/releases/tag/v2.7.7

wroot,

I have jumped onto 2.7.7 Spark Client, and still I could not use the File Transferring Mechanism. I am so very confused. I have tried to use file transfer on Pidgin 2.13.0 with OpenFire 4.4.2, and still nothing, and as well Miranda NG Client.

Please help!

Thank you so much!

I have no means or time to do a thorough testing. But from what i know after my limited testing with a few virtual machines - Openfire doesn’t matter as clients first try to do direct connection with each other. I use Openfire 4.4.2 and File Transfer Proxy disabled. Openfire is installed on a host where virtual machines run.

You can set virtual machines to use bridged network. In that case both virtual machines and a host use the same subnet, e.g. 192.168.1.x. In that case file transfer works fine with 2.8.3.

If you use NAT connection in a virtual machine (it then creates a virtual subnet e.g. 10.0.0.x and translates coming packets with NAT mechanism), then such machine is able to receive files from 2.8.3 to 2.8.3, but you can’t send files using 2.8.3 from a NAT machine to bridged machine (i haven’t tested, but i suspect the same when sending from NAT to NAT).

If you install 2.7.7 on a NAT machine, there is no difference. It can receive files from bridged 2.8.3 machine, but can’t send files back.

If you also install 2.7.7 on a bridged machine, then NAT machine with 2.7.7 is able to send files to bridged 2.7.7 machine. Although it takes long to negotiate a stream.

So in sum, file transfer in Spark works ok when all PCs are on the same subnet/LAN and no firewalls are blocking transfer. If there are more subnets, NAT, internet involved, then it works better when all PCs use 2.7.7, although it can still fail.

I can’t talk about other clients.