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
This commit is contained in:
@@ -24,10 +24,26 @@ func (i *Instance) GetWorkerInfo() (*mgr.WorkerInfo, error) {
|
||||
for _, m := range i.serviceGroup.Modules() {
|
||||
wi, _ := m.Manager().WorkerInfo(snapshot) // Does not fail when we provide a snapshot.
|
||||
infos = append(infos, wi)
|
||||
|
||||
// Check if module is a nested modules group
|
||||
if gm, ok := m.(*mgr.GroupModule); ok {
|
||||
for _, sm := range gm.Modules() {
|
||||
wi, _ := sm.Manager().WorkerInfo(snapshot) // Does not fail when we provide a snapshot.
|
||||
infos = append(infos, wi)
|
||||
}
|
||||
}
|
||||
}
|
||||
for _, m := range i.SpnGroup.Modules() {
|
||||
wi, _ := m.Manager().WorkerInfo(snapshot) // Does not fail when we provide a snapshot.
|
||||
infos = append(infos, wi)
|
||||
|
||||
// Check if module is a nested modules group
|
||||
if gm, ok := m.(*mgr.GroupModule); ok {
|
||||
for _, sm := range gm.Modules() {
|
||||
wi, _ := sm.Manager().WorkerInfo(snapshot) // Does not fail when we provide a snapshot.
|
||||
infos = append(infos, wi)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return mgr.MergeWorkerInfo(infos...), nil
|
||||
|
||||
Reference in New Issue
Block a user