KEEL 1.0.0
Minimal C11 HTTP client/server library built on epoll/kqueue/io_uring/poll
Loading...
Searching...
No Matches
resolver.h
Go to the documentation of this file.
1
10#ifndef KEEL_RESOLVER_H
11#define KEEL_RESOLVER_H
12
13#include <keel/allocator.h>
14#include <sys/socket.h>
15
16/* Forward declarations */
17typedef struct KlEventCtx KlEventCtx;
18typedef struct KlResolver KlResolver;
20
22typedef struct {
23 struct sockaddr_storage addr;
24 socklen_t addrlen;
29
31typedef void (*KlResolveDoneFn)(KlResolveReq *req, const KlResolveResult *result,
32 int error, void *user_data);
33
38
40struct KlResolver {
53 KlResolveReq *(*resolve)(KlResolver *self, KlEventCtx *ctx,
54 const char *host, int port,
55 KlResolveDoneFn done_fn, void *user_data);
56
58 void (*cancel)(KlResolveReq *req);
59
61 void (*destroy)(KlResolver *self);
62};
63
64#endif /* KEEL_RESOLVER_H */
void(* KlResolveDoneFn)(KlResolveReq *req, const KlResolveResult *result, int error, void *user_data)
Completion callback — called on the event loop thread.
Definition resolver.h:31
Composable event loop context.
Definition event_ctx.h:42
Opaque per-request handle — resolver implementation allocates.
Definition resolver.h:35
KlResolver * resolver
Definition resolver.h:36
Result passed to the completion callback.
Definition resolver.h:22
int ai_family
Definition resolver.h:25
int ai_socktype
Definition resolver.h:26
int ai_protocol
Definition resolver.h:27
socklen_t addrlen
Definition resolver.h:24
Async DNS resolver vtable.
Definition resolver.h:40
void(* destroy)(KlResolver *self)
Definition resolver.h:61
void(* cancel)(KlResolveReq *req)
Definition resolver.h:58