@@ -57,17 +57,21 @@ private function dnsResolve(string $target, int $recursionCount) : array {
5757
5858 $ soaDnsEntry = $ this ->soaRecord ($ target );
5959 $ dnsNegativeTtl = $ soaDnsEntry ['minimum-ttl ' ] ?? null ;
60+ $ canHaveCnameRecord = true ;
6061
6162 $ dnsTypes = \defined ('AF_INET6 ' ) || @inet_pton ('::1 ' )
6263 ? [DNS_A , DNS_AAAA , DNS_CNAME ]
6364 : [DNS_A , DNS_CNAME ];
6465 foreach ($ dnsTypes as $ dnsType ) {
66+ if ($ canHaveCnameRecord === false && $ dnsType === DNS_CNAME ) {
67+ continue ;
68+ }
69+
6570 if ($ this ->negativeDnsCache ->isNegativeCached ($ target , $ dnsType )) {
6671 continue ;
6772 }
6873
6974 $ dnsResponses = $ this ->dnsGetRecord ($ target , $ dnsType );
70- $ canHaveCnameRecord = true ;
7175 if ($ dnsResponses !== false && count ($ dnsResponses ) > 0 ) {
7276 foreach ($ dnsResponses as $ dnsResponse ) {
7377 if (isset ($ dnsResponse ['ip ' ])) {
@@ -78,7 +82,6 @@ private function dnsResolve(string $target, int $recursionCount) : array {
7882 $ canHaveCnameRecord = false ;
7983 } elseif (isset ($ dnsResponse ['target ' ]) && $ canHaveCnameRecord ) {
8084 $ targetIps = array_merge ($ targetIps , $ this ->dnsResolve ($ dnsResponse ['target ' ], $ recursionCount ));
81- $ canHaveCnameRecord = true ;
8285 }
8386 }
8487 } elseif ($ dnsNegativeTtl !== null ) {
0 commit comments