Blame SOURCES/0011-fix-dbus-add-missing-APIs-for-service-includes.patch

8a3219
From 464add2ad05781e72e54d05cc06150c21e1c282d Mon Sep 17 00:00:00 2001
8a3219
From: Eric Garver <eric@garver.life>
8a3219
Date: Mon, 1 Jul 2019 10:27:51 -0400
8a3219
Subject: [PATCH 11/20] fix: dbus: add missing APIs for service includes
8a3219
8a3219
Fixes: 1fc208bf9317 ("feat: service includes")
8a3219
(cherry picked from commit bcdc1e2bf1e71c32606fdaadabd9a913e2e1d651)
8a3219
---
8a3219
 src/firewall/server/config_service.py | 61 +++++++++++++++++++++++++++
8a3219
 1 file changed, 61 insertions(+)
8a3219
8a3219
diff --git a/src/firewall/server/config_service.py b/src/firewall/server/config_service.py
8a3219
index 47530d319bdb..05ded1c78da7 100644
8a3219
--- a/src/firewall/server/config_service.py
8a3219
+++ b/src/firewall/server/config_service.py
8a3219
@@ -652,3 +652,64 @@ class FirewallDConfigService(slip.dbus.service.Object):
8a3219
         settings = self.getSettings()
8a3219
         return (family in settings[5] and
8a3219
                 address == settings[5][family])
8a3219
+
8a3219
+    # includes
8a3219
+
8a3219
+    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE,
8a3219
+                         out_signature='as')
8a3219
+    @dbus_handle_exceptions
8a3219
+    def getIncludes(self, sender=None):
8a3219
+        log.debug1("%s.getIncludes()", self._log_prefix)
8a3219
+        self.parent.accessCheck(sender)
8a3219
+        settings = list(self.config.get_service_config(self.obj))
8a3219
+        return settings[8]
8a3219
+
8a3219
+    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE,
8a3219
+                         in_signature='as')
8a3219
+    @dbus_handle_exceptions
8a3219
+    def setIncludes(self, includes, sender=None):
8a3219
+        includes = dbus_to_python(includes, list)
8a3219
+        log.debug1("%s.setIncludes('%s')", self._log_prefix, includes)
8a3219
+        self.parent.accessCheck(sender)
8a3219
+        settings = list(self.config.get_service_config(self.obj))
8a3219
+        settings[8] = includes[:]
8a3219
+        self.config.set_service_config(self.obj, tuple(settings))
8a3219
+        self.Updated(self.obj.name)
8a3219
+
8a3219
+    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE,
8a3219
+                         in_signature='s')
8a3219
+    @dbus_handle_exceptions
8a3219
+    def addInclude(self, include, sender=None):
8a3219
+        include = dbus_to_python(include, str)
8a3219
+        log.debug1("%s.addInclude('%s')", self._log_prefix, include)
8a3219
+        self.parent.accessCheck(sender)
8a3219
+        settings = list(self.config.get_service_config(self.obj))
8a3219
+        settings[8].append(include)
8a3219
+        self.config.set_service_config(self.obj, tuple(settings))
8a3219
+        self.Updated(self.obj.name)
8a3219
+
8a3219
+    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE,
8a3219
+                         in_signature='s')
8a3219
+    @dbus_handle_exceptions
8a3219
+    def removeInclude(self, include, sender=None):
8a3219
+        include = dbus_to_python(include, str)
8a3219
+        log.debug1("%s.removeInclude('%s')", self._log_prefix, include)
8a3219
+        self.parent.accessCheck(sender)
8a3219
+        settings = list(self.config.get_service_config(self.obj))
8a3219
+        settings[8].remove(include)
8a3219
+        self.config.set_service_config(self.obj, tuple(settings))
8a3219
+        self.Updated(self.obj.name)
8a3219
+
8a3219
+    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE,
8a3219
+                         in_signature='s', out_signature='b')
8a3219
+    @dbus_handle_exceptions
8a3219
+    def queryInclude(self, include, sender=None):
8a3219
+        include = dbus_to_python(include, str)
8a3219
+        log.debug1("%s.queryInclude('%s')", self._log_prefix, include)
8a3219
+        settings = list(self.config.get_service_config(self.obj))
8a3219
+        try:
8a3219
+            settings[8].index(include)
8a3219
+        except ValueError:
8a3219
+            return False
8a3219
+        else:
8a3219
+            return True
8a3219
-- 
8a3219
2.20.1
8a3219