123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- /* 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"
- %{ C++
- namespace mozilla {
- namespace net {
- union NetAddr;
- }
- }
- #include "nsTArrayForwardDeclare.h"
- %}
- native NetAddr(mozilla::net::NetAddr);
- [ref] native nsNetAddrTArrayRef(nsTArray<mozilla::net::NetAddr>);
- interface nsINetAddr;
- /**
- * nsIDNSRecord
- *
- * this interface represents the result of a DNS lookup. since a DNS
- * query may return more than one resolved IP address, the record acts
- * like an enumerator, allowing the caller to easily step through the
- * list of IP addresses.
- */
- [scriptable, uuid(f92228ae-c417-4188-a604-0830a95e7eb9)]
- interface nsIDNSRecord : nsISupports
- {
- /**
- * @return the canonical hostname for this record. this value is empty if
- * the record was not fetched with the RESOLVE_CANONICAL_NAME flag.
- *
- * e.g., www.mozilla.org --> rheet.mozilla.org
- */
- readonly attribute ACString canonicalName;
- /**
- * this function copies the value of the next IP address into the
- * given NetAddr struct and increments the internal address iterator.
- *
- * @param aPort
- * A port number to initialize the NetAddr with.
- *
- * @throws NS_ERROR_NOT_AVAILABLE if there is not another IP address in
- * the record.
- */
- [noscript] NetAddr getNextAddr(in uint16_t aPort);
- /**
- * this function copies the value of all working members of the RR
- * set into the output array.
- *
- * @param aAddressArray
- * The result set
- */
- [noscript] void getAddresses(out nsNetAddrTArrayRef aAddressArray);
- /**
- * this function returns the value of the next IP address as a
- * scriptable address and increments the internal address iterator.
- *
- * @param aPort
- * A port number to initialize the nsINetAddr with.
- *
- * @throws NS_ERROR_NOT_AVAILABLE if there is not another IP address in
- * the record.
- */
- nsINetAddr getScriptableNextAddr(in uint16_t aPort);
- /**
- * this function returns the value of the next IP address as a
- * string and increments the internal address iterator.
- *
- * @throws NS_ERROR_NOT_AVAILABLE if there is not another IP address in
- * the record.
- */
- ACString getNextAddrAsString();
- /**
- * this function returns true if there is another address in the record.
- */
- boolean hasMore();
- /**
- * this function resets the internal address iterator to the first
- * address in the record.
- */
- void rewind();
- /**
- * This function indicates that the last address obtained via getNextAddr*()
- * was not usuable and should be skipped in future uses of this
- * record if other addresses are available.
- *
- * @param aPort is the port number associated with the failure, if any.
- * It may be zero if not applicable.
- */
- void reportUnusable(in uint16_t aPort);
- };
|