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.
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index 38bca6b..c31ceb8 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -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 *.
diff --git a/zebra/if_ioctl.c b/zebra/if_ioctl.c
index ab36f68..431e7ea 100644
--- a/zebra/if_ioctl.c
+++ b/zebra/if_ioctl.c
@@ -405,10 +405,10 @@
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);
diff --git a/zebra/if_ioctl_solaris.c b/zebra/if_ioctl_solaris.c
index c05883c..4f8284a 100644
--- a/zebra/if_ioctl_solaris.c
+++ b/zebra/if_ioctl_solaris.c
@@ -334,16 +334,14 @@
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;
diff --git a/zebra/irdp_interface.c b/zebra/irdp_interface.c
index 59e5de1..7871f4c 100644
--- a/zebra/irdp_interface.c
+++ b/zebra/irdp_interface.c
@@ -76,14 +76,13 @@
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 @@
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 @@
{
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 @@
/* 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 @@
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 @@
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 @@
"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 @@
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 @@
"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 @@
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,
diff --git a/zebra/irdp_main.c b/zebra/irdp_main.c
index f711d85..9e31950 100644
--- a/zebra/irdp_main.c
+++ b/zebra/irdp_main.c
@@ -138,18 +138,18 @@
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 @@
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 @@
{
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 @@
irdp->t_advertise = NULL;
if(ifp->connected)
- for (node = listhead (ifp->connected); node; nextnode (node)) {
- ifc = getdata (node);
+ LIST_LOOP (ifp->connected, ifc, node)
+ {
+ p = ifc->address;
- p = ifc->address;
+ /* Output some packets with Lifetime 0
+ we should add a wait...
+ */
- /* 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);
+ for(i=0; i< IRDP_LAST_ADVERT_MESSAGES; i++)
+ {
+ irdp->irdp_sent++;
+ irdp_advertisement(ifp, p);
+ }
}
- }
}
@@ -320,7 +316,7 @@
void irdp_finish()
{
- listnode node;
+ struct listnode *node;
struct interface *ifp;
struct zebra_if *zi;
struct irdp_interface *irdp;
@@ -330,15 +326,19 @@
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)
+ continue;
- if(irdp->flags & IF_ACTIVE ) {
- irdp->flags |= IF_SHUTDOWN;
- irdp_advert_off(ifp);
- }
+ if (irdp->flags & IF_ACTIVE )
+ {
+ irdp->flags |= IF_SHUTDOWN;
+ irdp_advert_off(ifp);
+ }
}
}
@@ -348,8 +348,6 @@
irdp_if_init ();
}
-
-
#endif /* HAVE_IRDP */
diff --git a/zebra/irdp_packet.c b/zebra/irdp_packet.c
index 8cd3dad..bb3513a 100644
--- a/zebra/irdp_packet.c
+++ b/zebra/irdp_packet.c
@@ -178,10 +178,7 @@
}
}
-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 @@
return ret;
}
- ifindex = getsockopt_ifindex (AF_INET, &msg);
+ *ifindex = getsockopt_ifindex (AF_INET, &msg);
return ret;
}