mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 15:23:39 +00:00
bgpd: Actually find the sequence number for bgp extcommunity-list...
The code in the bgp extcommunity-list function was using argv_find to get the correct idx. The problem was that we had already done argv_finds before and idx was non-zero thus having us always set the seq pointer to what was last looked up. This causes us to pass in a value to the underlying function and it would just wisely ignore it causing a seq number of 0. We would then write this seq number of 0 and then immediately reject it on read in again. BOO! Actually handle argv_find the way it was meant to be. Ticket:CM-29926 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
e4dcf108d6
commit
34f6d0c67a
@ -17617,8 +17617,7 @@ DEFUN (extcommunity_list_standard,
|
|||||||
argv_find(argv, argc, "WORD", &idx);
|
argv_find(argv, argc, "WORD", &idx);
|
||||||
cl_number_or_name = argv[idx]->arg;
|
cl_number_or_name = argv[idx]->arg;
|
||||||
|
|
||||||
argv_find(argv, argc, "(1-4294967295)", &idx);
|
if (argv_find(argv, argc, "(1-4294967295)", &idx))
|
||||||
if (idx)
|
|
||||||
seq = argv[idx]->arg;
|
seq = argv[idx]->arg;
|
||||||
|
|
||||||
direct = argv_find(argv, argc, "permit", &idx) ? COMMUNITY_PERMIT
|
direct = argv_find(argv, argc, "permit", &idx) ? COMMUNITY_PERMIT
|
||||||
@ -17663,8 +17662,7 @@ DEFUN (extcommunity_list_name_expanded,
|
|||||||
argv_find(argv, argc, "WORD", &idx);
|
argv_find(argv, argc, "WORD", &idx);
|
||||||
cl_number_or_name = argv[idx]->arg;
|
cl_number_or_name = argv[idx]->arg;
|
||||||
|
|
||||||
argv_find(argv, argc, "(1-4294967295)", &idx);
|
if (argv_find(argv, argc, "(1-4294967295)", &idx))
|
||||||
if (idx)
|
|
||||||
seq = argv[idx]->arg;
|
seq = argv[idx]->arg;
|
||||||
|
|
||||||
direct = argv_find(argv, argc, "permit", &idx) ? COMMUNITY_PERMIT
|
direct = argv_find(argv, argc, "permit", &idx) ? COMMUNITY_PERMIT
|
||||||
@ -17707,8 +17705,7 @@ DEFUN (no_extcommunity_list_standard_all,
|
|||||||
char *seq = NULL;
|
char *seq = NULL;
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
|
|
||||||
argv_find(argv, argc, "(1-4294967295)", &idx);
|
if (argv_find(argv, argc, "(1-4294967295)", &idx))
|
||||||
if (idx)
|
|
||||||
seq = argv[idx]->arg;
|
seq = argv[idx]->arg;
|
||||||
|
|
||||||
idx = 0;
|
idx = 0;
|
||||||
@ -17772,8 +17769,7 @@ DEFUN (no_extcommunity_list_expanded_all,
|
|||||||
char *seq = NULL;
|
char *seq = NULL;
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
|
|
||||||
argv_find(argv, argc, "(1-4294967295)", &idx);
|
if (argv_find(argv, argc, "(1-4294967295)", &idx))
|
||||||
if (idx)
|
|
||||||
seq = argv[idx]->arg;
|
seq = argv[idx]->arg;
|
||||||
|
|
||||||
idx = 0;
|
idx = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user