mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-21 01:36:46 +00:00
Implement two-layer optimization to reduce Windows NRPT registry operations: 1. Domain Batching (host_windows.go): - Batch up to 50 domains per NRPT rule (Windows undocumented limit) - Reduces NRPT rules by ~97% (e.g., 184 domains: 184 rules → 4 rules) - Modified addDNSMatchPolicy() to create batched NRPT entries - Added comprehensive tests in host_windows_test.go 2. Batch Mode (server.go): - Added BeginBatch/EndBatch methods to defer DNS updates - Modified RegisterHandler/DeregisterHandler to skip applyHostConfig in batch mode - Protected all applyHostConfig() calls with batch mode checks - Updated route manager to wrap route operations with batch calls
30 lines
470 B
Go
30 lines
470 B
Go
package dns
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestGetServerDns(t *testing.T) {
|
|
_, err := GetServerDns()
|
|
if err == nil {
|
|
t.Errorf("invalid dns server instance")
|
|
}
|
|
|
|
srv := &MockServer{}
|
|
setServerDns(srv)
|
|
|
|
srvB, err := GetServerDns()
|
|
if err != nil {
|
|
t.Errorf("invalid dns server instance: %s", err)
|
|
}
|
|
|
|
mockSrvB, ok := srvB.(*MockServer)
|
|
if !ok {
|
|
t.Errorf("returned server is not a MockServer")
|
|
}
|
|
|
|
if mockSrvB != srv {
|
|
t.Errorf("mismatch dns instances")
|
|
}
|
|
}
|