<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
All,<br>
<br>
I'm new to Net::DNS and DNS as well so may well be missing something
obvious. I have some tests I want to do to validate results of RPZ
configurations. The problem is, the send() method seems to only
return the status of the final packet of a query. Unfortunately,
the final status for several tests appear the same, so there is no
way to validate the query in fact behaved as expected. When I set
the debug flag, I see the traffic I expect, but none of that data
(except the last) is retained for programmatic analysis.<br>
<br>
Example: Setting RPZ policy action to TCP-ONLY. (sorry, doing this
from memory...)<br>
<ul>
<li>$resolver->send() (via UDP)<br>
</li>
<li>Initial query is truncated (tc=1), status, unknown error</li>
<li>query resent, forcing TCP connection</li>
<li>query returns answer correctly. status NOERROR<br>
</li>
</ul>
<p>I'd like to capture intermediate flag settings and resolver
status to validate each step executed as expected.<br>
</p>
<p>A quick walk through the Net::DNS code shows it **may** be as
simple as changing the $ans (return value) scaler to an array and
saving each intermediate packet. It's possible a flag could be
set to default to current behaviour and return only the last
packet to maintain backwards compatibility. It seems internally,
there are only two or three methods that would need to be modified
as a result. However, I'm not familiar enough with the framework
to be sure that is all, or even be sure what I want is not really
there already.<br>
</p>
<p>Help or suggestions much appreciated. Requests for details will
have to wait until I am back in the office tomorrow...<br>
</p>
<p>Robert Kuropkat<br>
<br>
</p>
</body>
</html>