73#define DNS_TMR_INTERVAL 1000
76#define LWIP_DNS_ADDRTYPE_IPV4 0
77#define LWIP_DNS_ADDRTYPE_IPV6 1
78#define LWIP_DNS_ADDRTYPE_IPV4_IPV6 2
79#define LWIP_DNS_ADDRTYPE_IPV6_IPV4 3
80#if LWIP_IPV4 && LWIP_IPV6
81#ifndef LWIP_DNS_ADDRTYPE_DEFAULT
82#define LWIP_DNS_ADDRTYPE_DEFAULT LWIP_DNS_ADDRTYPE_IPV4_IPV6
85#define LWIP_DNS_ADDRTYPE_DEFAULT LWIP_DNS_ADDRTYPE_IPV4
87#define LWIP_DNS_ADDRTYPE_DEFAULT LWIP_DNS_ADDRTYPE_IPV6
92struct local_hostlist_entry {
97 struct local_hostlist_entry *next;
99#define DNS_LOCAL_HOSTLIST_ELEM(name, addr_init) {name, addr_init, NULL}
100#if DNS_LOCAL_HOSTLIST_IS_DYNAMIC
101#ifndef DNS_LOCAL_HOSTLIST_MAX_NAMELEN
102#define DNS_LOCAL_HOSTLIST_MAX_NAMELEN DNS_MAX_NAME_LENGTH
104#define LOCALHOSTLIST_ELEM_SIZE ((sizeof(struct local_hostlist_entry) + DNS_LOCAL_HOSTLIST_MAX_NAMELEN + 1))
109extern const ip_addr_t dns_mquery_v4group;
112extern const ip_addr_t dns_mquery_v6group;
122typedef void (*dns_found_callback)(
const char *name,
const ip_addr_t *ipaddr,
void *callback_arg);
126void dns_setserver(u8_t numdns,
const ip_addr_t *dnsserver);
127const ip_addr_t* dns_getserver(u8_t numdns);
128err_t dns_gethostbyname(
const char *hostname, ip_addr_t *addr,
129 dns_found_callback found,
void *callback_arg);
130err_t dns_gethostbyname_addrtype(
const char *hostname, ip_addr_t *addr,
131 dns_found_callback found,
void *callback_arg,
135#if DNS_LOCAL_HOSTLIST
136size_t dns_local_iterate(dns_found_callback iterator_fn,
void *iterator_arg);
137err_t dns_local_lookup(
const char *hostname, ip_addr_t *addr, u8_t dns_addrtype);
138#if DNS_LOCAL_HOSTLIST_IS_DYNAMIC
139int dns_local_removehost(
const char *hostname,
const ip_addr_t *addr);
140err_t dns_local_addhost(
const char *hostname,
const ip_addr_t *addr);