diff --git a/lib/tor.dart b/lib/tor.dart index f2b57aa..0f89569 100644 --- a/lib/tor.dart +++ b/lib/tor.dart @@ -7,7 +7,6 @@ import 'dart:async'; import 'dart:ffi'; import 'dart:io'; import 'dart:isolate'; -import 'dart:math'; import 'package:ffi/ffi.dart'; import 'package:flutter/foundation.dart'; @@ -127,16 +126,15 @@ class Tor { } Future _getRandomUnusedPort({List excluded = const []}) async { - var random = Random.secure(); - int potentialPort = 0; + int port = 0; retry: - while (potentialPort <= 0 || excluded.contains(potentialPort)) { - potentialPort = random.nextInt(65535); + while (port == 0 || excluded.contains(port)) { try { - var socket = await ServerSocket.bind("0.0.0.0", potentialPort); + var socket = await ServerSocket.bind("0.0.0.0", 0); + port = socket.port; socket.close(); - return potentialPort; + return port; } catch (_) { continue retry; }