mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2025-01-02 07:01:53 +00:00
Conf: Bytestrings with hex: should use the same general format as ones without.
Either hex:01234567, or hex:01:23:45:67. No confusing formats like
hex:0123:4567🆎cdef, which looks like there is an implicit zero byte.
This commit is contained in:
parent
e83beb70bd
commit
c5c3a22bcc
@ -242,7 +242,7 @@ WHITE [ \t]
|
|||||||
return IP4;
|
return IP4;
|
||||||
}
|
}
|
||||||
|
|
||||||
({XIGIT}{2}){16,}|{XIGIT}{2}(:{XIGIT}{2}){15,}|hex:({XIGIT}{2}(:?{XIGIT}{2})*)? {
|
({XIGIT}{2}){16,}|{XIGIT}{2}(:{XIGIT}{2}){15,}|hex:({XIGIT}{2}*|{XIGIT}{2}(:{XIGIT}{2})*) {
|
||||||
char *s = yytext;
|
char *s = yytext;
|
||||||
struct adata *bs;
|
struct adata *bs;
|
||||||
|
|
||||||
|
@ -1561,22 +1561,18 @@ in the foot).
|
|||||||
This is a sequences of arbitrary bytes. There are no ways to modify
|
This is a sequences of arbitrary bytes. There are no ways to modify
|
||||||
bytestrings in filters. You can pass them between function, assign
|
bytestrings in filters. You can pass them between function, assign
|
||||||
them to variables of type <cf/bytestring/, print such values,
|
them to variables of type <cf/bytestring/, print such values,
|
||||||
compare bytestings (<cf/=, !=/). Bytestring literals are written
|
compare bytestings (<cf/=, !=/).
|
||||||
in several ways:
|
|
||||||
|
|
||||||
A sequence of hexadecimal digit pairs, optionally colon-separated.
|
Bytestring literals are written as a sequence of hexadecimal digit
|
||||||
A bytestring specified this way must be at least 16 bytes (32 digits)
|
pairs, optionally colon-separated. A bytestring specified this way
|
||||||
long: <cf/01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef/ or
|
must be either at least 16 bytes (32 digits) long, or prefixed by the
|
||||||
<cf/0123456789abcdef0123456789abcdef/.
|
<cf/hex:/ prefix: <cf/01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef/,
|
||||||
|
<cf/0123456789abcdef0123456789abcdef/, <cf/hex:/, <cf/hex:12:34:56/,
|
||||||
A sequence of hexadecimal digit pairs of any lengh (including zero)
|
<cf/hex:12345678/.
|
||||||
with the <cf/hex:/ prefix. Colon separators can be inserted
|
|
||||||
arbitrarily between any bytes: <cf/hex:/, <cf/hex:1234/,
|
|
||||||
<cf/hex:1234:56:78/.
|
|
||||||
|
|
||||||
A bytestring can be made from a hex string using <cf/from_hex()/
|
A bytestring can be made from a hex string using <cf/from_hex()/
|
||||||
function. Source strings can use any number of colons, hyphens and
|
function. Source strings can use any number of dots, colons, hyphens
|
||||||
spaces as byte separators: <cf/from_hex(" 1234 56:78 ab-cd-ef ")/.
|
and spaces as byte separators: <cf/from_hex(" 12.34 56:78 ab-cd-ef ")/.
|
||||||
|
|
||||||
<tag><label id="type-ip">ip</tag>
|
<tag><label id="type-ip">ip</tag>
|
||||||
This type can hold a single IP address. The IPv4 addresses are stored as
|
This type can hold a single IP address. The IPv4 addresses are stored as
|
||||||
@ -5006,7 +5002,7 @@ definitions, prefix definitions and DNS definitions:
|
|||||||
|
|
||||||
<label id="radv-custom-option-exam">
|
<label id="radv-custom-option-exam">
|
||||||
<p><code>
|
<p><code>
|
||||||
custom option type 38 value hex:0e10:2001:0db8:000a:000b:0000:0000;
|
custom option type 38 value hex:0e:10:20:01:0d:b8:00:0a:00:0b:00:00:00:00;
|
||||||
</code>
|
</code>
|
||||||
|
|
||||||
<tag><label id="radv-trigger">trigger <m/prefix/</tag>
|
<tag><label id="radv-trigger">trigger <m/prefix/</tag>
|
||||||
|
@ -87,7 +87,7 @@ bstrhextobin(const char *s, byte *b)
|
|||||||
int v = fromxdigit(*s);
|
int v = fromxdigit(*s);
|
||||||
if (v < 0)
|
if (v < 0)
|
||||||
{
|
{
|
||||||
if (strchr(" :-", *s) && !hi)
|
if (strchr(" -.:", *s) && !hi)
|
||||||
continue;
|
continue;
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user