diff options
Diffstat (limited to 'zebra')
-rw-r--r-- | zebra/ChangeLog | 12 | ||||
-rw-r--r-- | zebra/if_ioctl.c | 4 | ||||
-rw-r--r-- | zebra/if_ioctl_solaris.c | 6 | ||||
-rw-r--r-- | zebra/irdp_interface.c | 85 | ||||
-rw-r--r-- | zebra/irdp_main.c | 80 | ||||
-rw-r--r-- | zebra/irdp_packet.c | 7 |
6 files changed, 99 insertions, 95 deletions
diff --git a/zebra/ChangeLog b/zebra/ChangeLog index 38bca6b0..c31ceb8a 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 ab36f681..431e7ea1 100644 --- a/zebra/if_ioctl.c +++ b/zebra/if_ioctl.c @@ -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); diff --git a/zebra/if_ioctl_solaris.c b/zebra/if_ioctl_solaris.c index c05883c6..4f8284a3 100644 --- a/zebra/if_ioctl_solaris.c +++ b/zebra/if_ioctl_solaris.c @@ -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; diff --git a/zebra/irdp_interface.c b/zebra/irdp_interface.c index 59e5de14..7871f4c9 100644 --- a/zebra/irdp_interface.c +++ b/zebra/irdp_interface.c @@ -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, diff --git a/zebra/irdp_main.c b/zebra/irdp_main.c index f711d852..9e31950e 100644 --- a/zebra/irdp_main.c +++ b/zebra/irdp_main.c @@ -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 */ diff --git a/zebra/irdp_packet.c b/zebra/irdp_packet.c index 8cd3dad6..bb3513a3 100644 --- a/zebra/irdp_packet.c +++ b/zebra/irdp_packet.c @@ -178,10 +178,7 @@ void parse_irdp_packet(char *p, } } -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; } |