fixed destination calculation for direct socks candidates. fixes #3715

This commit is contained in:
Daniel Gultsch 2020-05-11 11:08:45 +02:00
parent 11de70312c
commit 90526efbd4

View file

@ -58,6 +58,7 @@ public class JingleSocks5Transport extends JingleTransport {
} else { } else {
destBuilder.append(this.connection.getTransportId()); destBuilder.append(this.connection.getTransportId());
} }
if (candidate.getType() == JingleCandidate.TYPE_PROXY) {
if (candidate.isOurs()) { if (candidate.isOurs()) {
destBuilder.append(this.account.getJid()); destBuilder.append(this.account.getJid());
destBuilder.append(this.connection.getId().with); destBuilder.append(this.connection.getId().with);
@ -65,6 +66,15 @@ public class JingleSocks5Transport extends JingleTransport {
destBuilder.append(this.connection.getId().with); destBuilder.append(this.connection.getId().with);
destBuilder.append(this.account.getJid()); destBuilder.append(this.account.getJid());
} }
} else {
if (connection.isInitiator()) {
destBuilder.append(this.account.getJid());
destBuilder.append(this.connection.getId().with);
} else {
destBuilder.append(this.connection.getId().with);
destBuilder.append(this.account.getJid());
}
}
messageDigest.reset(); messageDigest.reset();
this.destination = CryptoHelper.bytesToHex(messageDigest.digest(destBuilder.toString().getBytes())); this.destination = CryptoHelper.bytesToHex(messageDigest.digest(destBuilder.toString().getBytes()));
if (candidate.isOurs() && candidate.getType() == JingleCandidate.TYPE_DIRECT) { if (candidate.isOurs() && candidate.getType() == JingleCandidate.TYPE_DIRECT) {