[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.
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 74118e6..b066cfd 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -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
diff --git a/tests/aspath_test.c b/tests/aspath_test.c
index 5d510cc..1d28dbe 100644
--- a/tests/aspath_test.c
+++ b/tests/aspath_test.c
@@ -76,7 +76,7 @@
     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 @@
     }
   
     /* 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))