From 2a6ddae62e4fac5eecdf4634746e7294405393d6 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Thu, 8 Jul 2010 11:25:19 -0500 Subject: [PATCH] viced: Ignore client loopback alternate addresses When we receive interface information from a client to determine its alternate IP addresses, ignore any addresses that look like loopback. Change-Id: I245ebfc74ad1e8bd2fcd235a00f000d29229668d Reviewed-on: http://gerrit.openafs.org/2368 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Reviewed-by: Alistair Ferguson Tested-by: Jeffrey Altman --- src/viced/host.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/viced/host.c b/src/viced/host.c index 86a3377cf2..ef5deef306 100644 --- a/src/viced/host.c +++ b/src/viced/host.c @@ -4063,7 +4063,7 @@ initInterfaceAddr_r(struct host *host, struct interfaceAddr *interf) /* * Convert IP addresses to network byte order, and remove - * duplicate IP addresses from the interface list, and + * duplicate and loopback IP addresses from the interface list, and * determine whether or not the incoming addr/port is * listed. Note that if the address matches it is not * truly a match because the port number for the entries @@ -4071,6 +4071,9 @@ initInterfaceAddr_r(struct host *host, struct interfaceAddr *interf) * for this connection might not be 7001. */ for (i = 0, count = 0, found = 0; i < number; i++) { + if (rx_IsLoopbackAddr(interf->addr_in[i])) { + continue; + } interf->addr_in[i] = htonl(interf->addr_in[i]); for (j = 0; j < count; j++) { if (interf->addr_in[j] == interf->addr_in[i])