libfetch 0.0.0
A lightweight asynchronous HTTP/1.1 client library implementing a subset of the WHATWG Fetch API.
Loading...
Searching...
No Matches
dns.h
Go to the documentation of this file.
1
10#ifndef DNS_RESOLVER_H
11#define DNS_RESOLVER_H
12
13#include <stdbool.h>
14#include <stddef.h>
15#include <stdint.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
28
36
43typedef struct {
44 char address[46];
45 int family;
49
56typedef struct {
58 size_t count;
60 char *hostname;
62
75typedef void (*dns_callback_t)(dns_result_t *result, void *user_data);
76
83typedef struct {
89
104
117
135dns_request_t *dns_resolve_async(dns_resolver_t *resolver, const char *hostname,
136 const char *service, dns_callback_t callback,
137 void *user_data);
138
151bool dns_request_cancel(dns_request_t *request);
152
166
178void dns_result_free(dns_result_t *result);
179
190const char *dns_error_string(int error_code);
191
203
204#ifdef __cplusplus
205}
206#endif
207
208#endif /* DNS_RESOLVER_H */
void dns_resolver_process(dns_resolver_t *resolver)
Process pending DNS operations.
Definition dns.c:958
dns_request_t * dns_resolve_async(dns_resolver_t *resolver, const char *hostname, const char *service, dns_callback_t callback, void *user_data)
Start asynchronous DNS resolution.
Definition dns.c:895
bool dns_request_cancel(dns_request_t *request)
Cancel a pending DNS request.
Definition dns.c:948
void dns_resolver_destroy(dns_resolver_t *resolver)
Destroy a DNS resolver instance.
Definition dns.c:866
dns_resolver_t * dns_resolver_create(const dns_config_t *config)
Create a new DNS resolver instance.
Definition dns.c:845
dns_config_t dns_config_default(void)
Get default configuration.
Definition dns.c:836
const char * dns_error_string(int error_code)
Get human-readable error message.
Definition dns.c:973
void(* dns_callback_t)(dns_result_t *result, void *user_data)
Callback function type for asynchronous DNS resolution.
Definition dns.h:75
void dns_result_free(dns_result_t *result)
Free DNS result structure.
Definition dns.c:964
Structure representing a resolved network address.
Definition dns.h:43
int family
Definition dns.h:45
int socktype
Definition dns.h:46
int protocol
Definition dns.h:47
Configuration structure for DNS resolver.
Definition dns.h:83
bool prefer_ipv4
Definition dns.h:86
bool prefer_ipv6
Definition dns.h:87
int timeout_ms
Definition dns.h:84
int max_concurrent
Definition dns.h:85
Internal DNS request structure.
Definition dns.c:69
Internal DNS resolver structure.
Definition dns.c:100
Structure containing DNS resolution results.
Definition dns.h:56
dns_address_t * addresses
Definition dns.h:57
int error_code
Definition dns.h:59
size_t count
Definition dns.h:58
char * hostname
Definition dns.h:60