Worker API reference
Functions
-
int worker_init(void)
Create and initialize the worker.
- Returns:
error code (ENOMEM)
-
void worker_deinit(void)
Destroy the worker (free memory).
-
knot_pkt_t *worker_resolve_mk_pkt_dname(knot_dname_t *qname, uint16_t qtype, uint16_t qclass, const struct kr_qflags *options)
-
knot_pkt_t *worker_resolve_mk_pkt(const char *qname_str, uint16_t qtype, uint16_t qclass, const struct kr_qflags *options)
Create a packet suitable for worker_resolve_start().
All in malloc() memory.
-
struct qr_task *worker_resolve_start(knot_pkt_t *query, struct kr_qflags options)
Start query resolution with given query.
- Returns:
task or NULL
-
int worker_resolve_exec(struct qr_task *task, knot_pkt_t *query)
-
struct kr_request *worker_task_request(struct qr_task *task)
- Returns:
struct kr_request associated with opaque task
-
int worker_task_step(struct qr_task *task, const struct sockaddr *packet_source, knot_pkt_t *packet)
-
int worker_task_numrefs(const struct qr_task *task)
-
int worker_task_finalize(struct qr_task *task, int state)
Finalize given task.
-
void worker_task_complete(struct qr_task *task)
-
void worker_task_ref(struct qr_task *task)
-
void worker_task_unref(struct qr_task *task)
-
void worker_task_timeout_inc(struct qr_task *task)
-
knot_pkt_t *worker_task_get_pktbuf(const struct qr_task *task)
-
struct kr_transport *worker_task_get_transport(struct qr_task *task)
-
struct session2 *worker_request_get_source_session(const struct kr_request *req)
Note: source session is NULL in case the request hasn’t come over network.
-
uint16_t worker_task_pkt_get_msgid(struct qr_task *task)
-
void worker_task_pkt_set_msgid(struct qr_task *task, uint16_t msgid)
-
uint64_t worker_task_creation_time(struct qr_task *task)
-
void worker_task_subreq_finalize(struct qr_task *task)
-
bool worker_task_finished(struct qr_task *task)
-
int qr_task_on_send(struct qr_task *task, struct session2 *s, int status)
To be called after sending a DNS message.
It mainly deals with cleanups.
Variables
-
struct worker_ctx *the_worker
Pointer to the singleton worker.
NULL if not initialized.
-
struct worker_stats
- #include <worker.h>
Various worker statistics.
Sync with wrk_stats()
Public Members
-
size_t queries
Total number of requests (from clients and internal ones).
-
size_t concurrent
The number of requests currently in processing.
-
size_t rconcurrent
-
size_t dropped
The number of requests dropped due to being badly formed.
See #471.
-
size_t timeout
Number of outbound queries that timed out.
-
size_t udp
Number of outbound queries over UDP.
-
size_t tcp
Number of outbound queries over TCP (excluding TLS).
-
size_t tls
Number of outbound queries over TLS.
-
size_t ipv4
Number of outbound queries over IPv4.
-
size_t ipv6
Number of outbound queries over IPv6.
-
size_t err_udp
Total number of write errors for UDP transport.
-
size_t err_tcp
Total number of write errors for TCP transport.
-
size_t err_tls
Total number of write errors for TLS transport.
-
size_t err_http
Total number of write errors for HTTP(S) transport.
-
size_t queries