package com.lambdaworks.redis.resource;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.net.UnknownHostException;
import com.lambdaworks.redis.RedisURI;
/**
* Resolves a {@link com.lambdaworks.redis.RedisURI} to a {@link java.net.SocketAddress}.
*
* @author Mark Paluch
*/
public class SocketAddressResolver {
/**
* Resolves a {@link com.lambdaworks.redis.RedisURI} to a {@link java.net.SocketAddress}.
*
* @param redisURI must not be {@literal null}
* @param dnsResolver must not be {@literal null}
* @return the resolved {@link SocketAddress}
*/
public static SocketAddress resolve(RedisURI redisURI, DnsResolver dnsResolver) {
if (redisURI.getSocket() != null) {
return redisURI.getResolvedAddress();
}
try {
InetAddress inetAddress = dnsResolver.resolve(redisURI.getHost())[0];
return new InetSocketAddress(inetAddress, redisURI.getPort());
} catch (UnknownHostException e) {
return redisURI.getResolvedAddress();
}
}
}