|
@@ -1549,18 +1549,25 @@ class Xfrin:
|
|
|
if is_default:
|
|
|
return
|
|
|
for d in datasources:
|
|
|
- if d.has_key("class"):
|
|
|
+ if "class" in d:
|
|
|
dclass = d["class"]
|
|
|
else:
|
|
|
dclass = "IN"
|
|
|
- if d["type"].lower() == "memory" and dclass.lower() == zone_class.lower():
|
|
|
+ if d["type"].lower() == "memory" and dclass.lower() == zone_class.to_text().lower():
|
|
|
for zone in d["zones"]:
|
|
|
- if zone["filetype"].lower() == "sqlite3" and\
|
|
|
- zone["origin"].lower() == zone_name.lower():
|
|
|
- param = {"origin": zone_name.to_text(),
|
|
|
+ # Remove trailing periods
|
|
|
+ n1 = zone["origin"]
|
|
|
+ if n1[-1] == '.':
|
|
|
+ n1 = n1[:-1]
|
|
|
+ n2 = zone_name.to_text()
|
|
|
+ if n2[-1] == '.':
|
|
|
+ n2 = n2[:-1]
|
|
|
+
|
|
|
+ if zone["filetype"].lower() == "sqlite3" and n1.lower() == n2.lower():
|
|
|
+ param = {"origin": n1,
|
|
|
"class": zone_class.to_text(),
|
|
|
"datasrc": d["type"]}
|
|
|
- logger.debug(XFRIN_AUTH_LOADZONE,
|
|
|
+ logger.debug(DBG_XFRIN_TRACE, XFRIN_AUTH_LOADZONE,
|
|
|
param["origin"], param["class"], param["datasrc"])
|
|
|
|
|
|
msg = create_command("loadzone", param)
|
|
@@ -1583,6 +1590,7 @@ class Xfrin:
|
|
|
param = {'zone_name': zone_name.to_text(),
|
|
|
'zone_class': zone_class.to_text()}
|
|
|
if xfr_result == XFRIN_OK:
|
|
|
+ self._do_auth_loadzone(zone_name, zone_class)
|
|
|
msg = create_command(notify_out.ZONE_NEW_DATA_READY_CMD, param)
|
|
|
# catch the exception, in case msgq has been killed.
|
|
|
try:
|
|
@@ -1602,8 +1610,6 @@ class Xfrin:
|
|
|
except socket.error as err:
|
|
|
logger.error(XFRIN_MSGQ_SEND_ERROR, XFROUT_MODULE_NAME, ZONE_MANAGER_MODULE_NAME)
|
|
|
|
|
|
- self._do_auth_loadzone(zone_name, zone_class)
|
|
|
-
|
|
|
else:
|
|
|
msg = create_command(ZONE_XFRIN_FAILED, param)
|
|
|
# catch the exception, in case msgq has been killed.
|