123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- #include "nsISupports.idl"
- interface nsICancelable;
- interface nsIEventTarget;
- interface nsIDNSRecord;
- interface nsIDNSListener;
- %{C++
- #include "nsTArrayForwardDeclare.h"
- namespace mozilla { namespace net {
- struct DNSCacheEntries;
- } }
- %}
- [ptr] native EntriesArray(nsTArray<mozilla::net::DNSCacheEntries>);
- /**
- * nsIDNSService
- */
- [scriptable, uuid(de5642c6-61fc-4fcf-9a47-03226b0d4e21)]
- interface nsIDNSService : nsISupports
- {
- /**
- * kicks off an asynchronous host lookup.
- *
- * @param aHostName
- * the hostname or IP-address-literal to resolve.
- * @param aFlags
- * a bitwise OR of the RESOLVE_ prefixed constants defined below.
- * @param aListener
- * the listener to be notified when the result is available.
- * @param aListenerTarget
- * optional parameter (may be null). if non-null, this parameter
- * specifies the nsIEventTarget of the thread on which the
- * listener's onLookupComplete should be called. however, if this
- * parameter is null, then onLookupComplete will be called on an
- * unspecified thread (possibly recursively).
- *
- * @return An object that can be used to cancel the host lookup.
- */
- nsICancelable asyncResolve(in AUTF8String aHostName,
- in unsigned long aFlags,
- in nsIDNSListener aListener,
- in nsIEventTarget aListenerTarget);
- /**
- * Attempts to cancel a previously requested async DNS lookup
- *
- * @param aHostName
- * the hostname or IP-address-literal to resolve.
- * @param aFlags
- * a bitwise OR of the RESOLVE_ prefixed constants defined below.
- * @param aListener
- * the original listener which was to be notified about the host lookup
- * result - used to match request information to requestor.
- * @param aReason
- * nsresult reason for the cancellation
- *
- * @return An object that can be used to cancel the host lookup.
- */
- void cancelAsyncResolve(in AUTF8String aHostName,
- in unsigned long aFlags,
- in nsIDNSListener aListener,
- in nsresult aReason);
- /**
- * called to synchronously resolve a hostname. warning this method may
- * block the calling thread for a long period of time. it is extremely
- * unwise to call this function on the UI thread of an application.
- *
- * @param aHostName
- * the hostname or IP-address-literal to resolve.
- * @param aFlags
- * a bitwise OR of the RESOLVE_ prefixed constants defined below.
- *
- * @return DNS record corresponding to the given hostname.
- * @throws NS_ERROR_UNKNOWN_HOST if host could not be resolved.
- */
- nsIDNSRecord resolve(in AUTF8String aHostName,
- in unsigned long aFlags);
- /**
- * kicks off an asynchronous host lookup.
- *
- * This function is identical to asyncResolve except an additional
- * parameter aNetwortInterface. If parameter aNetworkInterface is an empty
- * string function will return the same result as asyncResolve.
- * Setting aNetworkInterface value make only sense for gonk,because it
- * an per networking interface query is possible.
- */
- nsICancelable asyncResolveExtended(in AUTF8String aHostName,
- in unsigned long aFlags,
- in AUTF8String aNetworkInterface,
- in nsIDNSListener aListener,
- in nsIEventTarget aListenerTarget);
- /**
- * Attempts to cancel a previously requested async DNS lookup
- * This is an extended versin with a additional parameter aNetworkInterface
- */
- void cancelAsyncResolveExtended(in AUTF8String aHostName,
- in unsigned long aFlags,
- in AUTF8String aNetworkInterface,
- in nsIDNSListener aListener,
- in nsresult aReason);
- /**
- * The method takes a pointer to an nsTArray
- * and fills it with cache entry data
- * Called by the networking dashboard
- */
- [noscript] void getDNSCacheEntries(in EntriesArray args);
- /**
- * @return the hostname of the operating system.
- */
- readonly attribute AUTF8String myHostName;
- /*************************************************************************
- * Listed below are the various flags that may be OR'd together to form
- * the aFlags parameter passed to asyncResolve() and resolve().
- */
- /**
- * if set, this flag suppresses the internal DNS lookup cache.
- */
- const unsigned long RESOLVE_BYPASS_CACHE = (1 << 0);
- /**
- * if set, the canonical name of the specified host will be queried.
- */
- const unsigned long RESOLVE_CANONICAL_NAME = (1 << 1);
- /**
- * if set, the query is given lower priority. Medium takes precedence
- * if both are used.
- */
- const unsigned long RESOLVE_PRIORITY_MEDIUM = (1 << 2);
- const unsigned long RESOLVE_PRIORITY_LOW = (1 << 3);
- /**
- * if set, indicates request is speculative. Speculative requests
- * return errors if prefetching is disabled by configuration.
- */
- const unsigned long RESOLVE_SPECULATE = (1 << 4);
- /**
- * If set, only IPv4 addresses will be returned from resolve/asyncResolve.
- */
- const unsigned long RESOLVE_DISABLE_IPV6 = (1 << 5);
- /**
- * If set, only literals and cached entries will be returned from resolve/
- * asyncResolve.
- */
- const unsigned long RESOLVE_OFFLINE = (1 << 6);
- /**
- * If set, only IPv6 addresses will be returned from resolve/asyncResolve.
- */
- const unsigned long RESOLVE_DISABLE_IPV4 = (1 << 7);
- /**
- * If set, allow name collision results (127.0.53.53) which are normally filtered.
- */
- const unsigned long RESOLVE_ALLOW_NAME_COLLISION = (1 << 8);
- };
|