diff --git a/iptables/firewalld.go b/iptables/firewalld.go index 1c0cddb..89f123a 100644 --- a/iptables/firewalld.go +++ b/iptables/firewalld.go @@ -33,19 +33,18 @@ var ( onReloaded []*func() // callbacks when Firewalld has been reloaded ) -func FirewalldInit() { +func FirewalldInit() 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 { go signalHandler() } firewalldRunning = checkRunning() + return nil } // New() establishes a connection to the system bus. @@ -146,19 +145,15 @@ func checkRunning() bool { logrus.Infof("Firewalld running: %t", err == nil) return err == nil } - logrus.Info("Firewalld not running") return false } // Firewalld's passthrough method simply passes args through to iptables/ip6tables func Passthrough(ipv IPV, args ...string) ([]byte, error) { var output string - 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 } diff --git a/iptables/firewalld_test.go b/iptables/firewalld_test.go index ff92657..547ba7e 100644 --- a/iptables/firewalld_test.go +++ b/iptables/firewalld_test.go @@ -7,7 +7,12 @@ import ( ) 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) {