Be more forgiving when starting proxy sockets.
authorAlan T. DeKok <aland@freeradius.org>
Tue, 14 Sep 2010 00:37:36 +0000 (02:37 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 14 Sep 2010 00:37:36 +0000 (02:37 +0200)
Manual merge of 92beaf4f00ef

src/main/listen.c

index 6effff6..9143fa2 100644 (file)
@@ -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) {