safing-portmaster/spn
Alexandr Stelnykovych 2252fd17ed ivpn/linux: route SPN hub traffic around VPN tunnel (split tunnel)
Add a synchronous HookMgr[T] that lets callers register pre-connect
hooks before SPN dials a home hub. The IVPN interop layer subscribes
to this hook and uses Linux ip-rule/ip-route to steer SPN hub IPs
through a dedicated routing table (717) pointing to the non-VPN default
gateway, preventing SPN control traffic from being tunnelled into IVPN.

- service/mgr: add generic HookMgr[T] (synchronous, cancellable)
- spn/captain: expose HookSPNConnecting; invoke it in connectToHomeHub
- service/netenv: add GatewayInfo + GatewaysInfo() with interface/mask
- service/interop/ivpn: add ensureSpnHubBypassVpnRoutes managing policy
  routing; call it from the SPN pre-connect hook and on VPN stop/connect
- nfq/packet: add hex comments next to mark constants

https://github.com/safing/portmaster-shadow/issues/34
2026-03-26 23:20:34 +02:00
..
access v2 tests fix (#1956) 2025-08-07 02:04:38 +03:00
cabin v2 tests fix (#1956) 2025-08-07 02:04:38 +03:00
captain ivpn/linux: route SPN hub traffic around VPN tunnel (split tunnel) 2026-03-26 23:20:34 +02:00
conf Restructure modules (#1572) 2024-08-09 18:15:48 +03:00
crew v2 tests fix (#1956) 2025-08-07 02:04:38 +03:00
docks v2 tests fix (#1956) 2025-08-07 02:04:38 +03:00
hub v2 tests fix (#1956) 2025-08-07 02:04:38 +03:00
navigator fix: Prevent unintended use of SPN nodes when intel data is not yet applied 2025-09-02 18:26:34 +03:00
patrol Restructure modules (#1572) 2024-08-09 18:15:48 +03:00
ships Restructure modules (#1572) 2024-08-09 18:15:48 +03:00
sluice Restructure modules (#1572) 2024-08-09 18:15:48 +03:00
terminal v2 tests fix (#1956) 2025-08-07 02:04:38 +03:00
testing Fixed SPN HUB using wrong instance 2025-04-10 17:07:48 +01:00
tools fix(spn-hub): Added logging directory on V2 install script 2025-05-29 12:16:24 +01:00
unit Restructure modules (#1572) 2024-08-09 18:15:48 +03:00
debug.go [service] Fix SPN build 2024-08-28 11:50:45 +02:00
instance.go task(spn): added missing instance method from interface 2025-04-14 09:57:14 +01:00
spn.go wip: migrate to mono-repo. SPN has already been moved to spn/ 2024-03-20 09:45:32 +01:00
test wip: migrate to mono-repo. SPN has already been moved to spn/ 2024-03-20 09:45:32 +01:00
TESTING.md wip: migrate to mono-repo. SPN has already been moved to spn/ 2024-03-20 09:45:32 +01:00
TRADEMARKS wip: migrate to mono-repo. SPN has already been moved to spn/ 2024-03-20 09:45:32 +01:00