package ru.kirillius.pf.sdn.api.Networking;

import java.net.Inet4Address;
import java.util.List;
import java.util.concurrent.Future;

public interface DomainResolver {
    /**
     * Resolve domain on specified server
     * @param domain
     * @param server
     * @return
     */
    Future<List<Inet4Address>> getAddresses(String domain, Inet4Address server);

    /**
     * Resolve domain using default servers
     * @param domain
     * @return
     */
    Future<List<Inet4Address>> getAddresses(String domain);

    /**
     * Resolve domain using specified servers
     * @param domain
     * @param servers
     * @return
     */
    Future<List<Inet4Address>> getAddresses(String domain, List<Inet4Address> servers);
}
