0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-09-18 19:35:20 +00:00

Nest: Fix leaking internal attributes in RIP and Babel

During backporting attribute changes from 3.0-branch, some internal
attributes (RIP iface and Babel seqno) leaked to 'show route all' output.
Allow protocols to hide specific attributes with GA_HIDDEN value.

Thanks to Nigel Kukard for the bugreport.
This commit is contained in:
Ondrej Zajicek 2023-01-03 17:01:54 +01:00
parent d3f50ede12
commit b28431e557
4 changed files with 10 additions and 4 deletions

View File

@ -94,6 +94,7 @@ void protos_dump_all(void);
#define GA_UNKNOWN 0 /* Attribute not recognized */
#define GA_NAME 1 /* Result = name */
#define GA_FULL 2 /* Result = both name and value */
#define GA_HIDDEN 3 /* Attribute should not be printed */
/*
* Known protocols

View File

@ -981,7 +981,9 @@ ea_show(struct cli *c, const eattr *e)
bsprintf(pos, "<type %02x>", e->type);
}
}
cli_printf(c, -1012, "\t%s", buf);
if (status != GA_HIDDEN)
cli_printf(c, -1012, "\t%s", buf);
}
/**

View File

@ -2081,9 +2081,6 @@ babel_get_attr(const eattr *a, byte *buf, int buflen UNUSED)
{
switch (a->id)
{
case EA_BABEL_SEQNO:
return GA_FULL;
case EA_BABEL_METRIC:
bsprintf(buf, "metric: %d", a->u.data);
return GA_FULL;
@ -2096,6 +2093,9 @@ babel_get_attr(const eattr *a, byte *buf, int buflen UNUSED)
return GA_FULL;
}
case EA_BABEL_SEQNO:
return GA_HIDDEN;
default:
return GA_UNKNOWN;
}

View File

@ -1233,6 +1233,9 @@ rip_get_attr(const eattr *a, byte *buf, int buflen UNUSED)
bsprintf(buf, "tag: %04x", a->u.data);
return GA_FULL;
case EA_RIP_FROM:
return GA_HIDDEN;
default:
return GA_UNKNOWN;
}