Provided by: wget2-dev_2.1.0-2.1build2_amd64 bug

NAME

       libwget-dns - DNS resolver functions

SYNOPSIS

   Data Structures
       struct wget_dns_stats_data
       struct wget_dns_st

   Functions
       INITIALIZER (dns_init)
       int wget_dns_init (wget_dns **dns)
       void wget_dns_free (wget_dns **dns)
       void wget_dns_set_timeout (wget_dns *dns, int timeout)
       void wget_dns_set_cache (wget_dns *dns, wget_dns_cache *cache)
       wget_dns_cache * wget_dns_get_cache (wget_dns *dns)
       int wget_dns_cache_ip (wget_dns *dns, const char *ip, const char *name, uint16_t port)
       struct addrinfo * wget_dns_resolve (wget_dns *dns, const char *host, uint16_t port, int
           family, int preferred_family)
       void wget_dns_freeaddrinfo (wget_dns *dns, struct addrinfo **addrinfo)
       void wget_dns_set_stats_callback (wget_dns *dns, wget_dns_stats_callback *fn, void *ctx)

Detailed Description

       DNS Resolver functions.

Function Documentation

   int wget_dns_init (wget_dns ** dns)
       Parameters
           dns Pointer to return newly allocated and initialized wget_dns instance

       Returns
           WGET_E_SUCCESS if OK, WGET_E_MEMORY if out-of-memory or WGET_E_INVALID if the mutex
           initialization failed.

       Allocates and initializes a wget_dns instance. dns may be NULL for the purpose of
       initializing the global structures.

   void wget_dns_free (wget_dns ** dns)
       Parameters
           [in/out] dns Pointer to wget_dns instance that will be freed and NULLified.

       Free the resources allocated by wget_dns_init(). dns may be NULL for the purpose of
       freeing the global structures.

   void wget_dns_set_timeout (wget_dns * dns, int timeout)
       Parameters
           dns The wget_dns instance to set the timeout
           timeout The timeout value.

       Set the timeout (in milliseconds) for the DNS queries.

       This is the maximum time to wait until we get a response from the server.

       Warning: For standard getaddrinfo() a timeout can't be set in a portable way. So this
       functions currently is a no-op.

       The following two values are special:

       • 0: No timeout, immediate.

       • -1: Infinite timeout. Wait indefinitely.

   void wget_dns_set_cache (wget_dns * dns, wget_dns_cache * cache)
       Parameters
           dns A wget_dns instance, created by wget_dns_init().
           cache A wget_dns_cache instance

       Enable or disable DNS caching for the DNS instance provided.

       The DNS cache is kept internally in memory, and is used in wget_dns_resolve() to speed up
       DNS queries.

   wget_dns_cache * wget_dns_get_cache (wget_dns * dns)
       Parameters
           dns A wget_dns instance, created by wget_dns_init().

       Returns
           1 if DNS caching is enabled, 0 otherwise.

       Tells whether DNS caching is enabled or not.

       You can enable and disable DNS caching with wget_dns_set_caching().

   int wget_dns_cache_ip (wget_dns * dns, const char * ip, const char * name, uint16_t port)
       Parameters
           ip IP address of name
           name Domain name, part of the cache's lookup key
           port Port number, part of the cache's lookup key

       Returns
           0 on success, < 0 on error

       Assign an IP address to the name+port key in the DNS cache. The name should be lowercase.

   struct addrinfo * wget_dns_resolve (wget_dns * dns, const char * host, uint16_t port, int
       family, int preferred_family)
       Parameters
           dns A wget_dns instance, created by wget_dns_init().
           host Hostname
           port TCP destination port
           family Protocol family AF_INET or AF_INET6
           preferred_family Preferred protocol family AF_INET or AF_INET6

       Returns
           A struct addrinfo structure (defined in libc's <netdb.h>). Must be freed by the caller
           with wget_dns_freeaddrinfo().

       Resolve a host name into its IPv4/IPv6 address.

       family: Desired address family for the returned addresses. This will typically be AF_INET
       or AF_INET6, but it can be any of the values defined in <socket.h>. Additionally,
       AF_UNSPEC means you don't care: it will return any address family that can be used with
       the specified host and port. If family is different than AF_UNSPEC and the specified
       family is not found, that's an error condition and thus wget_dns_resolve() will return
       NULL.

       preferred_family: Tries to resolve addresses of this family if possible. This is only
       honored if family (see point above) is AF_UNSPEC.

       The returned addrinfo structure must be freed with wget_dns_freeaddrinfo().

   void wget_dns_freeaddrinfo (wget_dns * dns, struct addrinfo ** addrinfo)
       Parameters
           dns A wget_dns instance, created by wget_dns_init().
           [in/out] addrinfo Value returned by c

       Release addrinfo, previously returned by wget_dns_resolve(). If the underlying dns uses
       caching, just the reference/pointer is set to NULL.

   void wget_dns_set_stats_callback (wget_dns * dns, wget_dns_stats_callback * fn, void * ctx)
       Parameters
           dns A wget_dns instance, created by wget_dns_init().
           fn A wget_dns_stats_callback callback function to receive resolve statistics data
           ctx Context data given to fn

       Set callback function to be called once DNS statistics for a host are collected

Author

       Generated automatically by Doxygen for wget2 from the source code.