From c225afacccc90674cfe9bed028c8567a56ed604f Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Thu, 23 Nov 2023 03:09:57 +0100 Subject: WIP: bytestring -> adata --- conf/cf-lex.l | 2 +- filter/config.Y | 4 ++-- lib/base64.c | 12 ++++++------ lib/base64.h | 9 +++++---- proto/wireguard/config.Y | 2 +- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/conf/cf-lex.l b/conf/cf-lex.l index 5eb709bc..8c20b2d0 100644 --- a/conf/cf-lex.l +++ b/conf/cf-lex.l @@ -354,7 +354,7 @@ else: { <> cf_error("Unterminated byte string"); ["] { BEGIN(INITIAL); - struct bytestring *bytes; + struct adata *bytes; bytes = cfg_allocz(sizeof(*bytes) + quoted_buffer.used); memcpy(bytes->data, quoted_buffer.data, quoted_buffer.used); diff --git a/filter/config.Y b/filter/config.Y index 7a2b6e38..ee8ec096 100644 --- a/filter/config.Y +++ b/filter/config.Y @@ -242,7 +242,7 @@ f_new_sub_tlv_tunnel_ep(u32 type, ip_addr ip) } static struct f_tree * -f_new_sub_tlv_encap(u32 st_type, u32 type, const struct bytestring *bytes) +f_new_sub_tlv_encap(u32 st_type, u32 type, const struct adata *bytes) { struct f_tree *t; @@ -263,7 +263,7 @@ f_new_sub_tlv_encap(u32 st_type, u32 type, const struct bytestring *bytes) } static struct f_tree * -f_new_sub_tlv_unknown(u32 type, const struct bytestring *bytes) +f_new_sub_tlv_unknown(u32 type, const struct adata *bytes) { struct f_tree *t; diff --git a/lib/base64.c b/lib/base64.c index d5f3ae9b..1f7fb4f0 100644 --- a/lib/base64.c +++ b/lib/base64.c @@ -26,12 +26,12 @@ static const unsigned char base64_table[65] = * nul terminated to make it easier to use as a C string. The nul terminator is * not included in out_len. */ -struct bytestring * base64_encode(linpool *pool, +struct adata * base64_encode(linpool *pool, const unsigned char *src, size_t len, size_t *out_len) { unsigned char *pos; - struct bytestring *out; + struct adata *out; const unsigned char *end, *in; size_t olen; int line_len; @@ -41,7 +41,7 @@ struct bytestring * base64_encode(linpool *pool, olen++; /* nul termination */ if (olen < len) return NULL; /* integer overflow */ - out = lp_alloc(pool, sizeof(struct bytestring) + olen); + out = lp_alloc(pool, sizeof(struct adata) + olen); if (out == NULL) return NULL; @@ -97,14 +97,14 @@ struct bytestring * base64_encode(linpool *pool, * * Caller is responsible for freeing the returned buffer. */ -struct bytestring * base64_decode_bs(linpool *pool, +struct adata * base64_decode_bs(linpool *pool, const unsigned char *src, size_t len, size_t *out_len) { unsigned char dtable[256], *pos, block[4], tmp; size_t i, count, olen; int pad = 0; - struct bytestring *out; + struct adata *out; memset(dtable, 0x80, 256); for (i = 0; i < sizeof(base64_table) - 1; i++) @@ -121,7 +121,7 @@ struct bytestring * base64_decode_bs(linpool *pool, return NULL; olen = count / 4 * 3; - out = lp_alloc(pool, sizeof(struct bytestring) + olen); + out = lp_alloc(pool, sizeof(struct adata) + olen); if (out == NULL) return NULL; pos = out->data; diff --git a/lib/base64.h b/lib/base64.h index 8ca4dd9b..4c46b0d4 100644 --- a/lib/base64.h +++ b/lib/base64.h @@ -2,10 +2,11 @@ #define _BIRD_BASE64_H_ #include "lib/resource.h" +#include "nest/route.h" -struct bytestring * base64_encode_bs(linpool *pool, const unsigned char *src, size_t len, - size_t *out_len); -struct bytestring * base64_decode_bs(linpool *pool, const unsigned char *src, size_t len, - size_t *out_len); +struct adata * base64_encode_bs(linpool *pool, const unsigned char *src, size_t len, + size_t *out_len); +struct adata * base64_decode_bs(linpool *pool, const unsigned char *src, size_t len, + size_t *out_len); #endif /* _BIRD_BASE64_H_ */ diff --git a/proto/wireguard/config.Y b/proto/wireguard/config.Y index 6a435da3..0fae832a 100644 --- a/proto/wireguard/config.Y +++ b/proto/wireguard/config.Y @@ -23,7 +23,7 @@ typedef char wg_key_b64_string[45]; int wg_key_from_base64(u8 key[32], const wg_key_b64_string base64); static struct f_tree * -f_new_sub_tlv_wg(u32 type, const struct bytestring *bs) +f_new_sub_tlv_wg(u32 type, const struct adata *bs) { struct f_tree *t = f_new_tree(); t->right = t; -- cgit v1.2.3