diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportManager.java index 60e3dd5ce..4f847d25d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportManager.java @@ -29,4 +29,11 @@ public interface JingleTransportManager extends Comparable createTransport(JingleContent content); JingleTransport createTransport(JingleContent content, JingleTransport peersTransport); + + /** + * Return a (usually) positive integer, which is used to define a strict order over the set of available transport + * managers. + * @return priority. + */ + int getPriority(); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransportManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransportManager.java index 371f9c02f..6d30f3a4b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransportManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_ibb/JingleIBBTransportManager.java @@ -56,8 +56,13 @@ public class JingleIBBTransportManager extends Manager implements JingleTranspor return new JingleIBBTransport(other.getSid(), (short) Math.min(other.getBlockSize(), MAX_BLOCKSIZE)); } + @Override + public int getPriority() { + return -1; + } + @Override public int compareTo(JingleTransportManager manager) { - return -1; // We are literally the worst. + return Integer.compare(getPriority(), manager.getPriority()); } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransport.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransport.java index c4b2f174e..95d70185f 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransport.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransport.java @@ -28,6 +28,7 @@ import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamSession; import org.jivesoftware.smackx.bytestreams.socks5.Socks5Proxy; import org.jivesoftware.smackx.bytestreams.socks5.Socks5Utils; @@ -325,9 +326,9 @@ public class JingleS5BTransport extends JingleTransport> collectCandidates() { List> candidates = new ArrayList<>(); @@ -236,7 +241,7 @@ public final class JingleS5BTransportManager extends Manager implements JingleTr @Override public int compareTo(JingleTransportManager manager) { - return 1; // We are #1! + return Integer.compare(getPriority(), manager.getPriority()); } private ConnectionListener connectionListener = new ConnectionListener() {