mirror of
https://github.com/apache/httpcomponents-client.git
synced 2025-02-28 05:39:07 +00:00
Simplified InMemoryDnsResolver#add method
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1166362 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
57ea057594
commit
7009ad7d0f
@ -34,7 +34,6 @@
|
|||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.http.conn.util.InetAddressUtils;
|
|
||||||
import org.apache.http.conn.DnsResolver;
|
import org.apache.http.conn.DnsResolver;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -64,40 +63,23 @@ public InMemoryDnsResolver() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Associates the given IP address to the given host in this DNS overrider.
|
* Associates the given array of IP addresses to the given host in this DNS overrider.
|
||||||
|
* The IP addresses are assumed to be already resolved.
|
||||||
*
|
*
|
||||||
* @param host
|
* @param host
|
||||||
* The host name to be associated with the given IP.
|
* The host name to be associated with the given IP.
|
||||||
* @param ip
|
* @param ips
|
||||||
* IPv4 address to be resolved by this DNS overrider to the given
|
* array of IP addresses to be resolved by this DNS overrider to the given
|
||||||
* host name.
|
* host name.
|
||||||
*
|
|
||||||
* @throws IllegalArgumentException
|
|
||||||
* if the given IP is not a valid IPv4 address or an InetAddress
|
|
||||||
* instance cannot be built based on the given IPv4 address.
|
|
||||||
*
|
|
||||||
* @see InetAddress#getByAddress
|
|
||||||
*/
|
*/
|
||||||
public void add(final String host, final String ip) {
|
public void add(final String host, final InetAddress... ips) {
|
||||||
if (!InetAddressUtils.isIPv4Address(ip)) {
|
if (host == null) {
|
||||||
throw new IllegalArgumentException(ip + " must be a valid IPv4 address");
|
throw new IllegalArgumentException("Host name may not be null");
|
||||||
}
|
}
|
||||||
|
if (ips == null) {
|
||||||
String[] ipParts = ip.split("\\.");
|
throw new IllegalArgumentException("Array of IP addresses may not be null");
|
||||||
|
|
||||||
byte[] byteIpAddress = new byte[4];
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
byteIpAddress[i] = Integer.decode(ipParts[i]).byteValue();
|
|
||||||
}
|
}
|
||||||
|
dnsMap.put(host, ips);
|
||||||
try {
|
|
||||||
dnsMap.put(host, new InetAddress[] { InetAddress.getByAddress(byteIpAddress) });
|
|
||||||
} catch (UnknownHostException e) {
|
|
||||||
log.error("Unable to build InetAddress for " + ip, e);
|
|
||||||
throw new IllegalArgumentException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -108,11 +90,9 @@ public InetAddress[] resolve(String host) throws UnknownHostException {
|
|||||||
if (log.isInfoEnabled()) {
|
if (log.isInfoEnabled()) {
|
||||||
log.info("Resolving " + host + " to " + Arrays.deepToString(resolvedAddresses));
|
log.info("Resolving " + host + " to " + Arrays.deepToString(resolvedAddresses));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(resolvedAddresses == null){
|
if(resolvedAddresses == null){
|
||||||
throw new UnknownHostException(host + " cannot be resolved.");
|
throw new UnknownHostException(host + " cannot be resolved");
|
||||||
}
|
}
|
||||||
|
|
||||||
return resolvedAddresses;
|
return resolvedAddresses;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user