diff --git a/common.go b/common.go index 728152f..1f8501d 100644 --- a/common.go +++ b/common.go @@ -600,6 +600,10 @@ func configureWindows(interfaceName string, ip net.IP, ipNet *net.IPNet) error { } func WindowsAddRoute(destination string, gateway string, interfaceName string) error { + if runtime.GOOS != "windows" { + return nil + } + var cmd *exec.Cmd // Parse destination to get the IP and subnet diff --git a/main.go b/main.go index 3559cb2..fd531e2 100644 --- a/main.go +++ b/main.go @@ -319,7 +319,16 @@ func main() { return } - DarwinAddRoute(site.ServerIP, "", interfaceName) + err = DarwinAddRoute(site.ServerIP, "", interfaceName) + if err != nil { + 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 + } logger.Info("Configured peer %s", site.PublicKey) } @@ -413,6 +422,11 @@ func main() { logger.Error("Failed to add route for new peer: %v", err) return } + err = WindowsAddRoute(siteConfig.ServerIP, "", interfaceName) + if err != nil { + logger.Error("Failed to add route for new peer: %v", err) + return + } // Add successful logger.Info("Successfully added peer for site %d", addData.SiteId) @@ -471,6 +485,11 @@ func main() { logger.Error("Failed to remove route for peer: %v", err) return } + err = WindowsRemoveRoute(peerToRemove.ServerIP) + if err != nil { + logger.Error("Failed to remove route for peer: %v", err) + return + } // Remove successful logger.Info("Successfully removed peer for site %d", removeData.SiteId)