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() {
return this.databaseBackend.getConversationCount();
}

View file

@ -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() {

View file

@ -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()));