diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java index 67e31f0b1..2274aaac7 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java @@ -55,6 +55,9 @@ public final class JingleS5BTransportManager extends JingleTransportManager localStreamHosts = null; private List availableStreamHosts = null; + private static boolean useLocalCandidates = true; + private static boolean useExternalCandidates = true; + private JingleS5BTransportManager(XMPPConnection connection) { super(connection); JingleContentProviderManager.addJingleContentTransportProvider(getNamespace(), new JingleS5BTransportProvider()); @@ -213,4 +216,19 @@ public final class JingleS5BTransportManager extends JingleTransportManager remoteHosts; - try { - remoteHosts = transportManager().getAvailableStreamHosts(); - } catch (InterruptedException | XMPPException.XMPPErrorException | SmackException.NotConnectedException | SmackException.NoResponseException e) { - LOGGER.log(Level.WARNING, "Could not determine available StreamHosts.", e); - remoteHosts = Collections.emptyList(); + List remoteHosts = Collections.emptyList(); + if (JingleS5BTransportManager.isUseExternalCandidates()) { + try { + remoteHosts = transportManager().getAvailableStreamHosts(); + } catch (InterruptedException | XMPPException.XMPPErrorException | SmackException.NotConnectedException | SmackException.NoResponseException e) { + LOGGER.log(Level.WARNING, "Could not determine available StreamHosts.", e); + } } for (Bytestream.StreamHost host : remoteHosts) {