Filetransfer negotiation failed

Issue #87 closed
Vitaly Takmazov created an issue

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)

  1. Christian Schudt repo owner

    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.

  2. Vitaly Takmazov 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?

  3. Log in to comment