fixed destination bug

This commit is contained in:
Daniel Gultsch 2014-04-16 23:11:37 +02:00 committed by Andreas Straub
parent e29ce19f20
commit 0de0cb90a0
3 changed files with 15 additions and 5 deletions

View File

@ -1034,6 +1034,10 @@ public class XmppConnectionService extends Service {
} }
} }
public void clearConversationHistory(Conversation conversation) {
}
public int getConversationCount() { public int getConversationCount() {
return this.databaseBackend.getConversationCount(); return this.databaseBackend.getConversationCount();
} }

View File

@ -261,7 +261,7 @@ public class JingleConnection {
IqPacket activation = new IqPacket(IqPacket.TYPE_SET); IqPacket activation = new IqPacket(IqPacket.TYPE_SET);
activation.setTo(connection.getJid()); activation.setTo(connection.getJid());
activation.query("http://jabber.org/protocol/bytestreams").setAttribute("sid", this.getSessionId()); 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() { this.account.getXmppConnection().sendIqPacket(activation, new OnIqPacketReceived() {
@Override @Override
@ -322,7 +322,8 @@ public class JingleConnection {
} }
private void connectWithCandidate(Element candidate) { 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); connections.put(socksConnection.getCid(), socksConnection);
socksConnection.connect(new OnSocksConnection() { socksConnection.connect(new OnSocksConnection() {

View File

@ -30,7 +30,7 @@ public class SocksConnection {
private InputStream inputStream; private InputStream inputStream;
private boolean isEstablished = false; private boolean isEstablished = false;
public SocksConnection(JingleConnection jingleConnection, Element candidate) { public SocksConnection(JingleConnection jingleConnection, Element candidate, boolean initating) {
this.cid = candidate.getAttribute("cid"); this.cid = candidate.getAttribute("cid");
this.host = candidate.getAttribute("host"); this.host = candidate.getAttribute("host");
this.port = Integer.parseInt(candidate.getAttribute("port")); this.port = Integer.parseInt(candidate.getAttribute("port"));
@ -41,8 +41,13 @@ public class SocksConnection {
MessageDigest mDigest = MessageDigest.getInstance("SHA-1"); MessageDigest mDigest = MessageDigest.getInstance("SHA-1");
StringBuilder destBuilder = new StringBuilder(); StringBuilder destBuilder = new StringBuilder();
destBuilder.append(jingleConnection.getSessionId()); destBuilder.append(jingleConnection.getSessionId());
destBuilder.append(jingleConnection.getInitiator()); if (initating) {
destBuilder.append(jingleConnection.getResponder()); destBuilder.append(jingleConnection.getAccountJid());
destBuilder.append(jingleConnection.getCounterPart());
} else {
destBuilder.append(jingleConnection.getCounterPart());
destBuilder.append(jingleConnection.getAccountJid());
}
mDigest.reset(); mDigest.reset();
this.destination = CryptoHelper.bytesToHex(mDigest this.destination = CryptoHelper.bytesToHex(mDigest
.digest(destBuilder.toString().getBytes())); .digest(destBuilder.toString().getBytes()));