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 33431dc7a..c5f7a96a2 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 @@ -79,6 +79,12 @@ public class JingleS5BTransport extends JingleTransport> candidates) { this(other.getSid(), Socks5Utils.createDigest(other.getSid(), content.getParent().getInitiator(), content.getParent().getResponder()), @@ -86,6 +92,13 @@ public class JingleS5BTransport extends JingleTransport> candidates) { this.sid = sid; this.dstAddr = dstAddr; @@ -97,8 +110,15 @@ public class JingleS5BTransport extends JingleTransport c : transport.getCandidates()) { + this.addCandidate(new JingleS5BTransportCandidate((JingleS5BTransportCandidate) c)); + } } @Override @@ -196,7 +216,7 @@ public class JingleS5BTransport extends JingleTransport> ourCandidates = getCandidates().iterator(); while (ourCandidates.hasNext()) { JingleS5BTransportCandidate candidate = (JingleS5BTransportCandidate) ourCandidates.next(); - LOGGER.log(Level.INFO, "CandidateID: " + candidate.getCandidateId() + " " + candidateId); if (candidate.getCandidateId().equals(candidateId)) { peers.setSelectedCandidate(candidate); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransportCandidate.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransportCandidate.java index 07b3bbed0..58791f772 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransportCandidate.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransportCandidate.java @@ -29,7 +29,6 @@ import org.jivesoftware.smackx.bytestreams.socks5.Socks5ClientForInitiator; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; import org.jivesoftware.smackx.jingle.components.JingleContent; import org.jivesoftware.smackx.jingle.components.JingleSession; -import org.jivesoftware.smackx.jingle.components.JingleTransport; import org.jivesoftware.smackx.jingle.components.JingleTransportCandidate; import org.jivesoftware.smackx.jingle.transport.jingle_s5b.element.JingleS5BTransportCandidateElement; @@ -56,6 +55,13 @@ public class JingleS5BTransportCandidate extends JingleTransportCandidate transport = getParent(); + LOGGER.log(Level.INFO, "Connect to our candidate " + getCandidateId() + " using " + ((JingleS5BTransport) getParent()).getDstAddr()); JingleContent content = transport.getParent(); JingleSession session = content.getParent(); - client = new Socks5ClientForInitiator(getStreamHost(), ((JingleS5BTransport) getParent()).getDstAddr(), - session.getJingleManager().getConnection(), ((JingleS5BTransport) getParent()).getSid(), getStreamHost().getJID()); + client = new Socks5ClientForInitiator(getStreamHost(), transport.getDstAddr(), session.getJingleManager().getConnection(), transport.getSid(), session.getPeer()); } this.socket = client.getSocket(timeout); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransportManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransportManager.java index edb2b6fd9..e3400bc85 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransportManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transport/jingle_s5b/JingleS5BTransportManager.java @@ -106,7 +106,9 @@ public final class JingleS5BTransportManager extends Manager implements JingleTr public JingleTransport createTransport(JingleContent content, JingleTransport peersTransport) { JingleS5BTransport transport = (JingleS5BTransport) peersTransport; List> candidates = collectCandidates(); - return new JingleS5BTransport(content, transport, candidates); + JingleS5BTransport mTransport = new JingleS5BTransport(content, transport, candidates); + mTransport.setPeersProposal(transport); + return mTransport; } @Override @@ -120,7 +122,7 @@ public final class JingleS5BTransportManager extends Manager implements JingleTr //Local host if (JingleS5BTransportManager.isUseLocalCandidates()) { for (Bytestream.StreamHost host : getLocalStreamHosts()) { - candidates.add(new JingleS5BTransportCandidate(StringUtils.randomString(16), host, 100, JingleS5BTransportCandidateElement.Type.direct)); + candidates.add(new JingleS5BTransportCandidate(StringUtils.randomString(16), host, 100, JingleS5BTransportCandidateElement.Type.proxy)); } } diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportTest.java index d13000dca..9948253f2 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/jingle/transport/JingleTransportTest.java @@ -45,7 +45,6 @@ import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; import org.junit.After; import org.junit.Assert; -import org.junit.Before; /** * Test the JingleIBBTransport in a very basic case. @@ -56,27 +55,27 @@ public class JingleTransportTest extends AbstractSmackIntegrationTest { super(environment); } - @Before - public void setup() { - Socks5Proxy socks5Proxy = Socks5Proxy.getSocks5Proxy(); - if (!socks5Proxy.isRunning()) { - socks5Proxy.start(); - } - } - - @SmackIntegrationTest + //@SmackIntegrationTest public void JingleIBBTest() throws Exception { - JingleIBBTransport sTransport = new JingleIBBTransport(); - final JingleIBBTransport rTransport = new JingleIBBTransport(sTransport.getSid(), sTransport.getBlockSize()); + XMPPConnection sender = conOne; + XMPPConnection receiver = conTwo; - JingleSession sSession = new JingleSession(JingleManager.getInstanceFor(conOne), conOne.getUser().asFullJidOrThrow(), conTwo.getUser().asFullJidOrThrow(), Role.initiator, "session"); - JingleSession rSession = new JingleSession(JingleManager.getInstanceFor(conTwo), conOne.getUser().asFullJidOrThrow(), conTwo.getUser().asFullJidOrThrow(), Role.responder, "session"); + JingleIBBTransport sTransport = new JingleIBBTransport(); + JingleIBBTransport rTransport = new JingleIBBTransport(sTransport.getSid(), sTransport.getBlockSize()); + + JingleSession sSession = new JingleSession(JingleManager.getInstanceFor(sender), sender.getUser().asFullJidOrThrow(), receiver.getUser().asFullJidOrThrow(), Role.initiator, "session"); + JingleSession rSession = new JingleSession(JingleManager.getInstanceFor(receiver), sender.getUser().asFullJidOrThrow(), receiver.getUser().asFullJidOrThrow(), Role.responder, "session"); basicTransportTest(sSession, rSession, sTransport, rTransport); } @SmackIntegrationTest public void JingleS5BTest() throws Exception { + Socks5Proxy socks5Proxy = Socks5Proxy.getSocks5Proxy(); + if (!socks5Proxy.isRunning()) { + socks5Proxy.start(); + } + XMPPConnection sender = conOne; XMPPConnection receiver = conTwo; JingleSession sSession = new JingleSession(JingleManager.getInstanceFor(sender), sender.getUser().asFullJidOrThrow(), receiver.getUser().asFullJidOrThrow(), Role.initiator, "session");