in resolver/src/main/java/org/apache/james/jspf/impl/DNSServiceXBillImpl.java [135:173]
public List<String> getRecords(DNSRequest request)
throws TimeoutException {
String recordTypeDescription;
int dnsJavaType;
switch (request.getRecordType()) {
case DNSRequest.A: recordTypeDescription = "A"; dnsJavaType = Type.A; break;
case DNSRequest.AAAA: recordTypeDescription = "AAAA"; dnsJavaType = Type.AAAA; break;
case DNSRequest.MX: recordTypeDescription = "MX"; dnsJavaType = Type.MX; break;
case DNSRequest.PTR: recordTypeDescription = "PTR"; dnsJavaType = Type.PTR; break;
case DNSRequest.TXT: recordTypeDescription = "TXT"; dnsJavaType = Type.TXT; break;
case DNSRequest.SPF: recordTypeDescription= "SPF"; dnsJavaType = Type.SPF; break;
default: // TODO fail!
return null;
}
try {
LOGGER.debug("Start {}-Record lookup for : {}", recordTypeDescription, request.getHostname());
Lookup query = new Lookup(request.getHostname(), dnsJavaType);
query.setResolver(resolver);
Record[] rr = query.run();
int queryResult = query.getResult();
if (queryResult == Lookup.TRY_AGAIN) {
throw new TimeoutException(query.getErrorString());
}
List<String> records = convertRecordsToList(rr);
LOGGER.debug("Found {} {}-Records", (rr != null ? rr.length : 0), recordTypeDescription);
return records;
} catch (TextParseException e) {
// i think this is the best we could do
LOGGER.debug("No {} Record found for host: {}", recordTypeDescription, request.getHostname());
return null;
}
}