13#ifndef ZEPHYR_INCLUDE_NET_DNS_RESOLVE_H_ 
   14#define ZEPHYR_INCLUDE_NET_DNS_RESOLVE_H_ 
   41#ifndef DNS_MAX_NAME_SIZE 
   42#define DNS_MAX_NAME_SIZE 20 
   50#if !defined(CONFIG_DNS_RESOLVER_MAX_SERVERS) 
   51#define CONFIG_DNS_RESOLVER_MAX_SERVERS 1 
   53#if !defined(CONFIG_DNS_NUM_CONCUR_QUERIES) 
   54#define CONFIG_DNS_NUM_CONCUR_QUERIES 1 
   60#if defined(CONFIG_MDNS_RESOLVER) 
   61#if defined(CONFIG_NET_IPV6) && defined(CONFIG_NET_IPV4) 
   62#define MDNS_SERVER_COUNT 2 
   64#define MDNS_SERVER_COUNT 1 
   67#define MDNS_SERVER_COUNT 0 
   73#if defined(CONFIG_LLMNR_RESOLVER) 
   74#if defined(CONFIG_NET_IPV6) && defined(CONFIG_NET_IPV4) 
   75#define LLMNR_SERVER_COUNT 2 
   77#define LLMNR_SERVER_COUNT 1 
   80#define LLMNR_SERVER_COUNT 0 
   83#define DNS_MAX_MCAST_SERVERS (MDNS_SERVER_COUNT + LLMNR_SERVER_COUNT) 
  182        } 
servers[CONFIG_DNS_RESOLVER_MAX_SERVERS + DNS_MAX_MCAST_SERVERS];
 
  277                     const char *dns_servers_str[],
 
  278                     const struct sockaddr *dns_servers_sa[]);
 
  312                            const char *servers_str[],
 
  313                            const struct sockaddr *servers_sa[]);
 
  342                                 const char *query_name,
 
  458#if defined(CONFIG_DNS_RESOLVER) 
  459void dns_init_resolver(
void);
 
  462#define dns_init_resolver(...) 
ZTEST_BMEM int timeout
Definition: main.c:31
 
int dns_resolve_name(struct dns_resolve_context *ctx, const char *query, enum dns_query_type type, uint16_t *dns_id, dns_resolve_cb_t cb, void *user_data, int32_t timeout)
Resolve DNS name.
 
static int dns_cancel_addr_info(uint16_t dns_id)
Cancel a pending DNS query.
Definition: dns_resolve.h:444
 
dns_resolve_status
Definition: dns_resolve.h:100
 
dns_query_type
Definition: dns_resolve.h:33
 
int dns_resolve_init(struct dns_resolve_context *ctx, const char *dns_servers_str[], const struct sockaddr *dns_servers_sa[])
Init DNS resolving context.
 
int dns_resolve_cancel(struct dns_resolve_context *ctx, uint16_t dns_id)
Cancel a pending DNS query.
 
void(* dns_resolve_cb_t)(enum dns_resolve_status status, struct dns_addrinfo *info, void *user_data)
DNS resolve callback.
Definition: dns_resolve.h:156
 
int dns_resolve_reconfigure(struct dns_resolve_context *ctx, const char *servers_str[], const struct sockaddr *servers_sa[])
Reconfigure DNS resolving context.
 
int dns_resolve_close(struct dns_resolve_context *ctx)
Close DNS resolving context.
 
#define DNS_MAX_NAME_SIZE
Definition: dns_resolve.h:42
 
struct dns_resolve_context * dns_resolve_get_default(void)
Get default DNS context.
 
dns_resolve_context_state
Definition: dns_resolve.h:160
 
int dns_resolve_cancel_with_name(struct dns_resolve_context *ctx, uint16_t dns_id, const char *query_name, enum dns_query_type query_type)
Cancel a pending DNS query using id, name and type.
 
static int dns_get_addr_info(const char *query, enum dns_query_type type, uint16_t *dns_id, dns_resolve_cb_t cb, void *user_data, int32_t timeout)
Get IP address info from DNS.
Definition: dns_resolve.h:419
 
@ DNS_EAI_MEMORY
Definition: dns_resolve.h:120
 
@ DNS_EAI_NOTCANCELED
Definition: dns_resolve.h:130
 
@ DNS_EAI_IDN_ENCODE
Definition: dns_resolve.h:134
 
@ DNS_EAI_ADDRFAMILY
Definition: dns_resolve.h:118
 
@ DNS_EAI_INPROGRESS
Definition: dns_resolve.h:126
 
@ DNS_EAI_FAIL
Definition: dns_resolve.h:108
 
@ DNS_EAI_AGAIN
Definition: dns_resolve.h:106
 
@ DNS_EAI_NODATA
Definition: dns_resolve.h:110
 
@ DNS_EAI_NONAME
Definition: dns_resolve.h:104
 
@ DNS_EAI_FAMILY
Definition: dns_resolve.h:112
 
@ DNS_EAI_OVERFLOW
Definition: dns_resolve.h:124
 
@ DNS_EAI_CANCELED
Definition: dns_resolve.h:128
 
@ DNS_EAI_BADFLAGS
Definition: dns_resolve.h:102
 
@ DNS_EAI_SOCKTYPE
Definition: dns_resolve.h:114
 
@ DNS_EAI_ALLDONE
Definition: dns_resolve.h:132
 
@ DNS_EAI_SYSTEM
Definition: dns_resolve.h:122
 
@ DNS_EAI_SERVICE
Definition: dns_resolve.h:116
 
@ DNS_QUERY_TYPE_A
Definition: dns_resolve.h:35
 
@ DNS_QUERY_TYPE_AAAA
Definition: dns_resolve.h:37
 
@ DNS_RESOLVE_CONTEXT_INACTIVE
Definition: dns_resolve.h:163
 
@ DNS_RESOLVE_CONTEXT_DEACTIVATING
Definition: dns_resolve.h:162
 
@ DNS_RESOLVE_CONTEXT_ACTIVE
Definition: dns_resolve.h:161
 
size_t socklen_t
Definition: net_ip.h:168
 
Network context definitions.
 
IPv6 and IPv4 definitions.
 
__INT32_TYPE__ int32_t
Definition: stdint.h:74
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
 
Definition: dns_resolve.h:90
 
char ai_canonname[20+1]
Definition: dns_resolve.h:94
 
struct sockaddr ai_addr
Definition: dns_resolve.h:91
 
socklen_t ai_addrlen
Definition: dns_resolve.h:92
 
uint8_t ai_family
Definition: dns_resolve.h:93
 
Definition: dns_resolve.h:198
 
const char * query
Definition: dns_resolve.h:228
 
uint16_t query_hash
Definition: dns_resolve.h:242
 
struct dns_resolve_context * ctx
Definition: dns_resolve.h:203
 
void * user_data
Definition: dns_resolve.h:212
 
struct k_work_delayable timer
Definition: dns_resolve.h:200
 
uint16_t id
Definition: dns_resolve.h:234
 
k_timeout_t timeout
Definition: dns_resolve.h:215
 
dns_resolve_cb_t cb
Definition: dns_resolve.h:209
 
enum dns_query_type query_type
Definition: dns_resolve.h:231
 
Definition: dns_resolve.h:169
 
struct dns_resolve_context::dns_pending_query queries[CONFIG_DNS_NUM_CONCUR_QUERIES]
 
k_timeout_t buf_timeout
Definition: dns_resolve.h:190
 
uint8_t is_llmnr
Definition: dns_resolve.h:181
 
struct dns_resolve_context::@247 servers[CONFIG_DNS_RESOLVER_MAX_SERVERS+DNS_MAX_MCAST_SERVERS]
 
enum dns_resolve_context_state state
Definition: dns_resolve.h:246
 
struct k_mutex lock
Definition: dns_resolve.h:185
 
uint8_t is_mdns
Definition: dns_resolve.h:178
 
struct net_context * net_ctx
Definition: dns_resolve.h:175
 
struct sockaddr dns_server
Definition: dns_resolve.h:172
 
Definition: kernel.h:2822
 
Kernel timeout type.
Definition: sys_clock.h:65
 
A structure used to submit work after a delay.
Definition: kernel.h:3793
 
Definition: net_context.h:201
 
static const intptr_t user_data[5]
Definition: main.c:588