aboutsummaryrefslogtreecommitdiff
path: root/src/resolv.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/resolv.h')
-rw-r--r--src/resolv.h137
1 files changed, 84 insertions, 53 deletions
diff --git a/src/resolv.h b/src/resolv.h
index 71e4958..74fa03f 100644
--- a/src/resolv.h
+++ b/src/resolv.h
@@ -68,22 +68,30 @@ struct prne_resolv_rr {
uint16_t rd_len;
};
-#define PRNE_RESOLV_NS_IPV4_GOOGLE_A\
- 0x8, 0x8, 0x8, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-#define PRNE_RESOLV_NS_IPV4_GOOGLE_B\
- 0x8, 0x8, 0x4, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-#define PRNE_RESOLV_NS_IPV4_CLOUDFLARE_A\
- 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-#define PRNE_RESOLV_NS_IPV4_CLOUDFLARE_B\
- 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-#define PRNE_RESOLV_NS_IPV4_QUAD9_A\
- 0x9, 0x9, 0x9, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-#define PRNE_RESOLV_NS_IPV4_QUAD9_B\
- 0x95, 0x70, 0x70, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-#define PRNE_RESOLV_NS_IPV4_CLEANBROWSING_A\
- 0xb9, 0xe4, 0xa8, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
-#define PRNE_RESOLV_NS_IPV4_CLEANBROWSING_B\
- 0xb9, 0xe4, 0xa9, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+#define PRNE_RESOLV_NS_IPV4_GOOGLE_A \
+ 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+#define PRNE_RESOLV_NS_IPV4_GOOGLE_B \
+ 0x08, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+#define PRNE_RESOLV_NS_IPV4_CLOUDFLARE_A \
+ 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+#define PRNE_RESOLV_NS_IPV4_CLOUDFLARE_B \
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+#define PRNE_RESOLV_NS_IPV4_QUAD9_A \
+ 0x09, 0x09, 0x09, 0x0a, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+#define PRNE_RESOLV_NS_IPV4_QUAD9_B \
+ 0x95, 0x70, 0x70, 0x0a, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+#define PRNE_RESOLV_NS_IPV4_CLEANBROWSING_A \
+ 0xb9, 0xe4, 0xa8, 0x09, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+#define PRNE_RESOLV_NS_IPV4_CLEANBROWSING_B \
+ 0xb9, 0xe4, 0xa9, 0x09, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#define PRNE_RESOLV_NS_POOL_IPV4 {\
PRNE_RESOLV_NS_IPV4_GOOGLE_A,\
PRNE_RESOLV_NS_IPV4_GOOGLE_B,\
@@ -95,22 +103,30 @@ struct prne_resolv_rr {
PRNE_RESOLV_NS_IPV4_CLEANBROWSING_B\
}
-#define PRNE_RESOLV_NS_IPV6_GOOGLE_A\
- 0x20, 0x1, 0x48, 0x60, 0x48, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x88
-#define PRNE_RESOLV_NS_IPV6_GOOGLE_B\
- 0x20, 0x1, 0x48, 0x60, 0x48, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x44
-#define PRNE_RESOLV_NS_IPV6_CLOUDFLARE_A\
- 0x26, 0x6, 0x47, 0x0, 0x47, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11, 0x11
-#define PRNE_RESOLV_NS_IPV6_CLOUDFLARE_B\
- 0x26, 0x6, 0x47, 0x0, 0x47, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x1
-#define PRNE_RESOLV_NS_IPV6_QUAD9_A\
- 0x26, 0x20, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe
-#define PRNE_RESOLV_NS_IPV6_QUAD9_B\
- 0x26, 0x20, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9
-#define PRNE_RESOLV_NS_IPV6_CLEANBROWSING_A\
- 0x2a, 0xd, 0x2a, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2
-#define PRNE_RESOLV_NS_IPV6_CLEANBROWSING_B\
- 0x2a, 0xd, 0x2a, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2
+#define PRNE_RESOLV_NS_IPV6_GOOGLE_A \
+ 0x20, 0x01, 0x48, 0x60, 0x48, 0x60, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88
+#define PRNE_RESOLV_NS_IPV6_GOOGLE_B \
+ 0x20, 0x01, 0x48, 0x60, 0x48, 0x60, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x44
+#define PRNE_RESOLV_NS_IPV6_CLOUDFLARE_A \
+ 0x26, 0x06, 0x47, 0x00, 0x47, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11
+#define PRNE_RESOLV_NS_IPV6_CLOUDFLARE_B \
+ 0x26, 0x06, 0x47, 0x00, 0x47, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01
+#define PRNE_RESOLV_NS_IPV6_QUAD9_A \
+ 0x26, 0x20, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe
+#define PRNE_RESOLV_NS_IPV6_QUAD9_B \
+ 0x26, 0x20, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09
+#define PRNE_RESOLV_NS_IPV6_CLEANBROWSING_A \
+ 0x2a, 0x0d, 0x2a, 0x00, 0x00, 0x01, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
+#define PRNE_RESOLV_NS_IPV6_CLEANBROWSING_B \
+ 0x2a, 0x0d, 0x2a, 0x00, 0x00, 0x02, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
#define PRNE_RESOLV_NS_POOL_IPV6 {\
PRNE_RESOLV_NS_IPV6_GOOGLE_A,\
PRNE_RESOLV_NS_IPV6_GOOGLE_B,\
@@ -130,31 +146,46 @@ 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
-#define PRNE_RESOLV_RCODE_SERVFAIL 2
-#define PRNE_RESOLV_RCODE_NXDOMAIN 3
-#define PRNE_RESOLV_RCODE_NOTIMP 4
-#define PRNE_RESOLV_RCODE_REFUSED 5
-
-#define PRNE_RESOLV_RTYPE_A 1
-#define PRNE_RESOLV_RTYPE_NS 2
-#define PRNE_RESOLV_RTYPE_CNAME 5
-#define PRNE_RESOLV_RTYPE_SOA 6
-#define PRNE_RESOLV_RTYPE_PTR 12
-#define PRNE_RESOLV_RTYPE_MX 15
-#define PRNE_RESOLV_RTYPE_TXT 16
-#define PRNE_RESOLV_RTYPE_AAAA 28
-
-
-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);
+#define PRNE_RESOLV_RCODE_NOERROR 0
+#define PRNE_RESOLV_RCODE_FORMERR 1
+#define PRNE_RESOLV_RCODE_SERVFAIL 2
+#define PRNE_RESOLV_RCODE_NXDOMAIN 3
+#define PRNE_RESOLV_RCODE_NOTIMP 4
+#define PRNE_RESOLV_RCODE_REFUSED 5
+
+#define PRNE_RESOLV_RTYPE_A 1
+#define PRNE_RESOLV_RTYPE_NS 2
+#define PRNE_RESOLV_RTYPE_CNAME 5
+#define PRNE_RESOLV_RTYPE_SOA 6
+#define PRNE_RESOLV_RTYPE_PTR 12
+#define PRNE_RESOLV_RTYPE_MX 15
+#define PRNE_RESOLV_RTYPE_TXT 16
+#define PRNE_RESOLV_RTYPE_AAAA 28
+
+
+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);
-prne_resolv_ns_pool_t prne_resolv_own_ns_pool(const prne_resolv_ns_pool_t *pool, const bool ownership);
+prne_resolv_ns_pool_t prne_resolv_own_ns_pool(
+ const prne_resolv_ns_pool_t *pool,
+ const bool ownership);
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);