X-Git-Url: http://www.project-moonshot.org/gitweb/?p=freeradius.git;a=blobdiff_plain;f=src%2Fmain%2Flisten.c;h=9143fa2e8984b1f160c57d396d65818000efc299;hp=6effff6f573df7e76afe9ff76deaf193ec034040;hb=d912e4a79e9a74aa9e2d3ae4b8f0ed6012fec9fa;hpb=f828d8972effb854cee6617eb4e54c47e0261b29 diff --git a/src/main/listen.c b/src/main/listen.c index 6effff6..9143fa2 100644 --- a/src/main/listen.c +++ b/src/main/listen.c @@ -2713,6 +2713,18 @@ add_sockets: * and use it */ for (this = *head; this != NULL; this = this->next) { + /* + * We shouldn't proxy on loopback. + */ + if ((sock->my_ipaddr.af == AF_INET) && + (sock->my_ipaddr.ipaddr.ip4addr.s_addr == htonl(INADDR_LOOPBACK))) continue; + + +#ifdef HAVE_STRUCT_SOCKADDR_IN6 + if ((sock->my_ipaddr.af == AF_INET6) && + (IN6_IS_ADDR_LINKLOCAL(&sock->my_ipaddr.ipaddr.ip6addr))) continue; +#endif + if (this->type == RAD_LISTEN_AUTH) { sock = this->data; if (home.src_ipaddr.af == AF_UNSPEC) {