Blame src/firewall/server/config_icmptype.py

Packit Service 84cb3c
# -*- coding: utf-8 -*-
Packit Service 84cb3c
#
Packit Service 84cb3c
# Copyright (C) 2010-2016 Red Hat, Inc.
Packit Service 84cb3c
#
Packit Service 84cb3c
# Authors:
Packit Service 84cb3c
# Thomas Woerner <twoerner@redhat.com>
Packit Service 84cb3c
#
Packit Service 84cb3c
# This program is free software; you can redistribute it and/or modify
Packit Service 84cb3c
# it under the terms of the GNU General Public License as published by
Packit Service 84cb3c
# the Free Software Foundation; either version 2 of the License, or
Packit Service 84cb3c
# (at your option) any later version.
Packit Service 84cb3c
#
Packit Service 84cb3c
# This program is distributed in the hope that it will be useful,
Packit Service 84cb3c
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 84cb3c
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 84cb3c
# GNU General Public License for more details.
Packit Service 84cb3c
#
Packit Service 84cb3c
# You should have received a copy of the GNU General Public License
Packit Service 84cb3c
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 84cb3c
Packit Service 84cb3c
# force use of pygobject3 in python-slip
Packit Service 84cb3c
from gi.repository import GObject
Packit Service 84cb3c
import sys
Packit Service 84cb3c
sys.modules['gobject'] = GObject
Packit Service 84cb3c
Packit Service 84cb3c
import dbus
Packit Service 84cb3c
import dbus.service
Packit Service 84cb3c
import slip.dbus
Packit Service 84cb3c
import slip.dbus.service
Packit Service 84cb3c
Packit Service 84cb3c
from firewall import config
Packit Service 84cb3c
from firewall.dbus_utils import dbus_to_python, \
Packit Service 84cb3c
    dbus_introspection_prepare_properties, \
Packit Service 84cb3c
    dbus_introspection_add_properties
Packit Service 84cb3c
from firewall.core.io.icmptype import IcmpType
Packit Service 84cb3c
from firewall.core.logger import log
Packit Service 84cb3c
from firewall.server.decorators import handle_exceptions, \
Packit Service 84cb3c
    dbus_handle_exceptions, dbus_service_method
Packit Service 84cb3c
from firewall import errors
Packit Service 84cb3c
from firewall.errors import FirewallError
Packit Service 84cb3c
Packit Service 84cb3c
############################################################################
Packit Service 84cb3c
#
Packit Service 84cb3c
# class FirewallDConfigIcmpType
Packit Service 84cb3c
#
Packit Service 84cb3c
############################################################################
Packit Service 84cb3c
Packit Service 84cb3c
class FirewallDConfigIcmpType(slip.dbus.service.Object):
Packit Service 84cb3c
    """FirewallD main class"""
Packit Service 84cb3c
Packit Service 84cb3c
    persistent = True
Packit Service 84cb3c
    """ Make FirewallD persistent. """
Packit Service 84cb3c
    default_polkit_auth_required = config.dbus.PK_ACTION_CONFIG
Packit Service 84cb3c
    """ Use PK_ACTION_INFO as a default """
Packit Service 84cb3c
Packit Service 84cb3c
    @handle_exceptions
Packit Service 84cb3c
    def __init__(self, parent, conf, icmptype, item_id, *args, **kwargs):
Packit Service 84cb3c
        super(FirewallDConfigIcmpType, self).__init__(*args, **kwargs)
Packit Service 84cb3c
        self.parent = parent
Packit Service 84cb3c
        self.config = conf
Packit Service 84cb3c
        self.obj = icmptype
Packit Service 84cb3c
        self.item_id = item_id
Packit Service 84cb3c
        self.busname = args[0]
Packit Service 84cb3c
        self.path = args[1]
Packit Service 84cb3c
        self._log_prefix = "config.icmptype.%d" % self.item_id
Packit Service 84cb3c
        dbus_introspection_prepare_properties(
Packit Service 84cb3c
            self, config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def __del__(self):
Packit Service 84cb3c
        pass
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def unregister(self):
Packit Service 84cb3c
        self.remove_from_connection()
Packit Service 84cb3c
Packit Service 84cb3c
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Packit Service 84cb3c
Packit Service 84cb3c
    # P R O P E R T I E S
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def _get_property(self, property_name):
Packit Service 84cb3c
        if property_name == "name":
Packit Service 84cb3c
            return dbus.String(self.obj.name)
Packit Service 84cb3c
        elif property_name == "filename":
Packit Service 84cb3c
            return dbus.String(self.obj.filename)
Packit Service 84cb3c
        elif property_name == "path":
Packit Service 84cb3c
            return dbus.String(self.obj.path)
Packit Service 84cb3c
        elif property_name == "default":
Packit Service 84cb3c
            return dbus.Boolean(self.obj.default)
Packit Service 84cb3c
        elif property_name == "builtin":
Packit Service 84cb3c
            return dbus.Boolean(self.obj.builtin)
Packit Service 84cb3c
        else:
Packit Service 84cb3c
            raise dbus.exceptions.DBusException(
Packit Service 84cb3c
                "org.freedesktop.DBus.Error.InvalidArgs: "
Packit Service 84cb3c
                "Property '%s' does not exist" % property_name)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ss',
Packit Service 84cb3c
                         out_signature='v')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def Get(self, interface_name, property_name, sender=None): # pylint: disable=W0613
Packit Service 84cb3c
        # get a property
Packit Service 84cb3c
        interface_name = dbus_to_python(interface_name, str)
Packit Service 84cb3c
        property_name = dbus_to_python(property_name, str)
Packit Service 84cb3c
        log.debug1("%s.Get('%s', '%s')", self._log_prefix,
Packit Service 84cb3c
                   interface_name, property_name)
Packit Service 84cb3c
Packit Service 84cb3c
        if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE:
Packit Service 84cb3c
            raise dbus.exceptions.DBusException(
Packit Service 84cb3c
                "org.freedesktop.DBus.Error.UnknownInterface: "
Packit Service 84cb3c
                "Interface '%s' does not exist" % interface_name)
Packit Service 84cb3c
Packit Service 84cb3c
        return self._get_property(property_name)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='s',
Packit Service 84cb3c
                         out_signature='a{sv}')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def GetAll(self, interface_name, sender=None): # pylint: disable=W0613
Packit Service 84cb3c
        interface_name = dbus_to_python(interface_name, str)
Packit Service 84cb3c
        log.debug1("%s.GetAll('%s')", self._log_prefix, interface_name)
Packit Service 84cb3c
Packit Service 84cb3c
        if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE:
Packit Service 84cb3c
            raise dbus.exceptions.DBusException(
Packit Service 84cb3c
                "org.freedesktop.DBus.Error.UnknownInterface: "
Packit Service 84cb3c
                "Interface '%s' does not exist" % interface_name)
Packit Service 84cb3c
Packit Service 84cb3c
        ret = { }
Packit Service 84cb3c
        for x in [ "name", "filename", "path", "default", "builtin" ]:
Packit Service 84cb3c
            ret[x] = self._get_property(x)
Packit Service 84cb3c
        return dbus.Dictionary(ret, signature="sv")
Packit Service 84cb3c
Packit Service 84cb3c
    @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG)
Packit Service 84cb3c
    @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ssv')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def Set(self, interface_name, property_name, new_value, sender=None):
Packit Service 84cb3c
        interface_name = dbus_to_python(interface_name, str)
Packit Service 84cb3c
        property_name = dbus_to_python(property_name, str)
Packit Service 84cb3c
        new_value = dbus_to_python(new_value)
Packit Service 84cb3c
        log.debug1("%s.Set('%s', '%s', '%s')", self._log_prefix,
Packit Service 84cb3c
                   interface_name, property_name, new_value)
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
Packit Service 84cb3c
        if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE:
Packit Service 84cb3c
            raise dbus.exceptions.DBusException(
Packit Service 84cb3c
                "org.freedesktop.DBus.Error.UnknownInterface: "
Packit Service 84cb3c
                "Interface '%s' does not exist" % interface_name)
Packit Service 84cb3c
Packit Service 84cb3c
        raise dbus.exceptions.DBusException(
Packit Service 84cb3c
            "org.freedesktop.DBus.Error.PropertyReadOnly: "
Packit Service 84cb3c
            "Property '%s' is read-only" % property_name)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus.service.signal(dbus.PROPERTIES_IFACE, signature='sa{sv}as')
Packit Service 84cb3c
    def PropertiesChanged(self, interface_name, changed_properties,
Packit Service 84cb3c
                          invalidated_properties):
Packit Service 84cb3c
        interface_name = dbus_to_python(interface_name, str)
Packit Service 84cb3c
        changed_properties = dbus_to_python(changed_properties)
Packit Service 84cb3c
        invalidated_properties = dbus_to_python(invalidated_properties)
Packit Service 84cb3c
        log.debug1("%s.PropertiesChanged('%s', '%s', '%s')", self._log_prefix,
Packit Service 84cb3c
                   interface_name, changed_properties, invalidated_properties)
Packit Service 84cb3c
Packit Service 84cb3c
    @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO)
Packit Service 84cb3c
    @dbus_service_method(dbus.INTROSPECTABLE_IFACE, out_signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def Introspect(self, sender=None): # pylint: disable=W0613
Packit Service 84cb3c
        log.debug2("%s.Introspect()", self._log_prefix)
Packit Service 84cb3c
Packit Service 84cb3c
        data = super(FirewallDConfigIcmpType, self).Introspect(
Packit Service 84cb3c
            self.path, self.busname.get_bus())
Packit Service 84cb3c
Packit Service 84cb3c
        return dbus_introspection_add_properties(
Packit Service 84cb3c
            self, data, config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE)
Packit Service 84cb3c
Packit Service 84cb3c
    # S E T T I N G S
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         out_signature=IcmpType.DBUS_SIGNATURE)
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def getSettings(self, sender=None): # pylint: disable=W0613
Packit Service 84cb3c
        """get settings for icmptype
Packit Service 84cb3c
        """
Packit Service 84cb3c
        log.debug1("%s.getSettings()", self._log_prefix)
Packit Service 84cb3c
        return self.config.get_icmptype_config(self.obj)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         in_signature=IcmpType.DBUS_SIGNATURE)
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def update(self, settings, sender=None):
Packit Service 84cb3c
        """update settings for icmptype
Packit Service 84cb3c
        """
Packit Service 84cb3c
        settings = dbus_to_python(settings)
Packit Service 84cb3c
        log.debug1("%s.update('...')", self._log_prefix)
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
        self.obj = self.config.set_icmptype_config(self.obj, settings)
Packit Service 84cb3c
        self.Updated(self.obj.name)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE)
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def loadDefaults(self, sender=None):
Packit Service 84cb3c
        """load default settings for builtin icmptype
Packit Service 84cb3c
        """
Packit Service 84cb3c
        log.debug1("%s.loadDefaults()", self._log_prefix)
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
        self.obj = self.config.load_icmptype_defaults(self.obj)
Packit Service 84cb3c
        self.Updated(self.obj.name)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def Updated(self, name):
Packit Service 84cb3c
        log.debug1("%s.Updated('%s')" % (self._log_prefix, name))
Packit Service 84cb3c
Packit Service 84cb3c
    # R E M O V E
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE)
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def remove(self, sender=None):
Packit Service 84cb3c
        """remove icmptype
Packit Service 84cb3c
        """
Packit Service 84cb3c
        log.debug1("%s.removeIcmpType()", self._log_prefix)
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
        self.config.remove_icmptype(self.obj)
Packit Service 84cb3c
        self.parent.removeIcmpType(self.obj)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def Removed(self, name):
Packit Service 84cb3c
        log.debug1("%s.Removed('%s')" % (self._log_prefix, name))
Packit Service 84cb3c
Packit Service 84cb3c
    # R E N A M E
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         in_signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def rename(self, name, sender=None):
Packit Service 84cb3c
        """rename icmptype
Packit Service 84cb3c
        """
Packit Service 84cb3c
        name = dbus_to_python(name, str)
Packit Service 84cb3c
        log.debug1("%s.rename('%s')", self._log_prefix, name)
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
        self.obj = self.config.rename_icmptype(self.obj, name)
Packit Service 84cb3c
        self.Renamed(name)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def Renamed(self, name):
Packit Service 84cb3c
        log.debug1("%s.Renamed('%s')" % (self._log_prefix, name))
Packit Service 84cb3c
Packit Service 84cb3c
    # version
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         out_signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def getVersion(self, sender=None): # pylint: disable=W0613
Packit Service 84cb3c
        log.debug1("%s.getVersion()", self._log_prefix)
Packit Service 84cb3c
        return self.getSettings()[0]
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         in_signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def setVersion(self, version, sender=None):
Packit Service 84cb3c
        version = dbus_to_python(version, str)
Packit Service 84cb3c
        log.debug1("%s.setVersion('%s')", self._log_prefix, version)
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
        settings = list(self.getSettings())
Packit Service 84cb3c
        settings[0] = version
Packit Service 84cb3c
        self.update(settings)
Packit Service 84cb3c
Packit Service 84cb3c
    # short
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         out_signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def getShort(self, sender=None): # pylint: disable=W0613
Packit Service 84cb3c
        log.debug1("%s.getShort()", self._log_prefix)
Packit Service 84cb3c
        return self.getSettings()[1]
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         in_signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def setShort(self, short, sender=None):
Packit Service 84cb3c
        short = dbus_to_python(short, str)
Packit Service 84cb3c
        log.debug1("%s.setShort('%s')", self._log_prefix, short)
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
        settings = list(self.getSettings())
Packit Service 84cb3c
        settings[1] = short
Packit Service 84cb3c
        self.update(settings)
Packit Service 84cb3c
Packit Service 84cb3c
    # description
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         out_signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def getDescription(self, sender=None): # pylint: disable=W0613
Packit Service 84cb3c
        log.debug1("%s.getDescription()", self._log_prefix)
Packit Service 84cb3c
        return self.getSettings()[2]
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         in_signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def setDescription(self, description, sender=None):
Packit Service 84cb3c
        description = dbus_to_python(description, str)
Packit Service 84cb3c
        log.debug1("%s.setDescription('%s')", self._log_prefix,
Packit Service 84cb3c
                   description)
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
        settings = list(self.getSettings())
Packit Service 84cb3c
        settings[2] = description
Packit Service 84cb3c
        self.update(settings)
Packit Service 84cb3c
Packit Service 84cb3c
    # destination
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         out_signature='as')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def getDestinations(self, sender=None): # pylint: disable=W0613
Packit Service 84cb3c
        log.debug1("%s.getDestinations()", self._log_prefix)
Packit Service 84cb3c
        return sorted(self.getSettings()[3])
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         in_signature='as')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def setDestinations(self, destinations, sender=None):
Packit Service 84cb3c
        destinations = dbus_to_python(destinations, list)
Packit Service 84cb3c
        log.debug1("%s.setDestinations('[%s]')", self._log_prefix,
Packit Service 84cb3c
                   ",".join(destinations))
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
        settings = list(self.getSettings())
Packit Service 84cb3c
        settings[3] = destinations
Packit Service 84cb3c
        self.update(settings)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         in_signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def addDestination(self, destination, sender=None):
Packit Service 84cb3c
        destination = dbus_to_python(destination, str)
Packit Service 84cb3c
        log.debug1("%s.addDestination('%s')", self._log_prefix,
Packit Service 84cb3c
                   destination)
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
        settings = list(self.getSettings())
Packit Service 84cb3c
        if destination in settings[3]:
Packit Service 84cb3c
            raise FirewallError(errors.ALREADY_ENABLED, destination)
Packit Service 84cb3c
        settings[3].append(destination)
Packit Service 84cb3c
        self.update(settings)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         in_signature='s')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def removeDestination(self, destination, sender=None):
Packit Service 84cb3c
        destination = dbus_to_python(destination, str)
Packit Service 84cb3c
        log.debug1("%s.removeDestination('%s')", self._log_prefix,
Packit Service 84cb3c
                   destination)
Packit Service 84cb3c
        self.parent.accessCheck(sender)
Packit Service 84cb3c
        settings = list(self.getSettings())
Packit Service 84cb3c
        if settings[3]:
Packit Service 84cb3c
            if destination not in settings[3]:
Packit Service 84cb3c
                raise FirewallError(errors.NOT_ENABLED, destination)
Packit Service 84cb3c
            else:
Packit Service 84cb3c
                settings[3].remove(destination)
Packit Service 84cb3c
        else:  # empty means all
Packit Service 84cb3c
            settings[3] = list(set(['ipv4', 'ipv6']) -
Packit Service 84cb3c
                               set([destination]))
Packit Service 84cb3c
        self.update(settings)
Packit Service 84cb3c
Packit Service 84cb3c
    @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE,
Packit Service 84cb3c
                         in_signature='s', out_signature='b')
Packit Service 84cb3c
    @dbus_handle_exceptions
Packit Service 84cb3c
    def queryDestination(self, destination, sender=None): # pylint: disable=W0613
Packit Service 84cb3c
        destination = dbus_to_python(destination, str)
Packit Service 84cb3c
        log.debug1("%s.queryDestination('%s')", self._log_prefix,
Packit Service 84cb3c
                   destination)
Packit Service 84cb3c
        settings = self.getSettings()
Packit Service 84cb3c
        # empty means all
Packit Service 84cb3c
        return (not settings[3] or
Packit Service 84cb3c
                destination in settings[3])