commit 09a3dccbb91e868c2cad0e369eb0d904972d7097 Author: Cecylia Bocovich <coh...@torproject.org> Date: Mon Nov 16 16:27:11 2020 -0500
Wait for ice gathering to complete before probetest This fixes a bug whether proxies behind unrestricted NATs appeared restricted because they were sending an offer to the probe service without any ice candidates. --- package.json | 2 +- util.js | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index fc60414..65acb90 100644 --- a/package.json +++ b/package.json @@ -32,4 +32,4 @@ "ws": "^3.3.1", "xmlhttprequest": "^1.8.0" } -} \ No newline at end of file +} diff --git a/util.js b/util.js index c9dd7ef..35be73c 100644 --- a/util.js +++ b/util.js @@ -38,15 +38,24 @@ class Util { channel.close(); pc.close(); }; + pc.onicecandidate = (evt) => { + if (evt.candidate == null) { + //ice gathering is finished + Util.sendOffer(pc.localDescription) + .then((answer) => { + setTimeout(() => {if(!open) fulfill("restricted");}, timeout); + pc.setRemoteDescription(JSON.parse(answer)); + }).catch((e) => { + console.log(e); + reject("Error receiving probetest answer"); + }); + } + }; pc.createOffer() .then((offer) => pc.setLocalDescription(offer)) - .then(() => Util.sendOffer(pc.localDescription)) - .then((answer) => { - setTimeout(() => {if(!open) fulfill("restricted");}, timeout); - pc.setRemoteDescription(JSON.parse(answer)); - }).catch((e) => { + .catch((e) => { console.log(e); - reject("Error checking NAT type"); + reject("Error creating offer for probetest"); }); }); } _______________________________________________ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits