aboutsummaryrefslogtreecommitdiff
path: root/src/resolv.h
diff options
context:
space:
mode:
authorDavid Timber <mieabby@gmail.com>2020-08-20 12:23:35 +0930
committerDavid Timber <mieabby@gmail.com>2020-08-20 15:15:57 +0930
commit76d4d6b2bafada7b790e817b7324d53f3d3a0c7f (patch)
treed8b3669fa7b167fc3bf764e971fc6e70bd8d9b49 /src/resolv.h
parent7bd3eb3b1ad4209ac4cf4b46f849213d46bc33aa (diff)
Progress ...
* Move DVault out of executable. Dynamically load it on startup * Improved testing scheme * Tidy up prne_*assert* macro series * Protocol: store host credentials in base64 string. No mask * Use the lock shm as a shared_global so the stats can persist * mmap() the executable read-only for later use
Diffstat (limited to 'src/resolv.h')
-rw-r--r--src/resolv.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/resolv.h b/src/resolv.h
index 650406c..c62c642 100644
--- a/src/resolv.h
+++ b/src/resolv.h
@@ -7,6 +7,7 @@
struct prne_resolv;
typedef struct prne_resolv prne_resolv_t;
+typedef struct prne_resolv_ns_pool prne_resolv_ns_pool_t;
struct prne_resolv_prm;
struct prne_resolv_fut;
@@ -40,6 +41,12 @@ typedef enum {
NB_PRNE_RESOLV_QT
} prne_resolv_query_type_t;
+struct prne_resolv_ns_pool {
+ prne_net_endpoint_t *arr;
+ size_t cnt;
+ bool ownership;
+};
+
struct prne_resolv_prm {
void *ctx;
prne_resolv_fut_t *fut;
@@ -61,6 +68,13 @@ struct prne_resolv_rr {
uint16_t rd_len;
};
+/* Default Nameserver Pools
+*
+* For testing only. Referencing these will increase the size of the binary.
+*/
+extern const prne_resolv_ns_pool_t PRNE_RESOLV_DEF_IPV4_POOL;
+extern const prne_resolv_ns_pool_t PRNE_RESOLV_DEF_IPV6_POOL;
+
// honor bind-utils' choice of words
#define PRNE_RESOLV_RCODE_NOERROR 0
#define PRNE_RESOLV_RCODE_FORMERR 1
@@ -79,10 +93,13 @@ struct prne_resolv_rr {
#define PRNE_RESOLV_RTYPE_AAAA 28
-prne_resolv_t *prne_alloc_resolv (prne_worker_t *wkr, mbedtls_ctr_drbg_context *ctr_drbg);
+prne_resolv_t *prne_alloc_resolv (prne_worker_t *wkr, mbedtls_ctr_drbg_context *ctr_drbg, const prne_resolv_ns_pool_t pool_v4, const prne_resolv_ns_pool_t pool_v6);
bool prne_resolv_prm_gethostbyname (prne_resolv_t *ctx, const char *name, const prne_ipv_t ipv, prne_pth_cv_t *cv, prne_resolv_prm_t *out);
bool prne_resolv_prm_gettxtrec (prne_resolv_t *ctx, const char *name, prne_pth_cv_t *cv, prne_resolv_prm_t *out);
+void prne_resolv_init_ns_pool (prne_resolv_ns_pool_t *pool);
+void prne_resolv_free_ns_pool (prne_resolv_ns_pool_t *pool);
+bool prne_resolv_alloc_ns_pool (prne_resolv_ns_pool_t *pool, const size_t cnt);
void prne_resolv_init_prm (prne_resolv_prm_t *prm);
void prne_resolv_free_prm (prne_resolv_prm_t *prm);
void prne_init_resolv_fut (prne_resolv_fut_t *fut);