Commit Graph

198 Commits

Author SHA1 Message Date
Alexandr Stelnykovych
9af071ef17 fix(control): ensure wall-clock comparison for resume worker deadline 2025-12-01 13:32:46 +02:00
Alexandr Stelnykovych
aa507572d0 fix(group): correct IsStopped logic to use local state variable 2025-11-28 13:34:07 +02:00
Alexandr Stelnykovych
569e0a70dd fix(control): wait for SPN to fully stop before completing pause operation 2025-11-28 13:26:14 +02:00
Alexandr Stelnykovych
b12729cb3a Permanent verdict for accepted API outbound packets 2025-11-27 16:36:49 +02:00
Alexandr Stelnykovych
b43905aac5 Refactor resume worker to handle unexpected wall-clock changes and improve SPN auto-resume logic 2025-11-27 16:27:59 +02:00
Alexandr Stelnykovych
1208783f34 Enhance fast-tracking for API connections to maintain seamless UI experience after pause 2025-11-26 17:39:42 +02:00
Alexandr Stelnykovych
d635db77c2 Improve pause info display and error handling 2025-11-26 13:01:24 +02:00
Alexandr Stelnykovych
4913147dd5 (UI) minor update of update pause notification messages 2025-11-21 14:07:57 +02:00
Alexandr Stelnykovych
063fa7f115 fix(interception): ensure metrics are stopped on failed module start 2025-11-12 14:24:24 +02:00
Alexandr Stelnykovych
14be84d2d0 fix(instance): re-add dnsmonitor to serviceGroupInterception module 2025-11-11 18:20:10 +02:00
Alexandr Stelnykovych
83fb71b4bc Merge branch 'development' into feature/2050-pause 2025-11-11 17:33:28 +02:00
Alexandr Stelnykovych
2009dcf9c8 fix: DNSMonitor module crash on stop
Add traceEnded channel to ETWSession for better session management

https://github.com/safing/portmaster/issues/2065
2025-11-11 17:32:56 +02:00
Alexandr Stelnykovych
3abb2b3c69 feat(control): add notification for automatic resume from pause state 2025-11-11 17:18:58 +02:00
Alexandr Stelnykovych
3406017754 Refactor status module initialization: register runtime privider as soon as possible 2025-11-11 17:17:26 +02:00
Alexandr Stelnykovych
3aaa5ab161 fix(control): adjust pause logic to ensure correct state updates and notification behavior
fix(traymenu): update tray menu label from "Secured" to "unknown"
fix(notifications): log error when notification is clicked without an associated action
2025-11-10 18:20:34 +02:00
Alexandr Stelnykovych
2c67b27b4a refactor: remove SPNGroup from 'control.instance' interface and update pause logic 2025-11-07 16:51:58 +02:00
Alexandr Stelnykovych
4d2d91972b feat: refactor interception modules into pausable group
- Add GroupModule to wrap interception, dnsmonitor, and compat modules
- Simplify pause/resume operations by grouping related modules
- Update worker info collection to handle nested module groups
- Remove deprecated flags and improve module lifecycle management
- Add proper atomic state tracking for nfqueue interception

https://github.com/safing/portmaster/issues/2050
2025-11-06 17:28:38 +02:00
Alexandr Stelnykovych
7709a6600c feat: pause and resume functionality improvements + UI
https://github.com/safing/portmaster/issues/2050
2025-11-05 18:36:52 +02:00
Alexandr Stelnykovych
c063bda700 feat(WIP): add pause and resume functionality for Portmaster/SPN
https://github.com/safing/portmaster/issues/2050
2025-10-24 18:15:27 +03:00
Alexandr Stelnykovych
287c498bf1 removed obsolete command line argument "disable-shutdown-event" 2025-10-24 16:08:24 +03:00
Alexandr Stelnykovych
866dce42da Merge pull request #1990 from safing/fix/1988-redundant-filterlists-update
fix: Unnecessary filterlists database update on service start
2025-09-03 13:46:43 +03:00
Alexandr Stelnykovych
10589dc725 (interception) Linux: respect original packet marks (#1993)
(WireGuard/wg-quick compatibility)
2025-09-03 13:32:07 +03:00
Alexandr Stelnykovych
73ce148ad6 Refactor registerEventCallbacks to remove error handling and simplify callback registration 2025-09-03 12:55:58 +03:00
Alexandr Stelnykovych
1ee7db6948 Unnecessary filterlists database update on service start
https://github.com/safing/portmaster/issues/1988

---
The filterlists database is often updated when the service starts, even if the latest version is already cached in the database.
This does not affect PM’s functionality, but it unnecessarily consumes CPU resources.

**Technical explanation:**
This happens because the filterlists update check sometimes runs before the module is fully initialized.

**Steps to Reproduce:**
1. Start PM and ensure the filterlists are up to date.
2. Fully stop PM.
3. Start PM again.

**Observed result:**
PM reprocesses the filterlists cache database.

**Expected result:**
PM should update only when new data is available. Already processed data should not be reprocessed.
2025-08-28 17:21:17 +03:00
Alexandr Stelnykovych
58f4058633 v2 tests fix (#1956)
* v2 tests fix
* test: added tests for sqlite
2025-08-07 02:04:38 +03:00
Alexandr Stelnykovych
878de4ba9d refactor(filterlists): Improve index update logging
feat(updates): Add String method
2025-08-05 15:40:02 +03:00
Alexandr Stelnykovych
645438bbf4 fix(filterlists): Semantic version comparison for filter lists index file
Avoid false positives, like: "2025.04.14" != "2025.4.14"
2025-08-05 15:33:14 +03:00
Alexandr Stelnykovych
440e605123 fix(filterlists): Resolve occasional FilterLists initialization failures
Improved module initialization and processing logic to enhance concurrency handling and ensure reliable
https://github.com/safing/portmaster/issues/1951
2025-08-05 13:50:03 +03:00
Alexandr Stelnykovych
1b76004a63 Minor cleanup in code comments 2025-07-11 19:47:28 +03:00
Alexandr Stelnykovych
d5698270e9 improvement(ebpf-Linux): enhance eBPF object loading for kernel compatibility and update attach points 2025-07-11 19:03:13 +03:00
Alexandr Stelnykovych
bcaf0b90f0 Refactor WorkerCtx to use a boolean for isStopWorker 2025-06-26 17:55:10 +03:00
Alexandr Stelnykovych
5d37c126bc Fixed SPN re-initialization
https://github.com/safing/portmaster/issues/1872
2025-06-26 17:14:57 +03:00
Natanael Rodriguez Ramos
cf75e90ea8 Merge branch 'v2.0' into task/refactor-spn 2025-05-28 11:41:10 +01:00
Alexandr Stelnykovych
ec2d4ca9eb Merge branch 'master' into merge/master-into-v2-with-history (v1 into v2)
# Conflicts:
#	Earthfile
#	base/config/main.go
#	base/database/dbmodule/db.go
#	base/database/main.go
#	go.mod
#	go.sum
#	service/core/base/global.go
2025-05-28 11:52:15 +03:00
Alexandr Stelnykovych
531d147936 Improve logging message format 2025-05-22 15:40:06 +03:00
Alexandr Stelnykovych
fbc93cc09f Add more descriptive comments + minor improvements 2025-05-22 15:30:05 +03:00
Alexandr Stelnykovych
3b91aa06ba Enhance default connection settings for Portmaster UI profile to block all connections, ensuring only necessary connections to Portmaster Core are allowed. 2025-05-21 18:12:50 +03:00
Alexandr Stelnykovych
11c4ae39d2 (Windows) Fix false-positive detection of Portmaster UI processes
Problem:
  System browsers launched from the Portmaster UI (e.g., when a user clicks a link) may be incorrectly detected as Portmaster UI child processes.

Solution:
  The Tauri UI app now sets the PORTMASTER_UI_WEBVIEW_PROCESS environment variable for all child WebView processes. Portmaster-core uses this variable to accurately determine if a process is truly related to the Portmaster UI.
2025-05-21 18:08:04 +03:00
Natanael Rodriguez Ramos
ec749b6be7 Merge branch 'v2.0' into task/refactor-spn 2025-05-18 20:59:38 +01:00
Alexandr Stelnykovych
cacf6c552a fix: (Windows) Replace ICO decoder for improved icon extraction
Implemented direct use of `sergeymakinen/go-ico` decoder instead of `mat/besticon/ico`
for icon conversion. The standard `image.Decode()` and  `mat/besticon/ico` approaches
failed with certain ICO files, particularly those containing cursor data
from Windows executable resources. This change ensures more reliable
handling of various ICO format variants.
2025-05-14 17:49:24 +03:00
Alexandr Stelnykovych
8f23846d1c fix: Save and apply profile icon if it hasn't been applied yet
Icon saving was not working in situations where profile.Name had not changed.
2025-05-13 18:13:32 +03:00
Alexandr Stelnykovych
6c98755c77 fix: Deadlock in TCP resolver 2025-05-07 17:33:55 +03:00
Daniel Hååvi
03da033cd2 Only use stale dns cache entries when the query result was successful
(cherry picked from commit f233a56eea)
2025-05-07 17:30:36 +03:00
Daniel Hååvi
f233a56eea Only use stale dns cache entries when the query result was successful 2025-05-05 15:05:48 +02:00
Alexandr Stelnykovych
d3e489f10a Merge branch 'v2.0' into feature/ui-security 2025-04-28 11:08:25 +03:00
Alexandr Stelnykovych
6a230b828c [updates] (Linux): custom post-upgrade commands + command to restore SELinux context 2025-04-22 17:36:42 +03:00
Alexandr Stelnykovych
7e61536992 [desktop] Portmaster UI process detection (including child processes) 2025-04-18 17:23:59 +03:00
Daniel
9801aae3e7 Fix SPN intel updates 2025-04-15 11:26:59 +02:00
Alexandr Stelnykovych
d96f61bd5c fix: [updater] preserve "uninstaller.exe" during upgrade + purged obsolete config of "ignore" files from binary index 2025-04-14 17:48:26 +03:00
Alexandr Stelnykovych
8337eef359 fix: [updater] "restart" action to apply updates 2025-04-14 17:44:12 +03:00