protected void recordDNS(final CrawlURI curi, final Record[] rrecordSet)
throws IOException {
final byte[] dnsRecord = getDNSRecord(curi.getFetchBeginTime(),
rrecordSet);
Recorder rec = curi.getRecorder();
// Shall we get a digest on the content downloaded?
boolean digestContent = getDigestContent();
String algorithm = null;
if (digestContent) {
algorithm = getDigestAlgorithm();
rec.getRecordedInput().setDigest(algorithm);
} else {
rec.getRecordedInput().setDigest((MessageDigest)null);
}
InputStream is = curi.getRecorder().inputWrap(
new ByteArrayInputStream(dnsRecord));
if (digestContent) {
rec.getRecordedInput().startDigest();
}
// Reading from the wrapped stream, behind the scenes, will write
// files into scratch space
try {
byte[] buf = new byte[256];
while (is.read(buf) != -1) {
continue;
}
} finally {
is.close();
rec.closeRecorders();
}
curi.setContentSize(dnsRecord.length);
if (digestContent) {
curi.setContentDigest(algorithm,
rec.getRecordedInput().getDigestValue());
}
}