Dst seems to be INADDR_ANY in some cases... Weird.
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 23 Sep 2015 20:42:00 +0000 (16:42 -0400)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 23 Sep 2015 20:42:28 +0000 (16:42 -0400)
src/modules/proto_dhcp/dhcpd.c

index 9c8085d..b6aeee5 100644 (file)
@@ -460,7 +460,8 @@ static int dhcp_process(REQUEST *request)
        /*
         *      The request was unicast (via a relay)
         */
-       } else if (request->packet->dst_ipaddr.ipaddr.ip4addr.s_addr != htonl(INADDR_BROADCAST)) {
+       } else if (request->packet->dst_ipaddr.ipaddr.ip4addr.s_addr != htonl(INADDR_BROADCAST) &&
+                  request->packet->dst_ipaddr.ipaddr.ip4addr.s_addr != htonl(INADDR_ANY)) {
                request->reply->src_ipaddr.ipaddr.ip4addr.s_addr = request->packet->dst_ipaddr.ipaddr.ip4addr.s_addr;
        /*
         *      The listener was bound to an IP address, or we determined