Highlighter: use original file from contrib/examples/highlighter

This makes it easier to track updates and make diffs. Also, disable
things we don't support in the NetworkExtension app.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2019-01-07 12:02:23 -05:00 committed by Roopesh Chander
parent 59bfa7f1df
commit 64fe415879
2 changed files with 504 additions and 494 deletions

View File

@ -152,6 +152,7 @@ static bool is_valid_persistentkeepalive(string_span_t s)
return is_valid_u16(s);
}
#ifndef MOBILE_WGQUICK_SUBSET
static bool is_valid_u32(string_span_t s)
{
uint64_t val = 0;
@ -204,6 +205,14 @@ static bool is_valid_saveconfig(string_span_t s)
(s.len == 5 && !memcmp(s.s, "false", 5));
}
static bool is_valid_prepostupdown(string_span_t s)
{
/* It's probably not worthwhile to try to validate a bash expression.
* So instead we just demand non-zero length. */
return s.len;
}
#endif
static bool is_valid_scope(string_span_t s)
{
if (s.len > 64 || !s.len)
@ -292,24 +301,19 @@ static bool is_valid_dns(string_span_t s)
return is_valid_ipv4(s) || is_valid_ipv6(s);
}
static bool is_valid_prepostupdown(string_span_t s)
{
/* It's probably not worthwhile to try to validate a bash expression.
* So instead we just demand non-zero length. */
return s.len;
}
enum keytype {
InterfaceSection,
PrivateKey,
ListenPort,
FwMark,
Address,
DNS,
MTU,
#ifndef MOBILE_WGQUICK_SUBSET
FwMark,
Table,
PreUp, PostUp, PreDown, PostDown,
SaveConfig,
#endif
PeerSection,
PublicKey,
@ -335,21 +339,23 @@ static enum keytype get_keytype(string_span_t s)
#define check_enum(t) do { if (s.len == strlen(#t) && !strncasecmp(#t, s.s, s.len)) return t; } while (0)
check_enum(PrivateKey);
check_enum(ListenPort);
check_enum(FwMark);
check_enum(Address);
check_enum(DNS);
check_enum(MTU);
check_enum(Table);
check_enum(PreUp);
check_enum(PostUp);
check_enum(PreDown);
check_enum(PostDown);
check_enum(PublicKey);
check_enum(PresharedKey);
check_enum(AllowedIPs);
check_enum(Endpoint);
check_enum(PersistentKeepalive);
#ifndef MOBILE_WGQUICK_SUBSET
check_enum(FwMark);
check_enum(Table);
check_enum(PreUp);
check_enum(PostUp);
check_enum(PreDown);
check_enum(PostDown);
check_enum(SaveConfig);
#endif
return Invalid;
#undef check_enum
}
@ -468,24 +474,26 @@ static void highlight_value(struct highlight_span_array *ret, const string_span_
case PresharedKey:
append_highlight_span(ret, parent.s, s, is_valid_key(s) ? HighlightKey : HighlightError);
break;
case MTU:
append_highlight_span(ret, parent.s, s, is_valid_mtu(s) ? HighlightMTU : HighlightError);
break;
#ifndef MOBILE_WGQUICK_SUBSET
case SaveConfig:
append_highlight_span(ret, parent.s, s, is_valid_saveconfig(s) ? HighlightSaveConfig : HighlightError);
break;
case FwMark:
append_highlight_span(ret, parent.s, s, is_valid_fwmark(s) ? HighlightFwMark : HighlightError);
break;
case Table:
append_highlight_span(ret, parent.s, s, is_valid_table(s) ? HighlightTable : HighlightError);
break;
case MTU:
append_highlight_span(ret, parent.s, s, is_valid_mtu(s) ? HighlightMTU : HighlightError);
break;
case SaveConfig:
append_highlight_span(ret, parent.s, s, is_valid_saveconfig(s) ? HighlightSaveConfig : HighlightError);
break;
case PreUp:
case PostUp:
case PreDown:
case PostDown:
append_highlight_span(ret, parent.s, s, is_valid_prepostupdown(s) ? HighlightCmd : HighlightError);
break;
#endif
case ListenPort:
append_highlight_span(ret, parent.s, s, is_valid_port(s) ? HighlightPort : HighlightError);
break;

View File

@ -9,18 +9,20 @@ enum highlight_type {
HighlightSection,
HighlightKeytype,
HighlightKey,
HighlightCmd,
HighlightIP,
HighlightCidr,
HighlightHost,
HighlightPort,
HighlightTable,
HighlightFwMark,
HighlightMTU,
HighlightSaveConfig,
HighlightKeepalive,
HighlightComment,
HighlightDelimiter,
#ifndef MOBILE_WGQUICK_SUBSET
HighlightTable,
HighlightFwMark,
HighlightSaveConfig,
HighlightCmd,
#endif
HighlightError,
HighlightEnd
};