From 44f973d9fd8b7b45e921e6e94c149b862656d4e2 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Sat, 13 Feb 2021 18:43:33 +0100 Subject: [PATCH] Allow DNS labels to start with an underscore. --- src/parse.peg | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/parse.peg b/src/parse.peg index 6a24d65..81366ad 100644 --- a/src/parse.peg +++ b/src/parse.peg @@ -141,7 +141,7 @@ invalid_syntax = < (!eol .)+ > eol } service = name -address = ipv4 | ipv6 | hostname # TODO: IPV6 +address = ipv4 | ipv6 | hostname pattern = [0-9*?]+ ('.' [0-9*?]+ ('.' [0-9*?]+ ('.' [0-9*?]+)?)?)? number = digit+ @@ -150,14 +150,15 @@ ipv6 = (hexdigit | ':')+ | '[' ipv6 ']' hostname = (label '.')* name '.'? -name = [a-zA-Z_] [-a-zA-Z0-9_]* -label = [0-9]* name +name = id ('-' | id | digit)* +label = (id | digit) ('-' | id | digit)* # DNS labels may have digits filename = '"' [^"]+ '"' | [^ \t\r\n]+ - = [ \t]+ digit = [0-9] hexdigit = [0-9a-fA-F] +id = [a-zA-Z_] sol = { ++yy->currentLine; } eol = '\r'? '\n' | eof eof = '\0'