Socks5BytestreamManager's establishConnection() should still try to use the local streamhost proxy if the server doesn't provide one

Description

There are XMPP servers out there - talk.google.com for example - that do not support Service Discovery. Therefore every service discovery requests results in a "501 - feature not implemented" XMPPException.

This causes the Socks5Bytestream manager's establishConnection() method to abort and the IBB fallback path is chosen. This maybe not favorable, because Smack's local Socks5 proxy could still be available. The forum link has a approach that remembers the exception that may is thrown on service discovery and only throws it if there is no local Socks5 Proxy.

We should also consider to move
Socks5Utils.createDigest(sessionID, this.connection.getUser(), targetJID);
down, after it is assured that there are streamhosts.

Environment

None

Activity

Show:
Fixed

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

Created December 18, 2012 at 4:21 PM
Updated October 28, 2020 at 1:28 PM
Resolved February 4, 2013 at 9:37 PM