summaryrefslogtreecommitdiff
path: root/lib/distribute.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/distribute.c')
-rw-r--r--lib/distribute.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/lib/distribute.c b/lib/distribute.c
index 7f84b80e..04889030 100644
--- a/lib/distribute.c
+++ b/lib/distribute.c
@@ -114,16 +114,11 @@ distribute_get (const char *ifname)
}
static unsigned int
-distribute_hash_make (struct distribute *dist)
+distribute_hash_make (void *arg)
{
- unsigned int i, key;
+ const struct distribute *dist = arg;
- key = 0;
- if (dist->ifname)
- for (i = 0; i < strlen (dist->ifname); i++)
- key += dist->ifname[i];
-
- return key;
+ return dist->ifname ? string_hash_make (dist->ifname) : 0;
}
/* If two distribute-list have same value then return 1 else return
@@ -304,7 +299,6 @@ DEFUN (distribute_list_all,
"Filter outgoing routing updates\n")
{
enum distribute_type type;
- struct distribute *dist;
/* Check of distribute list type. */
if (strncmp (argv[1], "i", 1) == 0)
@@ -319,7 +313,7 @@ DEFUN (distribute_list_all,
}
/* Get interface name corresponding distribute list. */
- dist = distribute_list_set (NULL, type, argv[0]);
+ distribute_list_set (NULL, type, argv[0]);
return CMD_SUCCESS;
}
@@ -384,7 +378,6 @@ DEFUN (distribute_list,
"Interface name\n")
{
enum distribute_type type;
- struct distribute *dist;
/* Check of distribute list type. */
if (strncmp (argv[1], "i", 1) == 0)
@@ -398,7 +391,7 @@ DEFUN (distribute_list,
}
/* Get interface name corresponding distribute list. */
- dist = distribute_list_set (argv[2], type, argv[0]);
+ distribute_list_set (argv[2], type, argv[0]);
return CMD_SUCCESS;
}
@@ -463,7 +456,6 @@ DEFUN (distribute_list_prefix_all,
"Filter outgoing routing updates\n")
{
enum distribute_type type;
- struct distribute *dist;
/* Check of distribute list type. */
if (strncmp (argv[1], "i", 1) == 0)
@@ -478,7 +470,7 @@ DEFUN (distribute_list_prefix_all,
}
/* Get interface name corresponding distribute list. */
- dist = distribute_list_prefix_set (NULL, type, argv[0]);
+ distribute_list_prefix_set (NULL, type, argv[0]);
return CMD_SUCCESS;
}
@@ -546,7 +538,6 @@ DEFUN (distribute_list_prefix, distribute_list_prefix_cmd,
"Interface name\n")
{
enum distribute_type type;
- struct distribute *dist;
/* Check of distribute list type. */
if (strncmp (argv[1], "i", 1) == 0)
@@ -561,7 +552,7 @@ DEFUN (distribute_list_prefix, distribute_list_prefix_cmd,
}
/* Get interface name corresponding distribute list. */
- dist = distribute_list_prefix_set (argv[2], type, argv[0]);
+ distribute_list_prefix_set (argv[2], type, argv[0]);
return CMD_SUCCESS;
}
@@ -763,7 +754,7 @@ distribute_list_reset ()
void
distribute_list_init (int node)
{
- disthash = hash_create ((unsigned int (*) (void *)) distribute_hash_make,
+ disthash = hash_create (distribute_hash_make,
(int (*) (const void *, const void *)) distribute_cmp);
if(node==RIP_NODE) {