Adjust wgtester to work with bpf

This commit is contained in:
Owen
2025-04-03 21:59:16 -04:00
parent e47ddaa916
commit 6b0ca9cab5
3 changed files with 213 additions and 251 deletions

17
main.go
View File

@@ -23,6 +23,7 @@ import (
"github.com/fosrl/newt/proxy"
"github.com/fosrl/newt/websocket"
"github.com/fosrl/newt/wg"
"github.com/fosrl/newt/wgtester"
"golang.org/x/net/icmp"
"golang.org/x/net/ipv4"
@@ -442,6 +443,7 @@ func main() {
var pm *proxy.ProxyManager
var connected bool
var wgData WgData
var wgTesterServer *wgtester.Server
if generateAndSaveKeyTo != "" {
// make sure we are running on linux
@@ -465,6 +467,17 @@ func main() {
logger.Fatal("Failed to create WireGuard service: %v", err)
}
defer wgService.Close()
wgTesterServer = wgtester.NewServer("0.0.0.0", wgService.Port, id) // TODO: maybe make this the same ip of the wg server?
err := wgTesterServer.Start()
if err != nil {
logger.Error("Failed to start WireGuard tester server: %v", err)
} else {
logger.Info("WireGuard connection testing server started on port %d", wgService.Port)
// Make sure to stop the server on exit
defer wgTesterServer.Stop()
}
}
client.RegisterHandler("newt/terminate", func(msg websocket.WSMessage) {
@@ -711,6 +724,10 @@ persistent_keepalive_interval=5`, fixKey(fmt.Sprintf("%s", privateKey)), fixKey(
wgService.Close()
}
if wgTesterServer != nil {
wgTesterServer.Stop()
}
if pm != nil {
pm.Stop()
}