From b72fa12470fd0a054f0dc492c009a49f0d992303 Mon Sep 17 00:00:00 2001 From: afeiszli Date: Mon, 22 Aug 2022 09:34:43 -0400 Subject: [PATCH] integrating iptables/nft checks --- netclient/ncutils/netclientutils.go | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/netclient/ncutils/netclientutils.go b/netclient/ncutils/netclientutils.go index 47d6a967..d7d62a0d 100644 --- a/netclient/ncutils/netclientutils.go +++ b/netclient/ncutils/netclientutils.go @@ -113,15 +113,23 @@ func GetWireGuard() string { // IsNFTablesPresent - returns true if nftables is present, false otherwise. // Does not consider OS, up to the caller to determine if the OS supports nftables/whether this check is valid. func IsNFTablesPresent() bool { - nftFound := FileExists("/usr/sbin/nft") - logger.Log(3, "nftables found:", strconv.FormatBool(nftFound)) - return nftFound + found := false + _, err := exec.LookPath("nft") + if err == nil { + found = true + } + return found } // IsIPTablesPresent - returns true if iptables is present, false otherwise // Does not consider OS, up to the caller to determine if the OS supports iptables/whether this check is valid. func IsIPTablesPresent() bool { - return FileExists("/usr/sbin/iptables") + found := false + _, err := exec.LookPath("iptables") + if err == nil { + found = true + } + return found } // IsKernel - checks if running kernel WireGuard @@ -523,16 +531,7 @@ func CheckUID() { // CheckFirewall - checks if iptables of nft install, if not exit func CheckFirewall() { - found := false - _, err := exec.LookPath("iptables") - if err == nil { - found = true - } - _, err = exec.LookPath("nft") - if err == nil { - found = true - } - if !found { + if !IsIPTablesPresent() && !IsNFTablesPresent() { log.Fatal("neither iptables nor nft is installed - please install one or the other and try again") } }