diff --git a/core/controllers/ConnectionController.py b/core/controllers/ConnectionController.py index db1b93b..bc380e4 100644 --- a/core/controllers/ConnectionController.py +++ b/core/controllers/ConnectionController.py @@ -11,6 +11,7 @@ from core.models.system.SystemState import SystemState from core.observers.ConnectionObserver import ConnectionObserver from core.services.WebServiceApiService import WebServiceApiService from essentials.modules.TorModule import TorModule +from essentials.services.ConnectionService import ConnectionService from pathlib import Path from subprocess import CalledProcessError from typing import Union, Optional, Any @@ -18,7 +19,6 @@ import os import random import re import shutil -import socket import subprocess import sys import tempfile @@ -137,7 +137,7 @@ class ConnectionController: if profile.connection.code == 'tor': - port_number = ConnectionController.get_random_available_port_number() + port_number = ConnectionService.get_random_available_port_number() ConnectionController.establish_tor_session_connection(port_number, connection_observer=connection_observer) session_state.network_port_numbers.tor.append(port_number) @@ -146,14 +146,14 @@ class ConnectionController: if ConfigurationController.get_endpoint_verification_enabled(): ProfileController.verify_wireguard_endpoint(profile, ignore=ignore) - port_number = ConnectionController.get_random_available_port_number() + port_number = ConnectionService.get_random_available_port_number() ConnectionController.establish_wireguard_session_connection(profile, session_directory, port_number) session_state.network_port_numbers.wireguard.append(port_number) if profile.connection.masked: while proxy_port_number is None or proxy_port_number == port_number: - proxy_port_number = ConnectionController.get_random_available_port_number() + proxy_port_number = ConnectionService.get_random_available_port_number() ConnectionController.establish_proxy_session_connection(profile, session_directory, port_number, proxy_port_number) session_state.network_port_numbers.proxy.append(proxy_port_number) @@ -316,16 +316,6 @@ class ConnectionController: https=f'socks5h://127.0.0.1:{port_number}' ) - @staticmethod - def get_random_available_port_number(): - - socket_instance = socket.socket() - socket_instance.bind(('', 0)) - port_number = socket_instance.getsockname()[1] - socket_instance.close() - - return port_number - @staticmethod def await_connection(port_number: Optional[int] = None, connection_observer: Optional[ConnectionObserver] = None): @@ -431,7 +421,7 @@ class ConnectionController: @staticmethod def __with_tor_connection(*args, task: Callable[..., Any], connection_observer: Optional[ConnectionObserver] = None, **kwargs): - port_number = ConnectionController.get_random_available_port_number() + port_number = ConnectionService.get_random_available_port_number() ConnectionController.establish_tor_session_connection(port_number, connection_observer=connection_observer) ConnectionController.await_connection(port_number, connection_observer=connection_observer)