aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/xmpp
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel.gultsch@rwth-aachen.de>2014-04-16 23:11:37 +0200
committerAndreas Straub <andy@strb.org>2014-04-18 00:17:34 +0200
commit0de0cb90a09ca545f7bac5a7859eef417b5eb5d1 (patch)
treeae9e403ddff54a7215a54a179eb0e47a9ba9fd5a /src/eu/siacs/conversations/xmpp
parente29ce19f202e535f44098f280650ad892c943e52 (diff)
fixed destination bug
Diffstat (limited to 'src/eu/siacs/conversations/xmpp')
-rw-r--r--src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java5
-rw-r--r--src/eu/siacs/conversations/xmpp/jingle/SocksConnection.java11
2 files changed, 11 insertions, 5 deletions
diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
index 4f889c00..75c2c8e0 100644
--- a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
+++ b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
@@ -261,7 +261,7 @@ public class JingleConnection {
IqPacket activation = new IqPacket(IqPacket.TYPE_SET);
activation.setTo(connection.getJid());
activation.query("http://jabber.org/protocol/bytestreams").setAttribute("sid", this.getSessionId());
- activation.query().addChild("activate").setContent(this.getResponder());
+ activation.query().addChild("activate").setContent(this.getCounterPart());
this.account.getXmppConnection().sendIqPacket(activation, new OnIqPacketReceived() {
@Override
@@ -322,7 +322,8 @@ public class JingleConnection {
}
private void connectWithCandidate(Element candidate) {
- final SocksConnection socksConnection = new SocksConnection(this,candidate);
+ boolean initating = candidate.getAttribute("cid").equals(mJingleConnectionManager.getPrimaryCandidateId(account));
+ final SocksConnection socksConnection = new SocksConnection(this,candidate,initating);
connections.put(socksConnection.getCid(), socksConnection);
socksConnection.connect(new OnSocksConnection() {
diff --git a/src/eu/siacs/conversations/xmpp/jingle/SocksConnection.java b/src/eu/siacs/conversations/xmpp/jingle/SocksConnection.java
index cfa24d50..affbb5f3 100644
--- a/src/eu/siacs/conversations/xmpp/jingle/SocksConnection.java
+++ b/src/eu/siacs/conversations/xmpp/jingle/SocksConnection.java
@@ -30,7 +30,7 @@ public class SocksConnection {
private InputStream inputStream;
private boolean isEstablished = false;
- public SocksConnection(JingleConnection jingleConnection, Element candidate) {
+ public SocksConnection(JingleConnection jingleConnection, Element candidate, boolean initating) {
this.cid = candidate.getAttribute("cid");
this.host = candidate.getAttribute("host");
this.port = Integer.parseInt(candidate.getAttribute("port"));
@@ -41,8 +41,13 @@ public class SocksConnection {
MessageDigest mDigest = MessageDigest.getInstance("SHA-1");
StringBuilder destBuilder = new StringBuilder();
destBuilder.append(jingleConnection.getSessionId());
- destBuilder.append(jingleConnection.getInitiator());
- destBuilder.append(jingleConnection.getResponder());
+ if (initating) {
+ destBuilder.append(jingleConnection.getAccountJid());
+ destBuilder.append(jingleConnection.getCounterPart());
+ } else {
+ destBuilder.append(jingleConnection.getCounterPart());
+ destBuilder.append(jingleConnection.getAccountJid());
+ }
mDigest.reset();
this.destination = CryptoHelper.bytesToHex(mDigest
.digest(destBuilder.toString().getBytes()));