From 3d7bf02ace9d5249868bc0446e3f6ef3cee78c98 Mon Sep 17 00:00:00 2001 From: Cyrix126 <58007246+Cyrix126@users.noreply.github.com> Date: Wed, 27 May 2026 13:15:23 +0900 Subject: [PATCH] fix: use standard method to get random unused port --- lib/tor.dart | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) 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; }