Filetransfer negotiation failed
XEP-0020 says:
The recipient SHOULD examine each feature and the values of the options provided. In order to indicate preferred values, the recipient then SHOULD specify one value for each feature and return a data form of type "submit" to the initiator in an <iq/> stanza of type "result" (or a <message/> stanza type "normal").
But when requester send two methods (bytestreams and ibb) babbler returns both, which lead to "negotiation failed" error with most of other libraries/clients
Comments (5)
-
repo owner -
reporter It's definitely a bug in Smack and other applications always fail with it :) Maybe you can add some configuration flag for FileTransferManager such as smackCompatibility field?
-
repo owner - changed status to resolved
Only return a single value during SI FileTransfer negotiation.
Fixes issue
#87→ <<cset 279e488e516b>>
-
repo owner Fixed with 0.8.0
-
repo owner - changed status to closed
- Log in to comment
In fact, this has been done intentionally, despite violating the specification.
The reason is, that Smack library does not fallback to IBB, if you only return a single value (SOCKS5 bytestreams).
See: https://issues.igniterealtime.org/browse/SMACK-584
I thought add a second value (IBB) wouldn't harm any library, but only improves interoperability with Smack, but obviously "most other libraries" fail then?
Which are they?
Btw.: I think Smack returns two values as well, so when "these libraries" communicate with Smack based applications, it should fail as well.