Folks,
while trying to debug some fpdns streams for name servers that are not or not
reliably identifiable, I've come across a - likely unrelated - problem with the
res->send() invocation. It appears that the make_query_packet() method in
Base.pm honors the 'recurse' flag even if the packet to be sent comes
pre-built. Since the default is 'recurse=1', this means that all the
fpdns vectors with Opcode 'QUERY' and a cleared 'rd' bit will actually be
sent with 'rd=1' regardless.
It seems quite straight forward to copy the RD bit from the vector into
the resolver's configuration just before send()ing the packet.
--- Fingerprint.pm.bak Mon Feb 26 17:30:16 2007
+++ Fingerprint.pm Thu Jan 17 20:21:32 2008
@@ -710,6 +710,7 @@
$resolver->retry($self->{retry});
$resolver->retrans($self->{timeout});
$resolver->usevc($self->{forcetcp});
+ $resolver->recurse($header->rd);
my $answer = $resolver->send($packet);
if ($answer && $self->{debug}) {
print STDERR "==> ANSWER BEGIN\n";
As always, the usual caveats apply. Some fingerprints might no longer work.
-Peter
_______________________________________________
fpdns mailing list
[email protected]
https://www.rfc.se/mailman/listinfo/fpdns