[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/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c
index d404309..317e9f8 100644
--- a/bgpd/bgp_aspath.c
+++ b/bgpd/bgp_aspath.c
@@ -926,14 +926,14 @@
   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 @@
 {
   enum as_token token = as_token_unknown;
   u_short as_type;
-  u_short asno = NULL;
+  u_short asno = 0;
   struct aspath *aspath;
   int needtype;