From: JINMEI Tatuya Date: Wed, 12 Oct 2011 19:12:09 +0000 (-0700) Subject: [master] Merge branch 'trac1298' with fixing conflicts. X-Git-Tag: perftcpdns_before_epoll~66^2~22 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1db00151f61cdd1c58bcd80dad38f3f97c67dae7;p=thirdparty%2Fkea.git [master] Merge branch 'trac1298' with fixing conflicts. --- 1db00151f61cdd1c58bcd80dad38f3f97c67dae7 diff --cc src/bin/xfrin/xfrin.py.in index 315d06a6f1,03a208a1c1..1f5d9a1518 --- a/src/bin/xfrin/xfrin.py.in +++ b/src/bin/xfrin/xfrin.py.in @@@ -1066,17 -1069,23 +1068,25 @@@ class Xfrin logger.error(XFRIN_RETRANSFER_UNKNOWN_ZONE, zone_name.to_text()) answer = create_answer(1, errmsg) else: - master_addr = zone_info.get_master_addr_info() request_type = RRType.AXFR() + if zone_info.use_ixfr: + request_type = RRType.IXFR() + master_addr = zone_info.get_master_addr_info() - ret = self.xfrin_start(zone_name, - rrclass, - self._get_db_file(), - master_addr, - zone_info.tsig_key, request_type, - True) - answer = create_answer(ret[0], ret[1]) + if notify_addr == master_addr: + ret = self.xfrin_start(zone_name, + rrclass, + self._get_db_file(), + master_addr, + zone_info.tsig_key, request_type, + True) + answer = create_answer(ret[0], ret[1]) + else: + errmsg = "Got notification for " + zone_name.to_text()\ + + "from unknown address: " + notify_addr[2][0]; + logger.error(XFRIN_NOTIFY_UNKNOWN_MASTER, + zone_name.to_text(), notify_addr[2][0], + master_addr[2][0]) + answer = create_answer(1, errmsg) elif command == 'retransfer' or command == 'refresh': # Xfrin receives the retransfer/refresh from cmdctl(sent by bindctl).