summaryrefslogtreecommitdiff
path: root/tools/gen_test_char.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gen_test_char.c')
-rw-r--r--tools/gen_test_char.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/tools/gen_test_char.c b/tools/gen_test_char.c
index 811c802f215d0..c48d2cbe74391 100644
--- a/tools/gen_test_char.c
+++ b/tools/gen_test_char.c
@@ -32,6 +32,8 @@
#define T_ESCAPE_ECHO (0x08)
#define T_ESCAPE_URLENCODED (0x10)
#define T_ESCAPE_XML (0x20)
+#define T_ESCAPE_LDAP_DN (0x40)
+#define T_ESCAPE_LDAP_FILTER (0x80)
int main(int argc, char *argv[])
{
@@ -46,6 +48,8 @@ int main(int argc, char *argv[])
"#define T_ESCAPE_ECHO (%u)\n"
"#define T_ESCAPE_URLENCODED (%u)\n"
"#define T_ESCAPE_XML (%u)\n"
+ "#define T_ESCAPE_LDAP_DN (%u)\n"
+ "#define T_ESCAPE_LDAP_FILTER (%u)\n"
"\n"
"static const unsigned char test_char_table[256] = {",
T_ESCAPE_SHELL_CMD,
@@ -53,7 +57,9 @@ int main(int argc, char *argv[])
T_OS_ESCAPE_PATH,
T_ESCAPE_ECHO,
T_ESCAPE_URLENCODED,
- T_ESCAPE_XML);
+ T_ESCAPE_XML,
+ T_ESCAPE_LDAP_DN,
+ T_ESCAPE_LDAP_FILTER);
for (c = 0; c < 256; ++c) {
flags = 0;
@@ -106,6 +112,16 @@ int main(int argc, char *argv[])
flags |= T_ESCAPE_XML;
}
+ /* LDAP DN escaping (RFC4514) */
+ if (!isprint(c) || strchr("\"+,;<>\\", c)) {
+ flags |= T_ESCAPE_LDAP_DN;
+ }
+
+ /* LDAP filter escaping (RFC4515) */
+ if (!isprint(c) || strchr("*()\\", c)) {
+ flags |= T_ESCAPE_LDAP_FILTER;
+ }
+
printf("%u%c", flags, (c < 255) ? ',' : ' ');
}