浏览代码

Merge pull request #12847 from cpuguy83/fix_firewald_errors

Fix error message on firewalld init
Jessie Frazelle 10 年之前
父节点
当前提交
b0518fe038
共有 3 个文件被更改,包括 16 次插入14 次删除
  1. 3 1
      daemon/networkdriver/bridge/driver.go
  2. 7 12
      pkg/iptables/firewalld.go
  3. 6 1
      pkg/iptables/firewalld_test.go

+ 3 - 1
daemon/networkdriver/bridge/driver.go

@@ -232,7 +232,9 @@ func InitDriver(config *Config) error {
 	}
 	}
 
 
 	if config.EnableIptables {
 	if config.EnableIptables {
-		iptables.FirewalldInit()
+		if err := iptables.FirewalldInit(); err != nil {
+			logrus.Debugf("Error initializing firewalld: %v", err)
+		}
 	}
 	}
 
 
 	// Configure iptables for link support
 	// Configure iptables for link support

+ 7 - 12
pkg/iptables/firewalld.go

@@ -33,19 +33,18 @@ var (
 	onReloaded       []*func() // callbacks when Firewalld has been reloaded
 	onReloaded       []*func() // callbacks when Firewalld has been reloaded
 )
 )
 
 
-func FirewalldInit() {
+func FirewalldInit() error {
 	var err error
 	var err error
 
 
-	connection, err = newConnection()
-
-	if err != nil {
-		logrus.Errorf("Failed to connect to D-Bus system bus: %s", err)
+	if connection, err = newConnection(); err != nil {
+		return fmt.Errorf("Failed to connect to D-Bus system bus: %v", err)
 	}
 	}
 	if connection != nil {
 	if connection != nil {
 		go signalHandler()
 		go signalHandler()
 	}
 	}
 
 
 	firewalldRunning = checkRunning()
 	firewalldRunning = checkRunning()
+	return nil
 }
 }
 
 
 // New() establishes a connection to the system bus.
 // New() establishes a connection to the system bus.
@@ -146,19 +145,15 @@ func checkRunning() bool {
 		logrus.Infof("Firewalld running: %t", err == nil)
 		logrus.Infof("Firewalld running: %t", err == nil)
 		return err == nil
 		return err == nil
 	}
 	}
-	logrus.Info("Firewalld not running")
 	return false
 	return false
 }
 }
 
 
 // Firewalld's passthrough method simply passes args through to iptables/ip6tables
 // Firewalld's passthrough method simply passes args through to iptables/ip6tables
 func Passthrough(ipv IPV, args ...string) ([]byte, error) {
 func Passthrough(ipv IPV, args ...string) ([]byte, error) {
 	var output string
 	var output string
-
 	logrus.Debugf("Firewalld passthrough: %s, %s", ipv, args)
 	logrus.Debugf("Firewalld passthrough: %s, %s", ipv, args)
-	err := connection.sysobj.Call(dbusInterface+".direct.passthrough", 0, ipv, args).Store(&output)
-	if output != "" {
-		logrus.Debugf("passthrough output: %s", output)
+	if err := connection.sysobj.Call(dbusInterface+".direct.passthrough", 0, ipv, args).Store(&output); err != nil {
+		return nil, err
 	}
 	}
-
-	return []byte(output), err
+	return []byte(output), nil
 }
 }

+ 6 - 1
pkg/iptables/firewalld_test.go

@@ -7,7 +7,12 @@ import (
 )
 )
 
 
 func TestFirewalldInit(t *testing.T) {
 func TestFirewalldInit(t *testing.T) {
-	FirewalldInit()
+	if !checkRunning() {
+		t.Skip("firewalld is not running")
+	}
+	if err := FirewalldInit(); err != nil {
+		t.Fatal(err)
+	}
 }
 }
 
 
 func TestReloaded(t *testing.T) {
 func TestReloaded(t *testing.T) {