]> git.puffer.fish Git - mirror/frr.git/commitdiff
2004-09-24 Paul Jakma <paul@dishone.st>
authorpaul <paul>
Fri, 24 Sep 2004 08:24:42 +0000 (08:24 +0000)
committerpaul <paul>
Fri, 24 Sep 2004 08:24:42 +0000 (08:24 +0000)
        * irdp_{interface,main}.c: lists typedef removal cleanup.
          update some list loops to LIST_LOOP. some miscellaneous style
          and indent fixups.
          (no_ip_irdp_address_preference_cmd) Fix delete of referenced node
          in loop.
        * irdp_packet.c: (irdp_recvmsg) Fix buggy assignment of integer
          to pointer.
        * if_ioctl{,_solaris}.c: lists typedef removal cleanup.
          update some list loops to LIST_LOOP.

zebra/ChangeLog
zebra/if_ioctl.c
zebra/if_ioctl_solaris.c
zebra/irdp_interface.c
zebra/irdp_main.c
zebra/irdp_packet.c

index 38bca6b08e64467b505016416d54c37d881b17a2..c31ceb8a4c4e8cc8332f61d80ed54beb68738b5a 100644 (file)
@@ -1,3 +1,15 @@
+2004-09-24 Paul Jakma <paul@dishone.st>
+
+        * irdp_{interface,main}.c: lists typedef removal cleanup.        
+          update some list loops to LIST_LOOP. some miscellaneous style
+          and indent fixups.
+          (no_ip_irdp_address_preference_cmd) Fix delete of referenced node    
+          in loop.       
+        * irdp_packet.c: (irdp_recvmsg) Fix buggy assignment of integer
+          to pointer.
+        * if_ioctl{,_solaris}.c: lists typedef removal cleanup. 
+          update some list loops to LIST_LOOP.
+
 2004-09-23 Hasso Tepper <hasso at quagga.net>
 
        * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
index ab36f68179338537e48e81292fd1e992d12a8aab..431e7ea18a28f05211e08a71c5af73c9a14ca426 100644 (file)
@@ -405,10 +405,10 @@ if_get_addr (struct interface *ifp)
 static void
 interface_info_ioctl ()
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
   
-  for (node = listhead (iflist); node; node = nextnode (node))
+  LIST_LOOP (iflist, ifp, node)
     {
       ifp = getdata (node);
 
index c05883c66c5302e6dec3c7c6616952d79f275ce8..4f8284a31cec07d70dbec629e7d554c6e10e3328 100644 (file)
@@ -334,16 +334,14 @@ struct connected *
 if_lookup_linklocal (struct interface *ifp)
 {
 #ifdef HAVE_IPV6
-  listnode node;
+  struct listnode *node;
   struct connected *ifc;
 
   if (ifp == NULL)
     return NULL;
 
-  for (node = listhead (ifp->connected); node; node = nextnode (node))
+  LIST_LOOP (ifp->connected, ifc, node)
     {
-      ifc = getdata (node);
-
       if ((ifc->address->family == AF_INET6) &&
           (IN6_IS_ADDR_LINKLOCAL (&ifc->address->u.prefix6)))
         return ifc;
index 59e5de14d55ec225019e023b5bdae8d0ec0560b7..7871f4c9e9477b5cc205cf311118f40c325eaab8 100644 (file)
@@ -76,14 +76,13 @@ char b1[16], b2[16], b3[16], b4[16];  /* For inet_2a */
 
 struct prefix *irdp_get_prefix(struct interface *ifp)
 {
-  listnode node;
+  struct listnode *node;
   struct connected *ifc;
   
-  if(ifp->connected) 
-    for (node = listhead (ifp->connected); node; nextnode (node)) {
-      ifc = getdata (node);
+  if (ifp->connected)
+    LIST_LOOP (ifp->connected, ifc, node)
       return ifc->address;
-    }
+
   return NULL;
 }
 
@@ -158,13 +157,13 @@ int if_drop_group (struct interface *ifp)
 
 struct interface *get_iflist_ifp(int idx)
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
 
-  for (node = listhead (iflist); node; nextnode (node)) {
-      ifp = getdata (node);
-      if(ifp->ifindex == idx) return ifp;
-    }
+  LIST_LOOP (iflist, ifp, node)
+    if(ifp->ifindex == idx) 
+      return ifp;
+
   return NULL;
 }
 
@@ -198,7 +197,8 @@ void irdp_if_start(struct interface *ifp, int multicast, int set_defaults)
 {
   struct zebra_if *zi= ifp->info;
   struct irdp_interface *irdp = &zi->irdp;
-  listnode node;
+  struct listnode *node;
+  struct connected *ifc;
   u_int32_t timer, seed;
 
   if (irdp->flags & IF_ACTIVE ) {
@@ -234,12 +234,12 @@ void irdp_if_start(struct interface *ifp, int multicast, int set_defaults)
   /* The spec suggests this for randomness */
 
   seed = 0;
-  if( ifp->connected) 
-         for (node = listhead (ifp->connected); node; nextnode (node)) 
-         {
-                 struct connected *ifc = getdata (node);
-                 seed = ifc->address->u.prefix4.s_addr;
-         }
+  if( ifp->connected)
+    LIST_LOOP (ifp->connected, ifc, node)
+      {
+        seed = ifc->address->u.prefix4.s_addr;
+        break;
+      }
   
   srandom(seed);
   timer =  (random () % IRDP_DEFAULT_INTERVAL) + 1; 
@@ -337,7 +337,7 @@ void irdp_config_write (struct vty *vty, struct interface *ifp)
   struct zebra_if *zi=ifp->info;
   struct irdp_interface *irdp=&zi->irdp;
   struct Adv *adv;
-  listnode node;
+  struct listnode *node;
 
   if(irdp->flags & IF_ACTIVE || irdp->flags & IF_SHUTDOWN) {
 
@@ -352,14 +352,11 @@ void irdp_config_write (struct vty *vty, struct interface *ifp)
     vty_out (vty, " ip irdp preference %ld%s",  
             irdp->Preference, VTY_NEWLINE);
 
-    for (node = listhead (irdp->AdvPrefList); node; nextnode (node)) {
-           adv = getdata (node);
-           vty_out (vty, " ip irdp address %s preference %d%s",
-                    inet_2a(adv->ip.s_addr, b1),
-                    adv->pref,
-                    VTY_NEWLINE);
-
-    }
+    LIST_LOOP (irdp->AdvPrefList, adv, node)
+      vty_out (vty, " ip irdp address %s preference %d%s",
+                    inet_2a(adv->ip.s_addr, b1),
+                    adv->pref, 
+                    VTY_NEWLINE);
 
     vty_out (vty, " ip irdp holdtime %d%s",  
             irdp->Lifetime, VTY_NEWLINE);
@@ -591,7 +588,7 @@ DEFUN (ip_irdp_address_preference,
        "Set IRDP address for advertise\n"
        "Preference level\n")
 {
-  listnode node;
+  struct listnode *node;
   struct in_addr ip; 
   int pref;
   int ret;
@@ -613,10 +610,9 @@ DEFUN (ip_irdp_address_preference,
 
   pref = atoi(argv[1]);
 
-  for (node = listhead (irdp->AdvPrefList); node; nextnode (node)) {
-         adv = getdata (node);
-      if(adv->ip.s_addr == ip.s_addr) return CMD_SUCCESS;
-  }
+  LIST_LOOP (irdp->AdvPrefList, adv, node)
+    if(adv->ip.s_addr == ip.s_addr) 
+      return CMD_SUCCESS;
 
   adv = Adv_new();
   adv->ip = ip;
@@ -637,7 +633,7 @@ DEFUN (no_ip_irdp_address_preference,
        "Select IRDP address\n"
        "Old preference level\n")
 {
-  listnode node;
+  struct listnode *node;
   struct in_addr ip; 
   int pref;
   int ret;
@@ -655,21 +651,24 @@ DEFUN (no_ip_irdp_address_preference,
   irdp=&zi->irdp;
 
   ret = inet_aton(argv[0], &ip);
-  if(!ret) return CMD_WARNING;
+  if (!ret) 
+    return CMD_WARNING;
 
   pref = atoi(argv[1]);
 
-  for (node = listhead (irdp->AdvPrefList); node; nextnode (node)) {
-         adv = getdata (node);
-         if(adv->ip.s_addr == ip.s_addr ) {
-                 listnode_delete(irdp->AdvPrefList, adv);
-                 break;
-         }
-  }
-
+  for (node = listhead (irdp->AdvPrefList); node; node = nnode)
+    {
+      nnode = node->next;
+      adv = getdata (node);
+      
+      if(adv->ip.s_addr == ip.s_addr )
+        {
+          listnode_delete(irdp->AdvPrefList, adv);
+          break;
+        }
+    }
+  
   return CMD_SUCCESS;
-
-
 }
 
 DEFUN (ip_irdp_debug_messages,
index f711d8521c77cd17c790060e99a5e64d16ef7386..9e31950e2ca1a6a1d1a789d58e5879cbbc5acc5a 100644 (file)
@@ -138,18 +138,18 @@ irdp_sock_init (void)
 
 int get_pref(struct irdp_interface *irdp, struct prefix *p)
 {
-  listnode node;
+  struct listnode *node;
   struct Adv *adv;
 
   /* Use default preference or use the override pref */
   
-  if( irdp->AdvPrefList == NULL ) return irdp->Preference;
+  if( irdp->AdvPrefList == NULL )
+    return irdp->Preference;
   
-  for (node = listhead (irdp->AdvPrefList); node; nextnode (node)) {
-    adv = getdata (node);
+  LIST_LOOP (irdp->AdvPrefList, adv, node)
     if( p->u.prefix4.s_addr == adv->ip.s_addr )
       return adv->pref;
-  }
+
   return irdp->Preference;
 }
 
@@ -231,21 +231,18 @@ int irdp_send_thread(struct thread *t_advert)
   struct zebra_if *zi=ifp->info;
   struct irdp_interface *irdp=&zi->irdp;
   struct prefix *p;
-  listnode node;
+  struct listnode *node;
   struct connected *ifc;
 
   irdp->flags &= ~IF_SOLICIT;
 
   if(ifp->connected) 
-    for (node = listhead (ifp->connected); node; nextnode (node)) {
-      ifc = getdata (node);
-
-      p = ifc->address;
-
-      irdp_advertisement(ifp, p);
-      irdp->irdp_sent++;
-
-    }
+    LIST_LOOP (ifp->connected, ifc, node)
+      {
+        p = ifc->address;
+        irdp_advertisement(ifp, p);
+        irdp->irdp_sent++;
+      }
 
   tmp = irdp->MaxAdvertInterval-irdp->MinAdvertInterval;
   timer =  (random () % tmp ) + 1;
@@ -266,7 +263,7 @@ void irdp_advert_off(struct interface *ifp)
 {
   struct zebra_if *zi=ifp->info;
   struct irdp_interface *irdp=&zi->irdp;
-  listnode node;
+  struct listnode *node;
   int i;
   struct connected *ifc;
   struct prefix *p;
@@ -275,21 +272,20 @@ void irdp_advert_off(struct interface *ifp)
   irdp->t_advertise = NULL;
   
   if(ifp->connected) 
-    for (node = listhead (ifp->connected); node; nextnode (node)) {
-      ifc = getdata (node);
-
-      p = ifc->address;
-
-      /* Output some packets with Lifetime 0 
-        we should add a wait...
-      */
-
-      for(i=0; i< IRDP_LAST_ADVERT_MESSAGES; i++) {
-
-       irdp->irdp_sent++;
-       irdp_advertisement(ifp, p);
+    LIST_LOOP (ifp->connected, ifc, node)
+      {
+        p = ifc->address;
+
+        /* Output some packets with Lifetime 0 
+           we should add a wait...
+        */
+
+        for(i=0; i< IRDP_LAST_ADVERT_MESSAGES; i++) 
+          {
+            irdp->irdp_sent++;
+            irdp_advertisement(ifp, p);
+          }
       }
-    }
 }
 
 
@@ -320,7 +316,7 @@ void process_solicit (struct interface *ifp)
 void irdp_finish()
 {
 
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
   struct zebra_if *zi;
   struct irdp_interface *irdp;
@@ -330,15 +326,19 @@ void irdp_finish()
   for (node = listhead (iflist); node; node = nextnode (node))
     {
       ifp = getdata(node);
-      zi= ifp->info;
-      if(! zi) continue;
+      zi = ifp->info;
+      
+      if (!zi) 
+        continue;
       irdp = &zi->irdp;
-      if(!irdp) continue;
-
-      if(irdp->flags & IF_ACTIVE ) {
-       irdp->flags |= IF_SHUTDOWN;
-       irdp_advert_off(ifp);
-      }
+      if (!irdp) 
+        continue;
+
+      if (irdp->flags & IF_ACTIVE ) 
+        {
+         irdp->flags |= IF_SHUTDOWN;
+         irdp_advert_off(ifp);
+        }
     }
 }
 
@@ -348,8 +348,6 @@ void irdp_init()
   irdp_if_init ();
 }
 
-
-
 #endif /* HAVE_IRDP */
 
 
index 8cd3dad659b6a509caa6c95fe9b70fec6ebcd19f..bb3513a315042985fd4d71d60cf7e43330c4e553 100644 (file)
@@ -178,10 +178,7 @@ void parse_irdp_packet(char *p,
     }
 }
 \f
-int irdp_recvmsg (int sock, 
-             u_char *buf, 
-             int size, 
-             int *ifindex)
+int irdp_recvmsg (int sock, u_char *buf, int size, int *ifindex)
 {
   struct msghdr msg;
   struct iovec iov;
@@ -214,7 +211,7 @@ int irdp_recvmsg (int sock,
     return ret;
   }
 
-  ifindex = getsockopt_ifindex (AF_INET, &msg);
+  *ifindex = getsockopt_ifindex (AF_INET, &msg);
 
   return ret;
 }