+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
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;
{
enum as_token token = as_token_unknown;
u_short as_type;
- u_short asno = NULL;
+ u_short asno = 0;
struct aspath *aspath;
int needtype;
+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
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",
}
/* 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))