diff options
Diffstat (limited to 'isisd/isisd.c')
| -rw-r--r-- | isisd/isisd.c | 58 | 
1 files changed, 24 insertions, 34 deletions
diff --git a/isisd/isisd.c b/isisd/isisd.c index 229f1356..c2bb9064 100644 --- a/isisd/isisd.c +++ b/isisd/isisd.c @@ -144,9 +144,9 @@ struct isis_area *  isis_area_lookup (const char *area_tag)  {    struct isis_area *area; -  struct listnode *node; +  struct listnode *node, *nnode; -  LIST_LOOP (isis->area_list, area, node) +  for (ALL_LIST_ELEMENTS (isis->area_list, node, nnode, area))      if ((area->area_tag == NULL && area_tag == NULL) ||  	(area->area_tag && area_tag  	 && strcmp (area->area_tag, area_tag) == 0)) @@ -185,7 +185,7 @@ int  isis_area_destroy (struct vty *vty, const char *area_tag)  {    struct isis_area *area; -  struct listnode *node; +  struct listnode *node, *nnode;    struct isis_circuit *circuit;    area = isis_area_lookup (area_tag); @@ -198,13 +198,9 @@ isis_area_destroy (struct vty *vty, const char *area_tag)    if (area->circuit_list)      { -      node = listhead (area->circuit_list); -      while (node) -	{ -	  circuit = getdata (node); -	  nextnode (node); -	  isis_circuit_del (circuit); -	} +      for (ALL_LIST_ELEMENTS (area->circuit_list, node, nnode, circuit)) +        isis_circuit_del (circuit); +              list_delete (area->circuit_list);      }    listnode_delete (isis->area_list, area); @@ -225,7 +221,7 @@ area_net_title (struct vty *vty, u_char *net_title)    struct isis_area *area;    struct area_addr *addr;    struct area_addr *addrp; -  struct listnode *node; +  struct listnode *node, *nnode;    u_char buff[255];    area = vty->index; @@ -284,7 +280,7 @@ area_net_title (struct vty *vty, u_char *net_title)  	}        /* now we see that we don't already have this address */ -      LIST_LOOP (area->area_addrs, addrp, node) +      for (ALL_LIST_ELEMENTS (area->area_addrs, node, nnode, addrp))        {  	if ((addrp->addr_len + ISIS_SYS_ID_LEN + 1) == (addr->addr_len))  	  { @@ -318,7 +314,7 @@ area_clear_net_title (struct vty *vty, u_char *net_title)  {    struct isis_area *area;    struct area_addr addr, *addrp = NULL; -  struct listnode *node; +  struct listnode *node, *nnode;    u_char buff[255];    area = vty->index; @@ -338,7 +334,7 @@ area_clear_net_title (struct vty *vty, u_char *net_title)    memcpy (addr.area_addr, buff, (int) addr.addr_len); -  LIST_LOOP (area->area_addrs, addrp, node) +  for (ALL_LIST_ELEMENTS (area->area_addrs, node, nnode, addrp))      if (addrp->addr_len == addr.addr_len &&  	!memcmp (addrp->area_addr, addr.area_addr, addr.addr_len))      break; @@ -362,7 +358,7 @@ area_clear_net_title (struct vty *vty, u_char *net_title)  int  show_clns_neigh (struct vty *vty, char detail)  { -  struct listnode *node_area, *node_circ; +  struct listnode *anode, *annode, *cnode, *cnnode;    struct isis_area *area;    struct isis_circuit *circuit;    struct list *db; @@ -374,20 +370,16 @@ show_clns_neigh (struct vty *vty, char detail)        return CMD_SUCCESS;      } -  for (node_area = listhead (isis->area_list); node_area; -       nextnode (node_area)) +  for (ALL_LIST_ELEMENTS (isis->area_list, anode, annode, area))      { -      area = getdata (node_area);        vty_out (vty, "Area %s:%s", area->area_tag, VTY_NEWLINE);        if (detail == ISIS_UI_LEVEL_BRIEF)  	vty_out (vty, "  System Id           Interface   L  State        "  		 "Holdtime SNPA%s", VTY_NEWLINE); -      for (node_circ = listhead (area->circuit_list); node_circ; -	   nextnode (node_circ)) +      for (ALL_LIST_ELEMENTS (area->circuit_list, cnode, cnnode, circuit))  	{ -	  circuit = getdata (node_circ);  	  if (circuit->circ_type == CIRCUIT_T_BROADCAST)  	    {  	      for (i = 0; i < 2; i++) @@ -902,16 +894,15 @@ DEFUN (show_database,         "show isis database",         SHOW_STR "IS-IS information\n" "IS-IS link state database\n")  { -  struct listnode *node; +  struct listnode *node, *nnode;    struct isis_area *area;    int level, lsp_count;    if (isis->area_list->count == 0)      return CMD_SUCCESS; -  for (node = listhead (isis->area_list); node; nextnode (node)) +  for (ALL_LIST_ELEMENTS (isis->area_list, node, nnode, area))      { -      area = getdata (node);        vty_out (vty, "Area %s:%s", area->area_tag ? area->area_tag : "null",  	       VTY_NEWLINE);        for (level = 0; level < ISIS_LEVELS; level++) @@ -941,16 +932,15 @@ DEFUN (show_database_detail,         "IS-IS information\n"         "IS-IS link state database\n")  { -  struct listnode *node; +  struct listnode *node, *nnode;    struct isis_area *area;    int level, lsp_count;    if (isis->area_list->count == 0)      return CMD_SUCCESS; -  for (node = listhead (isis->area_list); node; nextnode (node)) +  for (ALL_LIST_ELEMENTS (isis->area_list, node, nnode, area))      { -      area = getdata (node);        vty_out (vty, "Area %s:%s", area->area_tag ? area->area_tag : "null",  	       VTY_NEWLINE);        for (level = 0; level < ISIS_LEVELS; level++) @@ -1222,7 +1212,7 @@ DEFUN (no_is_type,     * Put the is-type back to default. Which is level-1-2 on first     * circuit for the area level-1 for the rest     */ -  if (getdata (listhead (isis->area_list)) == area) +  if (listgetdata (listhead (isis->area_list)) == area)      type = IS_LEVEL_1_AND_2;    else      type = IS_LEVEL_1; @@ -1603,10 +1593,10 @@ DEFUN (show_isis_generated_topology,         "CLNS neighbor adjacencies\n")  {    struct isis_area *area; -  struct listnode *node; +  struct listnode *node, *nnode;    struct listnode *node2;    struct arc *arc; -  LIST_LOOP (isis->area_list, area, node) +  for (ALL_LIST_ELEMENTS (isis->area_list, node, nnode, area))    {      if (area->topology)        { @@ -1852,10 +1842,10 @@ isis_config_write (struct vty *vty)    if (isis != NULL)      {        struct isis_area *area; -      struct listnode *node; -      struct listnode *node2; +      struct listnode *node, *nnode; +      struct listnode *node2, *nnode2; -      LIST_LOOP (isis->area_list, area, node) +      for (ALL_LIST_ELEMENTS (isis->area_list, node, nnode, area))        {  	/* ISIS - Area name */  	vty_out (vty, "router isis %s%s", area->area_tag, VTY_NEWLINE); @@ -1864,7 +1854,7 @@ isis_config_write (struct vty *vty)  	if (listcount (area->area_addrs) > 0)  	  {  	    struct area_addr *area_addr; -	    LIST_LOOP (area->area_addrs, area_addr, node2) +	    for (ALL_LIST_ELEMENTS (area->area_addrs, node2, nnode2, area_addr))  	    {  	      vty_out (vty, " net %s%s",  		       isonet_print (area_addr->area_addr,  | 
