12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
- /* 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/. */
- #ifndef netwerk_dns_GetAddrInfo_h
- #define netwerk_dns_GetAddrInfo_h
- #include "nsError.h"
- #include "nscore.h"
- #if defined(XP_WIN)
- #define DNSQUERY_AVAILABLE 1
- #define TTL_AVAILABLE 1
- #else
- #define DNSQUERY_AVAILABLE 0
- #define TTL_AVAILABLE 0
- #endif
- namespace mozilla {
- namespace net {
- class AddrInfo;
- /**
- * Look up a host by name. Mostly equivalent to getaddrinfo(host, NULL, ...) of
- * RFC 3493.
- *
- * @param aHost[in] Character string defining the host name of interest
- * @param aAddressFamily[in] May be AF_INET, AF_INET6, or AF_UNSPEC.
- * @param aFlags[in] May be either PR_AI_ADDRCONFIG or
- * PR_AI_ADDRCONFIG | PR_AI_NOCANONNAME. Include PR_AI_NOCANONNAME to
- * suppress the determination of the canonical name corresponding to
- * hostname (PR_AI_NOCANONNAME will be ignored if the TTL is retrieved).
- * @param aAddrInfo[out] Will point to the results of the host lookup, or be
- * null if the lookup failed.
- * @param aGetTtl[in] If true, and TTL_AVAILABLE is truthy, the TTL will be
- * retrieved if DNS provides the answers..
- */
- nsresult
- GetAddrInfo(const char* aHost, uint16_t aAddressFamily, uint16_t aFlags,
- const char* aNetworkInterface, AddrInfo** aAddrInfo, bool aGetTtl);
- /**
- * Initialize the GetAddrInfo module.
- *
- * GetAddrInfoShutdown() should be called for every time this function is
- * called.
- */
- nsresult
- GetAddrInfoInit();
- /**
- * Shutdown the GetAddrInfo module.
- *
- * This function should be called for every time GetAddrInfoInit() is called.
- * An assertion may throw (but is not guarenteed) if this function is called
- * too many times.
- */
- nsresult
- GetAddrInfoShutdown();
- } // namespace net
- } // namespace mozilla
- #endif // netwerk_dns_GetAddrInfo_h
|