Define and add yxrrset_proper for only non-CNAMEs
Casey Deccio
7 years ago
98 | 98 | self.status = None |
99 | 99 | self.yxdomain = None |
100 | 100 | self.yxrrset = None |
101 | self.yxrrset_proper = None | |
101 | 102 | self.nxrrset = None |
102 | 103 | self.rrset_warnings = None |
103 | 104 | self.rrset_errors = None |
824 | 825 | |
825 | 826 | self.status = Status.NAME_STATUS_INDETERMINATE |
826 | 827 | self.yxdomain = set() |
828 | self.yxrrset_proper = set() | |
827 | 829 | self.yxrrset = set() |
828 | 830 | self.nxrrset = set() |
829 | 831 | |
841 | 843 | for rrset_info in query.answer_info: |
842 | 844 | self.yxdomain.add(rrset_info.rrset.name) |
843 | 845 | self.yxrrset.add((rrset_info.rrset.name, rrset_info.rrset.rdtype)) |
846 | self.yxrrset_proper.add((rrset_info.rrset.name, rrset_info.rrset.rdtype)) | |
844 | 847 | if rrset_info.dname_info is not None: |
845 | 848 | self.yxrrset.add((rrset_info.dname_info.rrset.name, rrset_info.dname_info.rrset.rdtype)) |
846 | 849 | for cname_rrset_info in rrset_info.cname_info_from_dname: |
1193 | 1196 | |
1194 | 1197 | def _populate_cname_status(self, rrset_info): |
1195 | 1198 | if rrset_info.rrset.rdtype == dns.rdatatype.CNAME: |
1196 | rdtypes = [r for (n, r) in self.yxrrset if n == rrset_info.rrset.name and r != dns.rdatatype.CNAME] | |
1199 | rdtypes = [r for (n, r) in self.yxrrset_proper if n == rrset_info.rrset.name and r != dns.rdatatype.CNAME] | |
1197 | 1200 | if rdtypes: |
1198 | 1201 | Errors.DomainNameAnalysisError.insert_into_list(Errors.CNAMEWithOtherData(name=fmt.humanize_name(rrset_info.rrset.name)), self.rrset_warnings[rrset_info], None, None, None) |
1199 | 1202 |