1. When xfrin's config data is changed, new config data should be applied. 2. mutex on recorder is not sufficient. race can happen if two xfrin requests occur at the same time. (but testing it would be very difficult)
3. It wouldn't support IPv6 because of the following line: self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
4. Xfrin.retransfer and refresh share most of the code. should be unified.
5. class IN in hardcode. bad. query_question = question(name(self._zone_name), rr_class.IN(), query_type)