use of org.xbill.DNS.Lookup in project Smack by igniterealtime.
the class DNSJavaResolver method lookupSrvRecords0.
@Override
protected List<SRV> lookupSrvRecords0(DnsName name, List<RemoteConnectionEndpointLookupFailure> lookupFailures, DnssecMode dnssecMode) {
Lookup lookup;
try {
lookup = new Lookup(name.ace, Type.SRV);
} catch (TextParseException e) {
RemoteConnectionEndpointLookupFailure failure = new RemoteConnectionEndpointLookupFailure.DnsLookupFailure(name, e);
lookupFailures.add(failure);
return null;
}
Record[] recs = lookup.run();
if (recs == null) {
// TODO: When does this happen? Do we want/need to record a lookup failure?
return null;
}
List<SRV> res = new ArrayList<>();
for (Record record : recs) {
org.xbill.DNS.SRVRecord srvRecord = (org.xbill.DNS.SRVRecord) record;
if (srvRecord != null && srvRecord.getTarget() != null) {
DnsName host = DnsName.from(srvRecord.getTarget().toString());
int port = srvRecord.getPort();
int priority = srvRecord.getPriority();
int weight = srvRecord.getWeight();
SRV r = new SRV(priority, weight, port, host);
res.add(r);
}
}
return res;
}
use of org.xbill.DNS.Lookup in project jmeter by apache.
the class DNSCacheManager method customRequestLookup.
private InetAddress[] customRequestLookup(String host) throws UnknownHostException {
InetAddress[] addresses = null;
try {
Lookup lookup = new Lookup(host, Type.A);
lookup.setCache(lookupCache);
if (timeoutMs > 0) {
resolver.setTimeout(timeoutMs / 1000, timeoutMs % 1000);
}
lookup.setResolver(resolver);
Record[] records = lookup.run();
if (records == null || records.length == 0) {
throw new UnknownHostException("Failed to resolve host name: " + host);
}
addresses = new InetAddress[records.length];
for (int i = 0; i < records.length; i++) {
addresses[i] = ((ARecord) records[i]).getAddress();
}
} catch (TextParseException tpe) {
// NOSONAR Exception handled
log.debug("Failed to create Lookup object for host:{}, error message:{}", host, tpe.toString());
}
return addresses;
}
use of org.xbill.DNS.Lookup in project Signal-Android by WhisperSystems.
the class CustomDns method lookup.
@Override
@NonNull
public List<InetAddress> lookup(@NonNull String hostname) throws UnknownHostException {
Resolver resolver = new SimpleResolver(dnsHostname);
Lookup lookup = doLookup(hostname);
lookup.setResolver(resolver);
Record[] records = lookup.run();
if (records != null) {
List<InetAddress> ipv4Addresses = Stream.of(records).filter(r -> r.getType() == Type.A).map(r -> (ARecord) r).map(ARecord::getAddress).toList();
if (ipv4Addresses.size() > 0) {
return ipv4Addresses;
}
}
throw new UnknownHostException(hostname);
}
Aggregations