Update connection status determination logic

This commit is contained in:
codeking 2026-01-18 05:09:23 +01:00
parent 6dfd5993a2
commit 616a864c9d
2 changed files with 9 additions and 15 deletions

View file

@ -9,6 +9,9 @@ class Constants:
SP_API_BASE_URL: Final[str] = os.environ.get('SP_API_BASE_URL', 'https://api.hydraveil.net/api/v1') SP_API_BASE_URL: Final[str] = os.environ.get('SP_API_BASE_URL', 'https://api.hydraveil.net/api/v1')
PING_URL: Final[str] = os.environ.get('PING_URL', 'https://api.hydraveil.net/api/v1/health') PING_URL: Final[str] = os.environ.get('PING_URL', 'https://api.hydraveil.net/api/v1/health')
CONNECTION_RETRY_INTERVAL: Final[int] = int(os.environ.get('CONNECTION_RETRY_INTERVAL', '5'))
MAX_CONNECTION_ATTEMPTS: Final[int] = int(os.environ.get('MAX_CONNECTION_ATTEMPTS', '2'))
HV_CLIENT_PATH: Final[str] = os.environ.get('HV_CLIENT_PATH') HV_CLIENT_PATH: Final[str] = os.environ.get('HV_CLIENT_PATH')
HV_CLIENT_VERSION_NUMBER: Final[str] = os.environ.get('HV_CLIENT_VERSION_NUMBER') HV_CLIENT_VERSION_NUMBER: Final[str] = os.environ.get('HV_CLIENT_VERSION_NUMBER')

View file

@ -122,7 +122,6 @@ class ConnectionController:
session_directory = tempfile.mkdtemp(prefix='hv-') session_directory = tempfile.mkdtemp(prefix='hv-')
session_state = SessionStateController.get_or_new(profile.id) session_state = SessionStateController.get_or_new(profile.id)
maximum_number_of_attempts = None
port_number = None port_number = None
proxy_port_number = None proxy_port_number = None
@ -137,7 +136,6 @@ class ConnectionController:
if profile.connection.code == 'tor': if profile.connection.code == 'tor':
maximum_number_of_attempts = 5
port_number = ConnectionController.get_random_available_port_number() port_number = ConnectionController.get_random_available_port_number()
ConnectionController.establish_tor_session_connection(session_directory, port_number) ConnectionController.establish_tor_session_connection(session_directory, port_number)
session_state.network_port_numbers.append(port_number) session_state.network_port_numbers.append(port_number)
@ -153,8 +151,6 @@ class ConnectionController:
if profile.connection.masked: if profile.connection.masked:
maximum_number_of_attempts = 5
while proxy_port_number is None or proxy_port_number == port_number: while proxy_port_number is None or proxy_port_number == port_number:
proxy_port_number = ConnectionController.get_random_available_port_number() proxy_port_number = ConnectionController.get_random_available_port_number()
@ -162,7 +158,7 @@ class ConnectionController:
session_state.network_port_numbers.append(proxy_port_number) session_state.network_port_numbers.append(proxy_port_number)
if not profile.connection.is_unprotected(): if not profile.connection.is_unprotected():
ConnectionController.await_connection(proxy_port_number or port_number, maximum_number_of_attempts, connection_observer=connection_observer) ConnectionController.await_connection(proxy_port_number or port_number, connection_observer=connection_observer)
SessionStateController.update_or_create(session_state) SessionStateController.update_or_create(session_state)
@ -315,23 +311,18 @@ class ConnectionController:
return port_number return port_number
@staticmethod @staticmethod
def await_connection(port_number: Optional[int] = None, maximum_number_of_attempts: Optional[int] = None, connection_observer: Optional[ConnectionObserver] = None): def await_connection(port_number: Optional[int] = None, connection_observer: Optional[ConnectionObserver] = None):
if port_number is None: if port_number is None:
ConnectionController.await_network_interface() ConnectionController.await_network_interface()
if maximum_number_of_attempts is None: for retry_count in range(Constants.MAX_CONNECTION_ATTEMPTS):
maximum_number_of_attempts = 2
retry_interval = 5.0
for retry_count in range(maximum_number_of_attempts):
if connection_observer is not None: if connection_observer is not None:
connection_observer.notify('connecting', dict( connection_observer.notify('connecting', dict(
retry_interval=retry_interval, retry_interval=Constants.CONNECTION_RETRY_INTERVAL,
maximum_number_of_attempts=maximum_number_of_attempts, maximum_number_of_attempts=Constants.MAX_CONNECTION_ATTEMPTS,
attempt_count=retry_count + 1 attempt_count=retry_count + 1
)) ))
@ -342,7 +333,7 @@ class ConnectionController:
except ConnectionError: except ConnectionError:
time.sleep(retry_interval) time.sleep(Constants.CONNECTION_RETRY_INTERVAL)
retry_count += 1 retry_count += 1
raise ConnectionError('The connection could not be established.') raise ConnectionError('The connection could not be established.')