diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index 07f5a4279..0dea37319 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -1033,6 +1033,10 @@ public class XmppConnectionService extends Service { this.convChangedListener.onConversationListChanged(); } } + + public void clearConversationHistory(Conversation conversation) { + + } public int getConversationCount() { return this.databaseBackend.getConversationCount(); diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java index 4f889c00b..75c2c8e07 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 cfa24d505..affbb5f3c 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()));