[client] Move ICE and relay workers into the worker package

Relocate WorkerICE (renamed worker.ICE) and WorkerRelay plus ConnPriority
into client/internal/peer/worker. To break the peer<->worker cycle the
workers no longer take *Conn or ConnConfig: callbacks are passed as plain
functions (Conn's unexported methods as method values), and each worker
receives only the fields it needs (key, ICE config, isController) plus a
small services struct. Context is passed to OnNewOffer instead of stored.

Move the worker connection-status helper the other way, out of the worker
package into peer as worker_status.go (WorkerStatus / AtomicWorkerStatus),
since only Conn uses it.
This commit is contained in:
Zoltan Papp
2026-08-05 16:14:11 +02:00
committed by Zoltán Papp
parent 35c90be8ba
commit 99fbd19865
7 changed files with 154 additions and 147 deletions
+4 -3
View File
@@ -6,6 +6,7 @@ import (
"github.com/pion/ice/v4"
"github.com/netbirdio/netbird/client/internal/peer/signaling"
"github.com/netbirdio/netbird/client/internal/peer/worker"
"github.com/netbirdio/netbird/route"
)
@@ -35,8 +36,8 @@ type evRemoteCandidate struct {
}
type evICEReady struct {
priority ConnPriority
info ICEConnInfo
priority worker.ConnPriority
info worker.ICEConnInfo
}
type evICEDown struct {
@@ -44,7 +45,7 @@ type evICEDown struct {
}
type evRelayReady struct {
info RelayConnInfo
info worker.RelayConnInfo
}
type evRelayDown struct{}