|
@@ -34,6 +34,7 @@ import select
|
|
import errno
|
|
import errno
|
|
from optparse import OptionParser, OptionValueError
|
|
from optparse import OptionParser, OptionValueError
|
|
from isc.util import socketserver_mixin
|
|
from isc.util import socketserver_mixin
|
|
|
|
+import isc.server_common.tsig_keyring
|
|
|
|
|
|
from isc.log_messages.xfrout_messages import *
|
|
from isc.log_messages.xfrout_messages import *
|
|
|
|
|
|
@@ -769,7 +770,7 @@ class UnixSockServer(socketserver_mixin.NoPollMixIn,
|
|
zone_config = self._zone_config
|
|
zone_config = self._zone_config
|
|
self._lock.release()
|
|
self._lock.release()
|
|
self.RequestHandlerClass(sock_fd, request_data, self,
|
|
self.RequestHandlerClass(sock_fd, request_data, self,
|
|
- self.tsig_key_ring,
|
|
|
|
|
|
+ isc.server_common.tsig_keyring.keyring(),
|
|
self._guess_remote(sock_fd), acl, zone_config)
|
|
self._guess_remote(sock_fd), acl, zone_config)
|
|
|
|
|
|
def _remove_unused_sock_file(self, sock_file):
|
|
def _remove_unused_sock_file(self, sock_file):
|
|
@@ -833,7 +834,6 @@ class UnixSockServer(socketserver_mixin.NoPollMixIn,
|
|
self._acl = new_acl
|
|
self._acl = new_acl
|
|
self._zone_config = new_zone_config
|
|
self._zone_config = new_zone_config
|
|
self._max_transfers_out = new_config.get('transfers_out')
|
|
self._max_transfers_out = new_config.get('transfers_out')
|
|
- self.set_tsig_key_ring(new_config.get('tsig_key_ring'))
|
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
self._lock.release()
|
|
self._lock.release()
|
|
raise e
|
|
raise e
|
|
@@ -870,21 +870,6 @@ class UnixSockServer(socketserver_mixin.NoPollMixIn,
|
|
zclass_str + ': ' + str(e))
|
|
zclass_str + ': ' + str(e))
|
|
return new_config
|
|
return new_config
|
|
|
|
|
|
- def set_tsig_key_ring(self, key_list):
|
|
|
|
- """Set the tsig_key_ring , given a TSIG key string list representation. """
|
|
|
|
-
|
|
|
|
- # XXX add values to configure zones/tsig options
|
|
|
|
- self.tsig_key_ring = TSIGKeyRing()
|
|
|
|
- # If key string list is empty, create a empty tsig_key_ring
|
|
|
|
- if not key_list:
|
|
|
|
- return
|
|
|
|
-
|
|
|
|
- for key_item in key_list:
|
|
|
|
- try:
|
|
|
|
- self.tsig_key_ring.add(TSIGKey(key_item))
|
|
|
|
- except InvalidParameter as ipe:
|
|
|
|
- logger.error(XFROUT_BAD_TSIG_KEY_STRING, str(key_item))
|
|
|
|
-
|
|
|
|
def get_db_file(self):
|
|
def get_db_file(self):
|
|
file, is_default = self._cc.get_remote_config_value("Auth", "database_file")
|
|
file, is_default = self._cc.get_remote_config_value("Auth", "database_file")
|
|
# this too should be unnecessary, but currently the
|
|
# this too should be unnecessary, but currently the
|
|
@@ -920,7 +905,8 @@ class XfroutServer:
|
|
self._cc = isc.config.ModuleCCSession(SPECFILE_LOCATION, self.config_handler, self.command_handler)
|
|
self._cc = isc.config.ModuleCCSession(SPECFILE_LOCATION, self.config_handler, self.command_handler)
|
|
self._config_data = self._cc.get_full_config()
|
|
self._config_data = self._cc.get_full_config()
|
|
self._cc.start()
|
|
self._cc.start()
|
|
- self._cc.add_remote_config(AUTH_SPECFILE_LOCATION);
|
|
|
|
|
|
+ self._cc.add_remote_config(AUTH_SPECFILE_LOCATION)
|
|
|
|
+ isc.server_common.tsig_keyring.init_keyring(self._cc)
|
|
self._start_xfr_query_listener()
|
|
self._start_xfr_query_listener()
|
|
self._start_notifier()
|
|
self._start_notifier()
|
|
|
|
|