############################################################################
##
## Copyright (c) 2000-2015 BalaBit IT Ltd, Budapest, Hungary
## Copyright (c) 2015-2018 BalaSys IT Ltd, Budapest, Hungary
##
##
## 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, write to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
##
############################################################################

"""
<module maturity="stable">
  <summary>Module defining interface to the Global.</summary>
  <description>
    <para>
      Global variables used by Zorp policy layer.
    </para>
  </description>
</module>
"""
import threading

services = {}
authentication_providers = {}
authentication_policies = {}
authorization_policies = {}
neyes_waiting_authorization_policies_lock = threading.Lock()
neyes_waiting_authorization_policies = {}
resolver_policies = {}
auth_policies = {}
stacking_providers = {}
zones = {}
nat_policies = {}
dispatches = []
rules = None
auth_caches = {}
matchers = {}
notification_policy = None
instance_name = ''
external_authorization_waiting_lock = threading.Lock()
external_authorization_waiting = {}
kzorp_available = False
encryption_policies = {}
none_encryption = None
detectors = {}
policy_zones_reload_lock = threading.Lock()
virtual_instance_name = ''
deinit_callbacks = []
