Smack 3.2.2 alpha: Fixes IBB transfer

Hi

again an experimental Smack to fix IBB transfers for Spark 2.6.3. This is an experimental build with patches based on the Smack 3.2. branch. The patch itself is published in SMACK-351

The Smack code is not using IQ Stanzas for IBB file transfer since the implementation is not correct. Smack 3.2.1 also breaks file transfers via IBB to Spark 2.5.8. This alpha should fix:

SMACK-350 Bytestream is not working in Spark 2.6.3 from XP to W7

SMACK-349 Smack’s IBB sends too much data in a packet

SMACK-263 Set file info in all send* methods

SMACK-335 Need to set file size and name for outgoing file transfer from input stream

Copy into the lib folder of the Spark installation folder and report results.

Walter

P.S. Also fixes SASL against jabberd2 since http://issues.igniterealtime.org/browse/SMACK-324 is included.
smack.jar (307095 Bytes)
smackx.jar (667068 Bytes)
smackx-debug.jar (56351 Bytes)

What patches went into this beta relase? Where are the commits from 3.2.2 beta on http://fisheye.igniterealtime.org/changelog/smack ?

This release includes the patches 263, 335, 349 and some changes for fixing IBB transfer.

For now, this beta smack will use message stanzas in IBB mode and the IBB filetransfer between this and Spark 2.5.8 should be fixed. The IQ mode is still bugy, so if a 3.2.1 smack try to send via IQ stanzas, the filetransfer will probably fail. Transfer from 3.2.2 beta to a 3.2.1 should work fine in message stanza mode.

They aren’t committed yet. This is just a build from someone’s own workspace, not actually a beta build from source control. They are simply trying to get a few people to test the proposed changes to fix a now long standing problem.

Thanks for fixing the ibb file transfer. I am developing a chat client for android and I have tested file transfer with emulators. File transfer works properly on android.

Hi Rcollier,

Are there any apis available to retrieve chat history from server. I have tried using agentchathistory but I am getting the empty response. Do I need to make any settings on server?

Thanks,

Shiv

Your LIST_MULTI “fix” from http://issues.igniterealtime.org/secure/attachment/11234/IBBfix_beta.patch ( http://issues.igniterealtime.org/browse/SMACK-351 ) will break file transfer with any standard compliant XMPP library/client ( e.g. gajim, see also http://community.igniterealtime.org/thread/44145 ) Are you sure that this is an good idea just for the sake of spark 2.5.8? Why not just tell the users to update spark?

Next Alpha will be Java6 compiled and containing list-single.

I installed the patch and it doesn’t seem to solve the issue.

I’m using 2.6.3 testing with a co-worker with 2.6.3 as well.

When he sends me a file, I can accept it and it doesn’t work…

When I send him a file, he can accept it and it works

Is there a log with some debug to see the problem?

Sounds a bit like your co-worker is running the smack without the patch.

The problem is, if your worker try to send a file using iq stanza the transfer will properly fail because the iq stanza method is still buggy.

if u, with a patched smack, send a file to your co-worker, message stanzas will be used for transfer-mode and this should work well.

You can choose to enable the debugger in the option window of the loginscreen. if the worker try to send in message stanza mode, the “all packets” tab will show a lot of messages send by sender only while filetransfer. In the iq stanza mode, the receiver will confirm every packet from the sender. Is your co-worker running a smack with the patch?

Ther patch for logging the packets send and received is still work in progress.

We both installed the 3 files (smack.jar, smackx.jar, smackx-debug.jar). Did I miss another step?

No, should work then. Is your co-worker sending with iq or message stanzas (you can see in your debug window: lot of messages from sender only its message mode, every message confirmed by receiver its iq mode).

Which smack version is shown in your and yoru co-workers debug window?

In what way did the filetransfer failed?

I receive the message in the chat window that he wants to send me a file. I have the options accept and refuse. I click accept and nothing happens.

I tried with spark 2.5.8 to see if it was a firewall issue and it worked fine with 2.5.8 (my side and he was still on 2.6.3)

I’ll activate the debug and try again see what the logs say

It uses iq …

We both have smack version: 3.2.2a_fixedFileTransferV2

No data is transmitted at all?

The progress bar stays at 0% forever

.

Ok I found the problem…

In the error.log I found this:

Could not create file to write too: – caused by: java.io.IOException: Le chemin d’accès spécifié est introuvable

In the spark menu -> properties -> File transfer

I had my desktop as default, I changed it to d:\test

Tried a file transfer and it worked

Changed it back to my desktop folder

Tried a transfer and it worked.

So on a brand new install of spark, I’m not sure why it doesn’t like the download path. File transfer work now with a 2.5.8 client and 2.6.3 client

Thanks

Good to hear.

I added two new patches here , maybe it will solve the issue for you.