KEEL
1.0.0
Minimal C11 HTTP client/server library built on epoll/kqueue/io_uring/poll
Loading...
Searching...
No Matches
include
keel
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 */
17
typedef
struct
KlEventCtx
KlEventCtx
;
18
typedef
struct
KlResolver
KlResolver
;
19
typedef
struct
KlResolveReq
KlResolveReq
;
20
22
typedef
struct
{
23
struct
sockaddr_storage addr;
24
socklen_t
addrlen
;
25
int
ai_family
;
26
int
ai_socktype
;
27
int
ai_protocol
;
28
}
KlResolveResult
;
29
31
typedef
void (*
KlResolveDoneFn
)(
KlResolveReq
*req,
const
KlResolveResult
*result,
32
int
error,
void
*user_data);
33
35
struct
KlResolveReq
{
36
KlResolver
*
resolver
;
37
};
38
40
struct
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 */
allocator.h
KlResolveDoneFn
void(* KlResolveDoneFn)(KlResolveReq *req, const KlResolveResult *result, int error, void *user_data)
Completion callback — called on the event loop thread.
Definition
resolver.h:31
KlEventCtx
Composable event loop context.
Definition
event_ctx.h:42
KlResolveReq
Opaque per-request handle — resolver implementation allocates.
Definition
resolver.h:35
KlResolveReq::resolver
KlResolver * resolver
Definition
resolver.h:36
KlResolveResult
Result passed to the completion callback.
Definition
resolver.h:22
KlResolveResult::ai_family
int ai_family
Definition
resolver.h:25
KlResolveResult::ai_socktype
int ai_socktype
Definition
resolver.h:26
KlResolveResult::ai_protocol
int ai_protocol
Definition
resolver.h:27
KlResolveResult::addrlen
socklen_t addrlen
Definition
resolver.h:24
KlResolver
Async DNS resolver vtable.
Definition
resolver.h:40
KlResolver::destroy
void(* destroy)(KlResolver *self)
Definition
resolver.h:61
KlResolver::cancel
void(* cancel)(KlResolveReq *req)
Definition
resolver.h:58
Generated by
1.9.8