Many places treat loopback addresses specially; they are skipped over
when traversing local interface lists, and they are sometimes replaced
with the public IP of the local hostname when interpreting user
arguments.
However, we only treated 127.0.0.1 as 'loopback'. Many systems can
have more than one loopback interface, such as having an interface
with the address 127.0.0.2. So, to catch these, treat everything in
127.0/16 as a loopback address or otherwise 'invalid' address. We
still do not treat the rest of 127/8 like this, to still allow some
127.* addresses to not be treated as loopback if someone really wants
to.
Change-Id: I64724cc1ee366e5ef80a8d6e3008e30a7077a4b2
Reviewed-on: http://gerrit.openafs.org/2367
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
static_inline int
rx_IsLoopbackAddr(afs_uint32 addr)
{
- return (addr == 0x7f000001);
+ return ((addr & 0xffff0000) == 0x7f000000);
}
/*******************