0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-17 08:38:42 +00:00

Nest: Fix primary flag in show route

The route is changed by rte_make_tmp_attrs(), so we need to compare
net->routes to the original one.

Thanks to Kenth Eriksson for the bugreport.
This commit is contained in:
Ondrej Zajicek (work) 2019-10-25 13:28:51 +02:00
parent ec331acf48
commit 498d8145c0

View File

@ -29,12 +29,11 @@ rt_show_table(struct cli *c, struct rt_show_data *d)
} }
static void static void
rt_show_rte(struct cli *c, byte *ia, rte *e, struct rt_show_data *d) rt_show_rte(struct cli *c, byte *ia, rte *e, struct rt_show_data *d, int primary)
{ {
byte from[IPA_MAX_TEXT_LENGTH+8]; byte from[IPA_MAX_TEXT_LENGTH+8];
byte tm[TM_DATETIME_BUFFER_SIZE], info[256]; byte tm[TM_DATETIME_BUFFER_SIZE], info[256];
rta *a = e->attrs; rta *a = e->attrs;
int primary = (e->net->routes == e);
int sync_error = (e->net->n.flags & KRF_SYNC_ERROR); int sync_error = (e->net->n.flags & KRF_SYNC_ERROR);
void (*get_route_info)(struct rte *, byte *buf); void (*get_route_info)(struct rte *, byte *buf);
struct nexthop *nh; struct nexthop *nh;
@ -167,7 +166,7 @@ rt_show_net(struct cli *c, net *n, struct rt_show_data *d)
goto skip; goto skip;
if (d->stats < 2) if (d->stats < 2)
rt_show_rte(c, ia, e, d); rt_show_rte(c, ia, e, d, (e->net->routes == ee));
d->show_counter++; d->show_counter++;
ia[0] = 0; ia[0] = 0;