[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.23.103.132: ~ $
# -*- coding: utf-8 -*-
#
# Copyright (C) 2012-2016 Red Hat, Inc.
#
# Authors:
# Thomas Woerner <twoerner@redhat.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

"""This module contains decorators for use with and without D-Bus"""

__all__ = ["FirewallDBusException", "handle_exceptions",
           "dbus_handle_exceptions", "dbus_service_method"]

import dbus
import dbus.service
import traceback
from dbus.exceptions import DBusException
from decorator import decorator

from firewall import config
from firewall.errors import FirewallError
from firewall import errors
from firewall.core.logger import log

############################################################################
#
# Exception handler decorators
#
############################################################################

class FirewallDBusException(dbus.DBusException):
    """FirewallDBusException"""
    _dbus_error_name = "%s.Exception" % config.dbus.DBUS_INTERFACE

@decorator
def handle_exceptions(func, *args, **kwargs):
    """Decorator to handle exceptions and log them. Used if not conneced
    to D-Bus.
    """
    try:
        return func(*args, **kwargs)
    except FirewallError as error:
        log.debug1(traceback.format_exc())
        log.error(error)
    except Exception:  # pylint: disable=W0703
        log.debug1(traceback.format_exc())
        log.exception()

@decorator
def dbus_handle_exceptions(func, *args, **kwargs):
    """Decorator to handle exceptions, log and report them into D-Bus

    :Raises DBusException: on a firewall error code problems.
    """
    try:
        return func(*args, **kwargs)
    except FirewallError as error:
        code = FirewallError.get_code(str(error))
        if code in [ errors.ALREADY_ENABLED, errors.NOT_ENABLED,
                     errors.ZONE_ALREADY_SET, errors.ALREADY_SET ]:
            log.warning(str(error))
        else:
            log.debug1(traceback.format_exc())
            log.error(str(error))
        raise FirewallDBusException(str(error))
    except DBusException as ex:
        # only log DBusExceptions once
        raise ex
    except Exception as ex:
        log.debug1(traceback.format_exc())
        log.exception()
        raise FirewallDBusException(str(ex))

def dbus_service_method(*args, **kwargs):
    """Add sender argument for D-Bus"""
    kwargs.setdefault("sender_keyword", "sender")
    return dbus.service.method(*args, **kwargs)

Filemanager

Name Type Size Permission Actions
.__init__.pyo.40009 File 147 B 0644
.config.pyo.40009 File 48.08 KB 0644
.config_helper.pyo.40009 File 15.45 KB 0644
.config_icmptype.pyo.40009 File 12.94 KB 0644
.config_ipset.pyo.40009 File 15.89 KB 0644
.config_service.pyo.40009 File 22.86 KB 0644
.config_zone.pyo.40009 File 36.55 KB 0644
.decorators.pyo.40009 File 2.59 KB 0644
.firewalld.pyo.40009 File 85.28 KB 0644
.server.pyo.40009 File 3.02 KB 0644
__init__.py File 0 B 0644
__init__.pyc File 147 B 0644
__init__.pyo File 147 B 0644
config.py File 60.64 KB 0644
config.pyc File 48.08 KB 0644
config.pyo File 48.08 KB 0644
config_helper.py File 17.13 KB 0644
config_helper.pyc File 15.45 KB 0644
config_helper.pyo File 15.45 KB 0644
config_icmptype.py File 14.58 KB 0644
config_icmptype.pyc File 12.94 KB 0644
config_icmptype.pyo File 12.94 KB 0644
config_ipset.py File 17.99 KB 0644
config_ipset.pyc File 15.89 KB 0644
config_ipset.pyo File 15.89 KB 0644
config_service.py File 26.19 KB 0644
config_service.pyc File 22.86 KB 0644
config_service.pyo File 22.86 KB 0644
config_zone.py File 41.8 KB 0644
config_zone.pyc File 36.55 KB 0644
config_zone.pyo File 36.55 KB 0644
decorators.py File 2.94 KB 0644
decorators.pyc File 2.59 KB 0644
decorators.pyo File 2.59 KB 0644
firewalld.py File 107.23 KB 0644
firewalld.pyc File 85.28 KB 0644
firewalld.pyo File 85.28 KB 0644
server.py File 3.74 KB 0644
server.pyc File 3.02 KB 0644
server.pyo File 3.02 KB 0644