From acc3cfe586947cd2d98d4b8b4303cca127ffc396 Mon Sep 17 00:00:00 2001 From: Thomas Woerner Date: Mon, 22 May 2017 18:07:03 +0200 Subject: [PATCH 6/6] firewall.server.firewalld: New property for NAT helpers supported by the kernel The property nf_nat_helpers provides a dict with the nat helpers in a similar way as nf_conntrack_helpers. New description for the property nf_nat_helpers in firewalld.dbus man page. Related: RHBZ#1452681 (cherry picked from commit 34558ad775afd9476c4ec5373b9bc9ee03a195af) --- doc/xml/firewalld.dbus.xml | 4 ++++ src/firewall/server/firewalld.py | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/xml/firewalld.dbus.xml b/doc/xml/firewalld.dbus.xml index 52b5b3b0f955..92fe5c843dfc 100644 --- a/doc/xml/firewalld.dbus.xml +++ b/doc/xml/firewalld.dbus.xml @@ -467,6 +467,10 @@ nf_conntrack_helpers - a{sas} - (ro) The list of conntrack helpers supported by the kernel. + + nf_nat_helpers - a{sas} - (ro) + The list of nat helpers supported by the kernel. + interface_version - s - (ro) firewalld D-Bus interface version string. diff --git a/src/firewall/server/firewalld.py b/src/firewall/server/firewalld.py index 8c4bd4f0c66a..9c5d463de793 100644 --- a/src/firewall/server/firewalld.py +++ b/src/firewall/server/firewalld.py @@ -182,6 +182,9 @@ class FirewallD(slip.dbus.service.Object): elif prop == "nf_conntrack_helpers": return dbus.Dictionary(self.fw.nf_conntrack_helpers, "sas") + elif prop == "nf_nat_helpers": + return dbus.Dictionary(self.fw.nf_nat_helpers, "sas") + else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " @@ -222,8 +225,8 @@ class FirewallD(slip.dbus.service.Object): for x in [ "version", "interface_version", "state", "IPv4", "IPv6", "IPv6_rpfilter", "BRIDGE", "IPSet", "IPSetTypes", "nf_conntrack_helper_setting", - "nf_conntrack_helpers", "IPv4ICMPTypes", - "IPv6ICMPTypes" ]: + "nf_conntrack_helpers", "nf_nat_helpers", + "IPv4ICMPTypes", "IPv6ICMPTypes" ]: ret[x] = self._get_property(x) elif interface_name in [ config.dbus.DBUS_INTERFACE_ZONE, config.dbus.DBUS_INTERFACE_DIRECT, @@ -253,8 +256,8 @@ class FirewallD(slip.dbus.service.Object): "IPv4", "IPv6", "IPv6_rpfilter", "BRIDGE", "IPSet", "IPSetTypes", "nf_conntrack_helper_setting", - "nf_conntrack_helpers", "IPv4ICMPTypes", - "IPv6ICMPTypes" ]: + "nf_conntrack_helpers", "nf_nat_helpers", + "IPv4ICMPTypes", "IPv6ICMPTypes" ]: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.PropertyReadOnly: " "Property '%s' is read-only" % property_name) -- 2.12.0