mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-12-31 20:46:28 +00:00
[bgpd] aspath_loop_check was broken, fix it and the aspath unit test code.
2006-08-06 Paul Jakma <paul.jakma@sun.com> * bgp_aspath.c: (aspath_loop_check) Fix the typo-bug which essentially had disabled this check. Problem reported by Bartek Kania <mrbk@gnarf.org> in [quagga-users 7388]. * aspath_test.c: (validate) Fix the sense of the aspath_loop_check, which was the wrong way around and had actually been testing for aspath_loop_check to be buggy.
This commit is contained in:
parent
3694374914
commit
1f742f21a9
@ -1,3 +1,9 @@
|
||||
2006-08-06 Paul Jakma <paul.jakma@sun.com>
|
||||
|
||||
* bgp_aspath.c: (aspath_loop_check) Fix the typo-bug which
|
||||
essentially had disabled this check. Problem reported by
|
||||
Bartek Kania <mrbk@gnarf.org> in [quagga-users 7388].
|
||||
|
||||
2006-07-27 Paul Jakma <paul.jakma@sun.com>
|
||||
|
||||
* bgpd.c: (peer_delete) Ensure freed buffers can not be
|
||||
|
||||
@ -926,14 +926,14 @@ aspath_firstas_check (struct aspath *aspath, as_t asno)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* AS path loop check. If aspath contains asno then return 1. */
|
||||
/* AS path loop check. If aspath contains asno then return >= 1. */
|
||||
int
|
||||
aspath_loop_check (struct aspath *aspath, as_t asno)
|
||||
{
|
||||
struct assegment *seg;
|
||||
int count = 0;
|
||||
|
||||
if ( (aspath == NULL) || (aspath->segments) )
|
||||
if ( (aspath == NULL) || (aspath->segments == NULL) )
|
||||
return 0;
|
||||
|
||||
seg = aspath->segments;
|
||||
@ -1363,7 +1363,7 @@ aspath_str2aspath (const char *str)
|
||||
{
|
||||
enum as_token token = as_token_unknown;
|
||||
u_short as_type;
|
||||
u_short asno = NULL;
|
||||
u_short asno = 0;
|
||||
struct aspath *aspath;
|
||||
int needtype;
|
||||
|
||||
|
||||
@ -1,3 +1,9 @@
|
||||
2006-08-06 Paul Jakma <paul.jakma@sun.com>
|
||||
|
||||
* aspath_test.c: (validate) Fix the sense of the aspath_loop_check,
|
||||
which was the wrong way around and had actually been testing for
|
||||
aspath_loop_check to be buggy.
|
||||
|
||||
2006-05-28 Paul Jakma <paul.jakma@sun.com>
|
||||
|
||||
* test-sig.c: (main) configure logging, there's no terminal
|
||||
|
||||
@ -76,7 +76,7 @@ static struct test_segment {
|
||||
10,
|
||||
{ "8482 51457 {5204}",
|
||||
"8482 51457 {5204}",
|
||||
3, 0, NOT_ALL_PRIVATE, 5204, 51457, 8482},
|
||||
3, 0, NOT_ALL_PRIVATE, 5204, 51456, 8482},
|
||||
},
|
||||
{ /* 4 */
|
||||
"seqset2",
|
||||
@ -618,8 +618,8 @@ validate (struct aspath *as, const struct test_spec *sp)
|
||||
}
|
||||
|
||||
/* loop, private and first as checks */
|
||||
if (aspath_loop_check (as, sp->does_loop)
|
||||
|| aspath_loop_check (as, sp->doesnt_loop)
|
||||
if ((sp->does_loop && aspath_loop_check (as, sp->does_loop) == 0)
|
||||
|| (sp->doesnt_loop && aspath_loop_check (as, sp->doesnt_loop) != 0)
|
||||
|| (aspath_private_as_check (as) != sp->private_as)
|
||||
|| (aspath_firstas_check (as,sp->first)
|
||||
&& sp->first == 0))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user