diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2024-07-25 05:15:33 +0000 |
---|---|---|
committer | Laurent Bercot <ska@appnovation.com> | 2024-07-25 05:15:33 +0000 |
commit | 6b8bb38398e58539096fb054e354bddadda09f9b (patch) | |
tree | 5952d8ca0d25a8d22019a548fc35d8837b456024 /src/cache/query.c | |
parent | 0d53cd3855efb536676a9dcfeadf7bf2c5de6e14 (diff) | |
download | shibari-6b8bb38398e58539096fb054e354bddadda09f9b.tar.xz |
More skeleton
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/cache/query.c')
-rw-r--r-- | src/cache/query.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/cache/query.c b/src/cache/query.c index ad606e6..6c4bda8 100644 --- a/src/cache/query.c +++ b/src/cache/query.c @@ -1,13 +1,41 @@ /* ISC license. */ +#include <stdint.h> + +#include <s6-dns/s6dns-engine.h> + #include "shibari-cache-internal.h" -void query_fail (query *q) +static uint16_t query_delete (query *q) +{ + uint16_t newi = q->prev ; + QUERY(newi)->next = q->next ; + QUERY(q->next)->prev = q->prev ; + q->xindex = UINT16_MAX ; + return newi ; +} + +uint16_t query_abort (uint16_t id) { + query *q = QUERY(id) ; + s6dns_engine_recycle(&q->dt) ; + return query_delete(q) ; } -void query_success (query *q) +uint16_t query_fail (uint16_t id) { + query *q = QUERY(id) ; + + if (q->source == 2) tcpconnection_removequery(TCPCONNECTION(q->i), id) ; + return query_delete(q) ; +} + +uint16_t query_succeed (uint16_t id) +{ + query *q = QUERY(id) ; + + if (q->source == 2) tcpconnection_removequery(TCPCONNECTION(q->i), id) ; + return query_delete(q) ; } int query_new (uint8_t source, uint16_t i, char const *ip, uint16_t port, char const *s, uint16_t len) |