Loading...
Searching...
No Matches
dns.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 Kaspar Schleiser <kaspar@schleiser.de>
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
22
23#include <errno.h>
24#include <stdint.h>
25#include <unistd.h>
26
27#include "net/dns/msg.h"
28
29#include "net/sock/udp.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35#ifdef MODULE_AUTO_INIT_SOCK_DNS
39#ifndef CONFIG_AUTO_INIT_SOCK_DNS_IP_VERSION
40 /* IPv6 is preferred */
41 #if defined(SOCK_HAS_IPV6)
42 #define CONFIG_AUTO_INIT_SOCK_DNS_IP_VERSION 6
43 #elif defined(SOCK_HAS_IPV4)
44 #define CONFIG_AUTO_INIT_SOCK_DNS_IP_VERSION 4
45 #else
46 #error "Neither IPv4 nor IPv6 included in build"
47 #endif
48#endif
49
53#ifndef CONFIG_AUTO_INIT_SOCK_DNS_SERVER_ADDR
54 /* Default to Quad9 Public DNS */
55 #if CONFIG_AUTO_INIT_SOCK_DNS_IP_VERSION == 6
56 #define CONFIG_AUTO_INIT_SOCK_DNS_SERVER_ADDR "2620:fe::fe"
57 #elif CONFIG_AUTO_INIT_SOCK_DNS_IP_VERSION == 4
58 #define CONFIG_AUTO_INIT_SOCK_DNS_SERVER_ADDR "9.9.9.9"
59 #endif
60#endif
61
65#ifndef CONFIG_AUTO_INIT_SOCK_DNS_SERVER_PORT
66#define CONFIG_AUTO_INIT_SOCK_DNS_SERVER_PORT SOCK_DNS_PORT
67#endif
68#endif /* MODULE_AUTO_INIT_SOCK_DNS */
69
74#define SOCK_DNS_PORT (53)
75#define SOCK_DNS_RETRIES (2)
76
77#define SOCK_DNS_MAX_NAME_LEN (CONFIG_DNS_MSG_LEN - sizeof(dns_hdr_t) - 4)
79
102int sock_dns_query(const char *domain_name, void *addr_out, int family);
103
108
109#ifdef __cplusplus
110}
111#endif
112
int sock_dns_query(const char *domain_name, void *addr_out, int family)
Get IP address for DNS name.
sock_udp_ep_t sock_dns_server
global DNS server endpoint
struct _sock_tl_ep sock_udp_ep_t
An end point for a UDP sock object.
Definition udp.h:292
UDP sock definitions.
Definitions for parsing and composition of DNS messages.