diff options
Diffstat (limited to 'isisd/isis_dynhn.c')
| -rw-r--r-- | isisd/isis_dynhn.c | 193 | 
1 files changed, 92 insertions, 101 deletions
diff --git a/isisd/isis_dynhn.c b/isisd/isis_dynhn.c index 412f098a1b..9b2fefa0a1 100644 --- a/isisd/isis_dynhn.c +++ b/isisd/isis_dynhn.c @@ -2,21 +2,21 @@   * IS-IS Rout(e)ing protocol - isis_dynhn.c   *                             Dynamic hostname cache   * Copyright (C) 2001,2002   Sampo Saaristo - *                           Tampere University of Technology       + *                           Tampere University of Technology   *                           Institute of Communications Engineering   * - * This program is free software; you can redistribute it and/or modify it  - * under the terms of the GNU General Public Licenseas published by the Free  - * Software Foundation; either version 2 of the License, or (at your option)  + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public Licenseas published by the Free + * Software Foundation; either version 2 of the License, or (at your option)   * any later version.   * - * This program is distributed in the hope that it will be useful,but WITHOUT  - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or  - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for  + * This program is distributed in the hope that it will be useful,but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for   * more details.   * - * You should have received a copy of the GNU General Public License along  - * with this program; if not, write to the Free Software Foundation, Inc.,  + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc.,   * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.   */ @@ -44,107 +44,100 @@  extern struct host host;  struct list *dyn_cache = NULL; -static int dyn_cache_cleanup (struct thread *); +static int dyn_cache_cleanup(struct thread *); -void -dyn_cache_init (void) +void dyn_cache_init(void)  { -  if (dyn_cache == NULL) -    dyn_cache = list_new (); -  THREAD_TIMER_ON (master, isis->t_dync_clean, dyn_cache_cleanup, NULL, 120); -  return; +	if (dyn_cache == NULL) +		dyn_cache = list_new(); +	THREAD_TIMER_ON(master, isis->t_dync_clean, dyn_cache_cleanup, NULL, +			120); +	return;  } -static int -dyn_cache_cleanup (struct thread *thread) +static int dyn_cache_cleanup(struct thread *thread)  { -  struct listnode *node, *nnode; -  struct isis_dynhn *dyn; -  time_t now = time (NULL); +	struct listnode *node, *nnode; +	struct isis_dynhn *dyn; +	time_t now = time(NULL); -  isis->t_dync_clean = NULL; +	isis->t_dync_clean = NULL; -  for (ALL_LIST_ELEMENTS (dyn_cache, node, nnode, dyn)) -    { -      if ((now - dyn->refresh) < MAX_LSP_LIFETIME) -        continue; +	for (ALL_LIST_ELEMENTS(dyn_cache, node, nnode, dyn)) { +		if ((now - dyn->refresh) < MAX_LSP_LIFETIME) +			continue; -      list_delete_node (dyn_cache, node); -      XFREE (MTYPE_ISIS_DYNHN, dyn); -    } +		list_delete_node(dyn_cache, node); +		XFREE(MTYPE_ISIS_DYNHN, dyn); +	} -  THREAD_TIMER_ON (master, isis->t_dync_clean, dyn_cache_cleanup, NULL, 120); -  return ISIS_OK; +	THREAD_TIMER_ON(master, isis->t_dync_clean, dyn_cache_cleanup, NULL, +			120); +	return ISIS_OK;  } -struct isis_dynhn * -dynhn_find_by_id (const u_char * id) +struct isis_dynhn *dynhn_find_by_id(const u_char *id)  { -  struct listnode *node = NULL; -  struct isis_dynhn *dyn = NULL; +	struct listnode *node = NULL; +	struct isis_dynhn *dyn = NULL; -  for (ALL_LIST_ELEMENTS_RO (dyn_cache, node, dyn)) -    if (memcmp (dyn->id, id, ISIS_SYS_ID_LEN) == 0) -      return dyn; +	for (ALL_LIST_ELEMENTS_RO(dyn_cache, node, dyn)) +		if (memcmp(dyn->id, id, ISIS_SYS_ID_LEN) == 0) +			return dyn; -  return NULL; +	return NULL;  } -struct isis_dynhn * -dynhn_find_by_name (const char *hostname) +struct isis_dynhn *dynhn_find_by_name(const char *hostname)  { -  struct listnode *node = NULL; -  struct isis_dynhn *dyn = NULL; +	struct listnode *node = NULL; +	struct isis_dynhn *dyn = NULL; -  for (ALL_LIST_ELEMENTS_RO (dyn_cache, node, dyn)) -    if (strncmp ((char *)dyn->name.name, hostname, 255) == 0) -      return dyn; +	for (ALL_LIST_ELEMENTS_RO(dyn_cache, node, dyn)) +		if (strncmp((char *)dyn->name.name, hostname, 255) == 0) +			return dyn; -  return NULL; +	return NULL;  } -void -isis_dynhn_insert (const u_char * id, struct hostname *hostname, int level) +void isis_dynhn_insert(const u_char *id, struct hostname *hostname, int level)  { -  struct isis_dynhn *dyn; - -  dyn = dynhn_find_by_id (id); -  if (dyn) -    { -      memcpy (&dyn->name, hostname, hostname->namelen + 1); -      memcpy (dyn->id, id, ISIS_SYS_ID_LEN); -      dyn->refresh = time (NULL); -      return; -    } -  dyn = XCALLOC (MTYPE_ISIS_DYNHN, sizeof (struct isis_dynhn)); -  if (!dyn) -    { -      zlog_warn ("isis_dynhn_insert(): out of memory!"); -      return; -    } - -  /* we also copy the length */ -  memcpy (&dyn->name, hostname, hostname->namelen + 1); -  memcpy (dyn->id, id, ISIS_SYS_ID_LEN); -  dyn->refresh = time (NULL); -  dyn->level = level; - -  listnode_add (dyn_cache, dyn); - -  return; +	struct isis_dynhn *dyn; + +	dyn = dynhn_find_by_id(id); +	if (dyn) { +		memcpy(&dyn->name, hostname, hostname->namelen + 1); +		memcpy(dyn->id, id, ISIS_SYS_ID_LEN); +		dyn->refresh = time(NULL); +		return; +	} +	dyn = XCALLOC(MTYPE_ISIS_DYNHN, sizeof(struct isis_dynhn)); +	if (!dyn) { +		zlog_warn("isis_dynhn_insert(): out of memory!"); +		return; +	} + +	/* we also copy the length */ +	memcpy(&dyn->name, hostname, hostname->namelen + 1); +	memcpy(dyn->id, id, ISIS_SYS_ID_LEN); +	dyn->refresh = time(NULL); +	dyn->level = level; + +	listnode_add(dyn_cache, dyn); + +	return;  } -void -isis_dynhn_remove (const u_char * id) +void isis_dynhn_remove(const u_char *id)  { -  struct isis_dynhn *dyn; - -  dyn = dynhn_find_by_id (id); -  if (!dyn) -    return; -  listnode_delete (dyn_cache, dyn); -  XFREE (MTYPE_ISIS_DYNHN, dyn); -  return; +	struct isis_dynhn *dyn; + +	dyn = dynhn_find_by_id(id); +	if (!dyn) +		return; +	listnode_delete(dyn_cache, dyn); +	XFREE(MTYPE_ISIS_DYNHN, dyn); +	return;  }  /* @@ -153,21 +146,19 @@ isis_dynhn_remove (const u_char * id)   *  2     0000.0000.0002 bar-gw   *      * 0000.0000.0004 this-gw   */ -void -dynhn_print_all (struct vty *vty) +void dynhn_print_all(struct vty *vty)  { -  struct listnode *node; -  struct isis_dynhn *dyn; - -  vty_out (vty, "Level  System ID      Dynamic Hostname%s", VTY_NEWLINE); -  for (ALL_LIST_ELEMENTS_RO (dyn_cache, node, dyn)) -    { -      vty_out (vty, "%-7d", dyn->level); -      vty_out (vty, "%-15s%-15s%s", sysid_print (dyn->id), dyn->name.name, -	       VTY_NEWLINE); -    } - -  vty_out (vty, "     * %s %s%s", sysid_print (isis->sysid), unix_hostname (), -	   VTY_NEWLINE); -  return; +	struct listnode *node; +	struct isis_dynhn *dyn; + +	vty_out(vty, "Level  System ID      Dynamic Hostname%s", VTY_NEWLINE); +	for (ALL_LIST_ELEMENTS_RO(dyn_cache, node, dyn)) { +		vty_out(vty, "%-7d", dyn->level); +		vty_out(vty, "%-15s%-15s%s", sysid_print(dyn->id), +			dyn->name.name, VTY_NEWLINE); +	} + +	vty_out(vty, "     * %s %s%s", sysid_print(isis->sysid), +		unix_hostname(), VTY_NEWLINE); +	return;  }  | 
