[master] 6b0c55b76 Add a BASE64 class to VCT
Poul-Henning Kamp
phk at FreeBSD.org
Mon Jul 13 13:16:07 UTC 2020
commit 6b0c55b76d3293a54758c3a339f6b9f6b4591e8f
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Mon Jul 13 13:05:43 2020 +0000
Add a BASE64 class to VCT
diff --git a/include/vct.h b/include/vct.h
index 9bd3ce3d8..7c5825849 100644
--- a/include/vct.h
+++ b/include/vct.h
@@ -47,6 +47,7 @@
#define VCT_TCHAR (1<<9)
#define VCT_ID (1<<10)
#define VCT_IDENT (VCT_ALPHA | VCT_DIGIT | VCT_ID)
+#define VCT_BASE64 (1<<11)
#define VCT_VT (1<<12)
#define VCT_SPACE (VCT_LWS | VCT_VT)
#define VCT_UPPER (1<<13)
@@ -75,6 +76,7 @@ vct_is(int x, uint16_t y)
#define vct_islower(x) vct_is(x, VCT_LOWER)
#define vct_isupper(x) vct_is(x, VCT_UPPER)
#define vct_isalnum(x) vct_is(x, VCT_ALPHA | VCT_DIGIT)
+#define vct_isbase64(x) vct_is(x, VCT_BASE64)
#define vct_issep(x) vct_is(x, VCT_SEPARATOR)
#define vct_issepctl(x) vct_is(x, VCT_SEPARATOR | VCT_CTL)
#define vct_isident1(x) vct_isalpha(x)
diff --git a/lib/libvarnish/vct.c b/lib/libvarnish/vct.c
index 7b0d051ae..566f1d9ea 100644
--- a/lib/libvarnish/vct.c
+++ b/lib/libvarnish/vct.c
@@ -43,8 +43,8 @@
/* NB: VCT always operate in ASCII, don't replace 0x0d with \r etc. */
-#define VCT_UPALPHA (VCT_ALPHA | VCT_UPPER)
-#define VCT_LOALPHA (VCT_ALPHA | VCT_LOWER)
+#define VCT_UPALPHA (VCT_ALPHA | VCT_UPPER | VCT_BASE64)
+#define VCT_LOALPHA (VCT_ALPHA | VCT_LOWER | VCT_BASE64)
const uint16_t vct_typtab[256] = {
[0x00] = VCT_CTL,
@@ -90,25 +90,25 @@ const uint16_t vct_typtab[256] = {
[0x28] = VCT_SEPARATOR,
[0x29] = VCT_SEPARATOR,
[0x2a] = VCT_TCHAR,
- [0x2b] = VCT_TCHAR,
+ [0x2b] = VCT_TCHAR | VCT_BASE64,
[0x2c] = VCT_SEPARATOR,
[0x2d] = VCT_XMLNAME | VCT_TCHAR | VCT_ID,
[0x2e] = VCT_XMLNAME | VCT_TCHAR,
- [0x2f] = VCT_SEPARATOR,
- [0x30] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
- [0x31] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
- [0x32] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
- [0x33] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
- [0x34] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
- [0x35] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
- [0x36] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
- [0x37] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
- [0x38] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
- [0x39] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
+ [0x2f] = VCT_SEPARATOR | VCT_BASE64,
+ [0x30] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME | VCT_BASE64,
+ [0x31] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME | VCT_BASE64,
+ [0x32] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME | VCT_BASE64,
+ [0x33] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME | VCT_BASE64,
+ [0x34] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME | VCT_BASE64,
+ [0x35] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME | VCT_BASE64,
+ [0x36] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME | VCT_BASE64,
+ [0x37] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME | VCT_BASE64,
+ [0x38] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME | VCT_BASE64,
+ [0x39] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME | VCT_BASE64,
[0x3a] = VCT_SEPARATOR | VCT_XMLNAMESTART,
[0x3b] = VCT_SEPARATOR,
[0x3c] = VCT_SEPARATOR,
- [0x3d] = VCT_SEPARATOR,
+ [0x3d] = VCT_SEPARATOR | VCT_BASE64,
[0x3e] = VCT_SEPARATOR,
[0x3f] = VCT_SEPARATOR,
[0x40] = VCT_SEPARATOR,
More information about the varnish-commit
mailing list