2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
25#if defined(LWS_WITH_UDP) && defined(LWS_WITH_NETWORK)
27typedef enum dns_query_type {
28 LWS_ADNS_RECORD_A = 0x01,
29 LWS_ADNS_RECORD_CNAME = 0x05,
30 LWS_ADNS_RECORD_MX = 0x0f,
31 LWS_ADNS_RECORD_AAAA = 0x1c,
35 LADNS_RET_FAILED_WSI_CLOSED = -4,
36 LADNS_RET_NXDOMAIN = -3,
37 LADNS_RET_TIMEDOUT = -2,
38 LADNS_RET_FAILED = -1,
41} lws_async_dns_retcode_t;
43#define LWS_ADNS_SYNTHETIC 0x10000
44
48typedef struct lws * (*lws_async_dns_cb_t)(
struct lws *wsi,
const char *ads,
49 const struct addrinfo *result,
int n,
void *opaque);
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75LWS_VISIBLE LWS_EXTERN lws_async_dns_retcode_t
76lws_async_dns_query(
struct lws_context *context,
int tsi,
const char *name,
77 adns_query_type_t qtype, lws_async_dns_cb_t cb,
78 struct lws *wsi,
void *opaque,
struct lws_adns_q **pq);
81
82
83
84
85
86
87
88
89
90LWS_VISIBLE LWS_EXTERN
void
91lws_async_dns_freeaddrinfo(
const struct addrinfo **ai);
94
95
96
97
98
99
100
101
102
103LWS_VISIBLE LWS_EXTERN
int
104lws_async_dns_server_add(
struct lws_context *cx,
const lws_sockaddr46 *sa46);
107
108
109
110
111
112
113
114
115
116
117LWS_VISIBLE LWS_EXTERN
void
118lws_async_dns_server_remove(
struct lws_context *cx,
const lws_sockaddr46 *sa46);
122LWS_VISIBLE LWS_EXTERN uint16_t
123lws_adns_get_tid(
struct lws_adns_q *q);
124LWS_VISIBLE LWS_EXTERN
struct lws_async_dns *
125lws_adns_get_async_dns(
struct lws_adns_q *q);
127LWS_VISIBLE LWS_EXTERN
void
128lws_adns_parse_udp(
struct lws_async_dns *dns,
const uint8_t *pkt, size_t len);