diff --git a/go.sum b/go.sum index e3f31ce..6c790fc 100644 --- a/go.sum +++ b/go.sum @@ -6,6 +6,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/kardianos/service v1.2.2 h1:ZvePhAHfvo0A7Mftk/tEzqEZ7Q4lgnR8sGz4xu1YX60= +github.com/kardianos/service v1.2.2/go.mod h1:CIMRFEJVL+0DS1a3Nx06NaMn4Dz63Ng6O7dl0qH0zVM= github.com/vishvananda/netlink v1.3.0 h1:X7l42GfcV4S6E4vHTsw48qbrV+9PVojNfIhZcwQdrZk= github.com/vishvananda/netlink v1.3.0/go.mod h1:i6NetklAujEcC6fK0JPjT8qSwWyO0HLn4UKG+hGqeJs= github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8= @@ -16,6 +18,7 @@ golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa h1:t2QcU6V556bFjYgu4L6C+6VrC golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa/go.mod h1:BHOTPb3L19zxehTsLoJXVaTktb06DFgmdW6Wb9s8jqk= golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= diff --git a/main.go b/main.go index fd531e2..2e9ceff 100644 --- a/main.go +++ b/main.go @@ -324,11 +324,12 @@ func main() { logger.Error("Failed to add route for peer: %v", err) return } - err = WindowsAddRoute(site.ServerIP, "", interfaceName) - if err != nil { - logger.Error("Failed to add route for peer: %v", err) - return - } + // this causes routing issues on Windows + // err = WindowsAddRoute(site.ServerIP, "", interfaceName) + // if err != nil { + // logger.Error("Failed to add route for peer: %v", err) + // return + // } logger.Info("Configured peer %s", site.PublicKey) } diff --git a/peermonitor/peermonitor.go b/peermonitor/peermonitor.go index edb5451..fa11324 100644 --- a/peermonitor/peermonitor.go +++ b/peermonitor/peermonitor.go @@ -159,9 +159,14 @@ func (pm *PeerMonitor) Start() { // Start monitoring all peers for siteID, client := range pm.monitors { siteIDCopy := siteID // Create a copy for the closure - client.StartMonitor(func(status wgtester.ConnectionStatus) { + err := client.StartMonitor(func(status wgtester.ConnectionStatus) { pm.handleConnectionStatusChange(siteIDCopy, status) }) + if err != nil { + logger.Error("Failed to start monitoring peer %d: %v\n", siteID, err) + continue + } + logger.Info("Started monitoring peer %d\n", siteID) } } @@ -197,11 +202,11 @@ persistent_keepalive_interval=1`, pm.privateKey, config.PublicKey, config.Server err := pm.device.IpcSet(wgConfig) if err != nil { - fmt.Printf("Failed to configure WireGuard device: %v\n", err) + logger.Error("Failed to configure WireGuard device: %v\n", err) return } - fmt.Printf("Adjusted peer %d to point to relay!\n", siteID) + logger.Info("Adjusted peer %d to point to relay!\n", siteID) // Send relay message to the server if pm.wsClient != nil { diff --git a/wgtester/wgtester.go b/wgtester/wgtester.go index 5c9d239..d63fc8d 100644 --- a/wgtester/wgtester.go +++ b/wgtester/wgtester.go @@ -3,10 +3,11 @@ package wgtester import ( "context" "encoding/binary" - "log" "net" "sync" "time" + + "github.com/fosrl/newt/logger" ) const ( @@ -99,6 +100,7 @@ func (c *Client) ensureConnection() error { // Returns true if connected, false otherwise func (c *Client) TestConnection(ctx context.Context) (bool, time.Duration) { if err := c.ensureConnection(); err != nil { + logger.Warn("Failed to ensure connection: %v", err) return false, 0 } @@ -117,12 +119,13 @@ func (c *Client) TestConnection(ctx context.Context) (bool, time.Duration) { timestamp := time.Now().UnixNano() binary.BigEndian.PutUint64(packet[5:13], uint64(timestamp)) - // Send the packet + logger.Debug("Attempting to send monitor packet to %s", c.serverAddr) _, err := c.conn.Write(packet) if err != nil { - log.Printf("Error sending packet: %v", err) + logger.Info("Error sending packet: %v", err) continue } + logger.Debug("Successfully sent monitor packet") // Set read deadline c.conn.SetReadDeadline(time.Now().Add(c.timeout)) @@ -136,7 +139,7 @@ func (c *Client) TestConnection(ctx context.Context) (bool, time.Duration) { time.Sleep(100 * time.Millisecond) // Brief pause between attempts continue } - log.Printf("Error reading response: %v", err) + logger.Error("Error reading response: %v", err) continue } @@ -180,6 +183,7 @@ func (c *Client) StartMonitor(callback MonitorCallback) error { defer c.monitorLock.Unlock() if c.monitorRunning { + logger.Info("Monitor already running") return nil // Already running }