From 5bc1e779b2842cb8ec4cbbeb9c5e79cff6f0166e Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Fri, 16 May 2025 10:56:30 +0300 Subject: [PATCH] fix: force UI to use IPv4 (`127.0.0.1`) for API endpoints Previously, the API endpoint was defined using `localhost`, which could resolve to the IPv6 address `::1`. This caused issues because the Portmaster core service is listening on `127.0.0.1:817` and only fast-tracking connections to that specific IPv4 address. --- .../safing/portmaster-api/src/lib/meta-api.service.ts | 2 +- .../projects/safing/portmaster-api/src/lib/module.ts | 4 ++-- desktop/angular/src/main.ts | 4 ++-- desktop/tauri/src-tauri/capabilities/default.json | 2 +- desktop/tauri/src-tauri/src/window.rs | 8 ++++---- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/desktop/angular/projects/safing/portmaster-api/src/lib/meta-api.service.ts b/desktop/angular/projects/safing/portmaster-api/src/lib/meta-api.service.ts index 009848f4..8063a431 100644 --- a/desktop/angular/projects/safing/portmaster-api/src/lib/meta-api.service.ts +++ b/desktop/angular/projects/safing/portmaster-api/src/lib/meta-api.service.ts @@ -43,7 +43,7 @@ export interface AuthKeyResponse { export class MetaAPI { constructor( private http: HttpClient, - @Inject(PORTMASTER_HTTP_API_ENDPOINT) @Optional() private httpEndpoint: string = 'http://localhost:817/api', + @Inject(PORTMASTER_HTTP_API_ENDPOINT) @Optional() private httpEndpoint: string = 'http://127.0.0.1:817/api', ) { } listEndpoints(): Observable { diff --git a/desktop/angular/projects/safing/portmaster-api/src/lib/module.ts b/desktop/angular/projects/safing/portmaster-api/src/lib/module.ts index 40e562a2..076b390d 100644 --- a/desktop/angular/projects/safing/portmaster-api/src/lib/module.ts +++ b/desktop/angular/projects/safing/portmaster-api/src/lib/module.ts @@ -48,10 +48,10 @@ export class PortmasterAPIModule { */ static forRoot(cfg: ModuleConfig = {}): ModuleWithProviders { if (cfg.httpAPI === undefined) { - cfg.httpAPI = `http://${window.location.host}/api`; + cfg.httpAPI = `http://127.0.0.1:817/api`; } if (cfg.websocketAPI === undefined) { - cfg.websocketAPI = `ws://${window.location.host}/api/database/v1`; + cfg.websocketAPI = `ws://127.0.0.1:817/api/database/v1`; } return { diff --git a/desktop/angular/src/main.ts b/desktop/angular/src/main.ts index 1d83337d..c62691ce 100644 --- a/desktop/angular/src/main.ts +++ b/desktop/angular/src/main.ts @@ -80,8 +80,8 @@ if (location.pathname !== "/prompt") { providers: [ provideHttpClient(), importProvidersFrom(PortmasterAPIModule.forRoot({ - websocketAPI: "ws://localhost:817/api/database/v1", - httpAPI: "http://localhost:817/api" + websocketAPI: "ws://127.0.0.1:817/api/database/v1", + httpAPI: "http://127.0.0.1:817/api" })), NotificationsService, { diff --git a/desktop/tauri/src-tauri/capabilities/default.json b/desktop/tauri/src-tauri/capabilities/default.json index 0c0bcbff..ee0f85e0 100644 --- a/desktop/tauri/src-tauri/capabilities/default.json +++ b/desktop/tauri/src-tauri/capabilities/default.json @@ -8,7 +8,7 @@ ], "remote": { "urls": [ - "http://localhost:817" + "http://127.0.0.1:817" ] }, "permissions": [ diff --git a/desktop/tauri/src-tauri/src/window.rs b/desktop/tauri/src-tauri/src/window.rs index d2ddb1fd..43c03d46 100644 --- a/desktop/tauri/src-tauri/src/window.rs +++ b/desktop/tauri/src-tauri/src/window.rs @@ -181,15 +181,15 @@ pub fn may_navigate_to_ui(win: &mut WebviewWindow, force: bool) { // Only for dev build // Allow connection to http://localhost:4200 let capabilities = include_str!("../capabilities/default.json") - .replace("http://localhost:817", "http://localhost:4200"); + .replace("http://127.0.0.1:817", "http://127.0.0.1:4200"); let _ = win.add_capability(capabilities); - debug!("[tauri] navigating to http://localhost:4200"); - _ = win.navigate("http://localhost:4200".parse().unwrap()); + debug!("[tauri] navigating to http://127.0.0.1:4200"); + _ = win.navigate("http://127.0.0.1:4200".parse().unwrap()); } #[cfg(not(debug_assertions))] { - _ = win.navigate("http://localhost:817".parse().unwrap()); + _ = win.navigate("http://127.0.0.1:817".parse().unwrap()); } } else { error!(