diff options
Diffstat (limited to 'src/org/xbill/DNS/Resolver.java')
-rw-r--r-- | src/org/xbill/DNS/Resolver.java | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/org/xbill/DNS/Resolver.java b/src/org/xbill/DNS/Resolver.java new file mode 100644 index 0000000..7d28d40 --- /dev/null +++ b/src/org/xbill/DNS/Resolver.java @@ -0,0 +1,95 @@ +// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) + +package org.xbill.DNS; + +import java.io.*; +import java.util.*; + +/** + * Interface describing a resolver. + * + * @author Brian Wellington + */ + +public interface Resolver { + +/** + * Sets the port to communicate with on the server + * @param port The port to send messages to + */ +void setPort(int port); + +/** + * Sets whether TCP connections will be sent by default + * @param flag Indicates whether TCP connections are made + */ +void setTCP(boolean flag); + +/** + * Sets whether truncated responses will be ignored. If not, a truncated + * response over UDP will cause a retransmission over TCP. + * @param flag Indicates whether truncated responses should be ignored. + */ +void setIgnoreTruncation(boolean flag); + +/** + * Sets the EDNS version used on outgoing messages. + * @param level The EDNS level to use. 0 indicates EDNS0 and -1 indicates no + * EDNS. + * @throws IllegalArgumentException An invalid level was indicated. + */ +void setEDNS(int level); + +/** + * Sets the EDNS information on outgoing messages. + * @param level The EDNS level to use. 0 indicates EDNS0 and -1 indicates no + * EDNS. + * @param payloadSize The maximum DNS packet size that this host is capable + * of receiving over UDP. If 0 is specified, the default (1280) is used. + * @param flags EDNS extended flags to be set in the OPT record. + * @param options EDNS options to be set in the OPT record, specified as a + * List of OPTRecord.Option elements. + * @throws IllegalArgumentException An invalid field was specified. + * @see OPTRecord + */ +void setEDNS(int level, int payloadSize, int flags, List options); + +/** + * Specifies the TSIG key that messages will be signed with + * @param key The key + */ +void setTSIGKey(TSIG key); + +/** + * Sets the amount of time to wait for a response before giving up. + * @param secs The number of seconds to wait. + * @param msecs The number of milliseconds to wait. + */ +void setTimeout(int secs, int msecs); + +/** + * Sets the amount of time to wait for a response before giving up. + * @param secs The number of seconds to wait. + */ +void setTimeout(int secs); + +/** + * Sends a message and waits for a response. + * @param query The query to send. + * @return The response + * @throws IOException An error occurred while sending or receiving. + */ +Message send(Message query) throws IOException; + +/** + * Asynchronously sends a message registering a listener to receive a callback + * on success or exception. Multiple asynchronous lookups can be performed + * in parallel. Since the callback may be invoked before the function returns, + * external synchronization is necessary. + * @param query The query to send + * @param listener The object containing the callbacks. + * @return An identifier, which is also a parameter in the callback + */ +Object sendAsync(final Message query, final ResolverListener listener); + +} |