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
1 changed files with 15 additions and 5 deletions

View File

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