Browse Source

Merge pull request #12664 from Mashimiao/sysinfo-support-ipv4_forward-check

sysinfo: add IPv4Forwarding check
Brian Goff 10 years ago
parent
commit
fc9033a9c8
1 changed files with 13 additions and 0 deletions
  1. 13 0
      pkg/sysinfo/sysinfo.go

+ 13 - 0
pkg/sysinfo/sysinfo.go

@@ -4,6 +4,8 @@ import (
 	"io/ioutil"
 	"io/ioutil"
 	"os"
 	"os"
 	"path"
 	"path"
+	"strconv"
+	"strings"
 
 
 	"github.com/Sirupsen/logrus"
 	"github.com/Sirupsen/logrus"
 	"github.com/docker/libcontainer/cgroups"
 	"github.com/docker/libcontainer/cgroups"
@@ -48,6 +50,17 @@ func New(quiet bool) *SysInfo {
 		}
 		}
 	}
 	}
 
 
+	// Checek if ipv4_forward is disabled.
+	if data, err := ioutil.ReadFile("/proc/sys/net/ipv4/ip_forward"); os.IsNotExist(err) {
+		sysInfo.IPv4ForwardingDisabled = true
+	} else {
+		if enabled, _ := strconv.Atoi(strings.TrimSpace(string(data))); enabled == 0 {
+			sysInfo.IPv4ForwardingDisabled = true
+		} else {
+			sysInfo.IPv4ForwardingDisabled = false
+		}
+	}
+
 	// Check if AppArmor is supported.
 	// Check if AppArmor is supported.
 	if _, err := os.Stat("/sys/kernel/security/apparmor"); os.IsNotExist(err) {
 	if _, err := os.Stat("/sys/kernel/security/apparmor"); os.IsNotExist(err) {
 		sysInfo.AppArmor = false
 		sysInfo.AppArmor = false